4 ms·
There is a still a noticeable difference in performance of a `goto`-based FSM implementation and a switch-in-a-loop one. And there is a huge performance differ
by sklogic 11y ago
There is a still a noticeable difference in performance of a `goto`-based FSM implementation and a switch-in-a-loop one.
And there is a huge performance difference between a computed `goto` implementation of a VM vs. a switch-based one.
Break is not a substitute for any of this use cases.
- 0x07c0 11y agoIn my current project I use both. Direct coded lexer and a vm using gnu-c &&label.
- nickpsecurity 11y agoCouldn't one just macro an implementation of such things that use goto underneath?
- sklogic 11y agoOf course. But only if goto was not removed from the underlying language.
- nickpsecurity 11y agoI wonder if anyone has done a safe form of goto that does static analysis or something to see if the jump is safe. My only experience was making error handling easier to understand.
- sklogic 11y agoIt is rather trivial to check if a control flow is reducible (can be a platform requirement, e.g., OpenCL spec demands this). But it is unlikely that you can do too much of a static analysis with a computed goto, and the latter is the most interesting and the most useful form.