diff options
-rw-r--r-- | gcc/gcse.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/gcse.cc b/gcc/gcse.cc index 96aae0e..ea57c55 100644 --- a/gcc/gcse.cc +++ b/gcc/gcse.cc @@ -4238,8 +4238,15 @@ execute_hardreg_pre (void) { int changed; current_hardreg_regno = regnos[i]; + if (!df_regs_ever_live_p (current_hardreg_regno)) + { + if (dump_file) + fprintf (dump_file, "Skipping hardreg PRE for regno %d, which is never live\n", + current_hardreg_regno); + continue; + } if (dump_file) - fprintf(dump_file, "Entering hardreg PRE for regno %d\n", + fprintf (dump_file, "Entering hardreg PRE for regno %d\n", current_hardreg_regno); delete_unreachable_blocks (); df_analyze (); |