> A 3-pointer reg note seems a bit heavyweight for a boolean anyway. > JUMP_INSNs have a quite a few unused rtx header flags (including "jump", > ironically) so this patch records the information there instead. > > This reduces the compile time by about ~0.5%. Not a huge amount, > but maybe it counts as a cleanup.
Good catch! > * reg-notes.def (CROSSING_JUMP): Likewise. > * rtl.h (rtx_def): Update comment for jump flag. > (CROSSING_JUMP_P): Define. > * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead > of a REG_CROSSING_JUMP note. > * cfghooks.c (tidy_fallthru_edges): Likewise. > * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise. > * emit-rtl.c (try_split): Likewise. > * haifa-sched.c (sched_create_recovery_edges): Likewise. > * ifcvt.c (find_if_case_1, find_if_case_2): Likewise. > * jump.c (redirect_jump_2): Likewise. > * reorg.c (follow_jumps, fill_slots_from_thread): Likewise. > (relax_delay_slots): Likewise. > * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise. > (bbit_di): Likewise. > * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise. > * config/sh/sh.md (jump_compact): Likewise. > * bb-reorder.c (rotate_loop): Likewise. > (pass_duplicate_computed_gotos::execute): Likewise. > (add_reg_crossing_jump_notes): Rename to... > (update_crossing_jump_flags): ...this. > (pass_partition_blocks::execute): Update accordingly. OK, thanks. -- Eric Botcazou