------- Comment #10 from jakub at gcc dot gnu dot org  2009-05-13 08:19 -------
Of course there is a very important reason.  If you allow inline asms to change
control flow, even just to labels whose address has been taken through &&label,
you penalize a lot of code which doesn't change the control flow, as the
compiler will have to assume each inline asm which could possibly get at an
label address (not just directly, but through global variables, pointers etc.)
can jump to it.  That's an awful lot of extra flow graph edges and optimization
limitations.  Unless you'd invent some new syntax to say if an inline asm can
change control flow and by default assume it can't.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40124

Reply via email to