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.
> 
> 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


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