https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71785
--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Aleksey from comment #14) > Performance is not the case here, so don't bother with it. Strict order of > labels and using everywhere "jmp reg" instead of "jmp rel + jmp reg" - this > is what is important. There is no way to get that from a compiled language, and GCC does not promise that either (of course). > It would be helpful if you give the explanation how these options affect > "un-factoring". What options? -fno-reorder-blocks? Those doo the same to this code as they do anywhere else: the compiler does not run the reorder-blocks pass, so you get worse code. If you want to have the machine code be structured in some exact order or way, you will have to use assembler or something similar, not an optimising compiler.