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: law at cygnus dot com
- Subject: Re: basic_block_head[]/basic_block_tail[] questions
- From: Toshiyasu Morita <tm at netcom dot com>
- Date: Sun, 16 Aug 1998 14:59:50 -0700 (PDT)
- Cc: egcs-bugs 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.
Actually, I found this anomoly while investigating PR 16819, in which a
C++ constructor fails to return 'this', and I suspect this anomoly is the
root reason for this bug.
Toshi