This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Deleting jump tables and CFG
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 1 Dec 2003 16:52:03 +0100
- Subject: Re: Deleting jump tables and CFG
- References: <10312010151.AA22664@vlsi1.ultra.nyu.edu>
> If the answer to this question has changed recently, I'm asking it about a
> bug in 3.2.
>
> When a case jump is deleted due to it being an unreachable block, who is
> responsible for deleting the associated branch table? As I understand it,
> that's *not* part of the block and nothing is keeping it adjacent to the
> block.
>
> Basically, my question is how the jump table is handled in the CFG.
Unfrortuantely it is not easy to track and delete all references to the
dead jumptable immediately when it becomes unreachable or simplifies to
simplejump as there can be code computing the jumptable destination.
Thus the strategy is to remove the jumptables after liveness analysis
via purge_dead_jumptables call. This is causing problems all the time.
It would be nice to move the jumptables out of the instruction chain (as
rest of datas are dealt with) so the dead jumptables won't affect other
optimizations.
Honza