diff --git a/gcc/combine.cc b/gcc/combine.cc index a5fabf3..9c87bf9 100644 --- a/gcc/combine.cc +++ b/gcc/combine.cc @@ -128,6 +128,10 @@ static rtx i2mod_old_rhs; /* When I2MOD is nonnull, this is a copy of the new right hand side. */ static rtx i2mod_new_rhs; + +/* Nonzero after end of combine pass. */ + +int combine_completed = 0; struct reg_stat_type { /* Record last point of death of (hard or pseudo) register n. */ @@ -14991,6 +14995,7 @@ rest_of_handle_combine (void) } regstat_free_n_sets_and_refs (); + combine_completed = 1; return 0; } diff --git a/gcc/final.cc b/gcc/final.cc index 0352786..0fc2695 100644 --- a/gcc/final.cc +++ b/gcc/final.cc @@ -4513,6 +4513,7 @@ rest_of_clean_state (void) flag_rerun_cse_after_global_opts = 0; reload_completed = 0; epilogue_completed = 0; + combine_completed = 0; #ifdef STACK_REGS regstack_completed = 0; #endif diff --git a/gcc/rtl.h b/gcc/rtl.h index 488016b..3bb92bd 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -4105,6 +4105,9 @@ extern int reload_in_progress; /* Set to 1 while in lra. */ extern int lra_in_progress; +/* Nonzero after end of combine pass. */ +extern int combine_completed; + /* This macro indicates whether you may create a new pseudo-register. */