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]

Re: Question about cfgrtl.c:flow_delete_block_noexpunge


On Tue, Jun 10, 2003 at 06:59:01PM -0400, Richard Kenner wrote:
> Why is the jump table right after the basic block?  Isn't it in a basic
> block of its own?

No, it's between blocks.  It's not a basic block of its own because
it's not code that you can execute on its own.  Indeed, on some
platforms (vax, m68k) you cannot even separate it from the tablejump insn.

> I see this failing in GCC 3.2 in a very large Ada testcase where what
> happens is that CSE converts a tablejump into an unconditional jump.
> It leaves the tablejump for later passes to clean up and that's when
> this blows up.

There have been several fixes for this in 3.3 and mainline since 3.2.
We had to iterate several times to prevent the air bubble from popping
up somewhere else.  So there's no simple answer to give you; search
the archives from late April, early May and you should find some info
on this topic.


r~


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