This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug with haifa scheduler
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Bug with haifa scheduler
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Wed, 01 Sep 1999 15:30:04 +0100
- Cc: richard dot earnshaw at arm dot com
- Organization: ARM Ltd.
- Reply-To: richard dot earnshaw at arm dot com
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.