------- Comment #7 from rearnsha at gcc dot gnu dot org 2009-10-19 15:50 ------- (In reply to comment #6) > You should not depend on NOTE_INSN_SWITCH_TEXT_SECTIONS. There are other ways > to see if a jump goes from one section to another: edge->flags & EDGE_CROSSING > (preferred), and REG_CROSSING_JUMP notes (more reliable in post-pass_free_cfg > world). > > There is no hook to disable the hot-cold partitioning pass right now. For > thumb > mode, the ARM back end should just set flag_reorder_blocks_and_partition = 0, > like Xtensa and MIPS (for MIPS16 mode) already do, for similar reasons. > Indeed. In fact even for ARM state, we can only support this option if both the insn-address code correctly separates hot and cold addresses (and I suspect it doesn't) and the literal-pool extraction code correctly extracts the above information (which it certainly doesn't).
So at present we have no choice but to disable this optimization for all ARM configurations. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247