This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Deleting jump tables and CFG
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 1 Dec 2003 06:47:07 +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.
It has changed and several related bugs have been fixed since then.
> 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.
It's delete_dead_jumptables in flow.c, called by life_analysis in GCC 3.2.3.
> Basically, my question is how the jump table is handled in the CFG.
Separately, and I'd say not very well in GCC 3.2.x. On mainline,
delete_dead_jumptables is called additionally in fixup_reorder_chain,
cleanup_cfg and rest_of_handle_loop_optimize.
--
Eric Botcazou