Hello, This patch replaces all tests I could find, where the code is looking for jump table data with GET_CODE(..)=ADDR_VEC and similar with JUMP_TABLE_DATA_P tests.
Most replacements are mechanical, but a few are not: * The code in s390.c looked odd, I think the replacement code is easier to follow. * The changed in bfin.c and a few other places assume that ADDR_VEC and ADDR_DIFF_VEC can only appear as tablejump data. This appears to be assumed in many other places in the compiler (although AFAICT it's not documented as such) and it looks like the authors of the changed code simply omitted the JUMP_P test before looking at the pattern for an ADDR_VEC/ADDR_DIFF_VEC. BTW if ADDR_VEC/ADDR_DIFF_VEC really only appear in JUMP_TABLE_DATA_P insns then tests for these codes can be removed in all places where the insn being looked at must be in a basic block. That's almost all places in the middle-end proper (especially as case labels) and I intend to clean that up in a follow-up patch. But first... Bootstrapped&tested on powerpc64-unknown-linux-gnu and on ia64-unknown-linux-gnu. OK for trunk? Ciao! Steven
use_JUMP_TABLE_DATA_P.diff
Description: Binary data