This is the mail archive of the gcc@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]

Jump threading after basic block reorder?


Hi,

I've been working on a port of gcc for a new 32-bit embedded processor and as it uses static branch prediction with a reasonably high performance hit for predicting a branch taken rather than just predicting a fall-through then basic block reordering is a major performance advantage. I was a little surprised to see that after the last run of basic block reordering we don't rerun jump threading even though we have run it several times before. Without this I have quite a lot of code compiled with -Os and -O2 code that bloats by typically 8%.

I can see that at -O3 not rerunning the jump threading could give a small performance improvement in some situations (although I do wonder if the impact on caching might now actually make things worse on many processors?).

Am I missing some reason why this isn't done?


Regards, Dave


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