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: Deleting jump tables and CFG


> 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


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