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

Bug with haifa scheduler



Since we switched to the Haifa scheduler by default I've been unable to 
bootstrap the compiler on the ARM.  I've finally managed to track down 
what appears to be the cause of this.

Before the first scheduling pass is done all the insns are split and then 
the notes on the insns are updated; the problem seems to be introduced by 
the process of updating the notes.

The notes are updated by calling update_life_info(), which in turn calls 
new_insn_dead_notes().  However, this code then uses mark_set_resources() 
and TEST_HARD_REG_BIT() -- the problem is here: since this is before 
register allocation the split insns still contain pseudos so this 
technique of noting register usage is just bogus.

Before I start hacking this to pieces, can someone just confirm that I'm 
not going barking and this code really is not appropriate if called before 
reload has completed?

If so, can I fix this by rewriting it in terms of a full reg-set? or is 
there a simpler way?

Richard.




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