Deleting jump tables and CFG
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Mon Dec 1 16:52:00 GMT 2003
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.
The problem is that code to delete unreachable blocks is deleting the labels
referenced by a jumptable but not the table itself. So when jump.c runs, it
blows up since the CODE_LABELs have been GC'ed.
More information about the Gcc
mailing list