This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Help w/ CFG/loop optimization problem?


In message <Pine.LNX.4.33.0209101625470.26092-100000@www.eyesopen.com>, Roger S
ayle writes:
 >
 >Hi Dale,
 >
 >> Advice?
 >
 >Spooky!  I posted to patch to gcc-patches to fix a similar problem
 >(CFG vs LOOP) less than an hour after your question.
 >
 >I think I know a possible fix.  I believe that the "conditional branch
 >over an unconditional branch" idiom that GCC's initial RTL generation
 >uses is a historical artifact.  I suspect that GCC now handles long
 >conditional branches perfectly well,  so creating jumps over jumps
 >does nothing but confuse CFG, which in turn confuses LOOP.
Hmm, I doubt this had anything at all to do with long branches, but is
more an artifact of GCC's often simple-minded code generator (and to
a lesser extent these things can happen due to other optimizations).

Long branch support is dealt with *much* later in the compiler --
during final assembly output.

I'd be surprised if this optimization could really just "go away"; I
don't recall any changes in the base code generator which would avoid
generating such code.

jeff



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]