aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/gcse.cc9
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 ();