@akkartik I'm doing it per-routine at the moment, I'm not looking to doing it at the program scale since there's lots of I/O and optimisations going on.
It finds some routines as linear, others as safe, and most as crazy unsafe. But I would at least be able to rate the different levels of safety in terms of routines. Most routines do away with load/save operations altogether by using only stack opcodes, making it easy to "rasterize".
@akkartik One low-hanging fruits that I've noticed when trying to validate the program's own source file, is that I often make typos in my routine definitions, or just forget to add definitions altogether to places where the PC could jump to. That might be the tool that kicks my butt and get me to write proper routine defs.
_Naming variables,
who's got that kind 'o time!_