This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: basic_block_head[]/basic_block_tail[] questions
- To: Toshiyasu Morita <tm at netcom dot com>
- Subject: Re: basic_block_head[]/basic_block_tail[] questions
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sat, 15 Aug 1998 18:27:00 -0600
- cc: egcs-bugs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199808151124.EAA24081@netcom8.netcom.com>you write:
> I'm seeing some strange problems with reload and I think it may have
> something to do with basic_block_head[] and basic_block_tail[]...
>
> Specifically, the current implementation of basic_block_head[] and
> basic_block_tail[] seem to point at actual insns. This seems bad
> because reload calls emit_insn_before() and emit_insn_after(), and these
> functions seem unaware of the existence of the basic_block_head/tail arrays.
>
> Consider: if reload generates a spill for the first insn of a
> basic block, it seems to insert the insns into the basic block outside
> the one intended, or even outside the outermost basic block, like this:
It's a problem, but not a serious one. Nothing bad should happen as
far as I know.
Of course, by not having those insns in basic blocks they are not
being scheduled, which is a performance issue.
Feel free to submit code to try and fix this (or even subcases).
jeff