summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/emit-rtl.c9
-rw-r--r--gcc/toplev.c5
3 files changed, 15 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61b694dc278..0dfb95c569e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -21,6 +21,11 @@
2002-06-16 Jeff Law <law@redhat.com>
+ * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
+ sharing of hard registers.
+
+ * toplev.c (rest_of_compilation): Remove redundant conditional.
+
* toplev.c (rest_of_compilation): Perform a simpler, less costly
cleanup of the CFG when not optimizing.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 5186c854dc3..225b8c89332 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -533,14 +533,21 @@ gen_rtx_REG (mode, regno)
return stack_pointer_rtx;
}
+#if 0
/* If the per-function register table has been set up, try to re-use
- an existing entry in that table to avoid useless generation of RTL. */
+ an existing entry in that table to avoid useless generation of RTL.
+
+ This code is disabled for now until we can fix the various backends
+ which depend on having non-shared hard registers in some cases. Long
+ term we want to re-enable this code as it can significantly cut down
+ on the amount of useless RTL that gets generated. */
if (cfun
&& cfun->emit
&& regno_reg_rtx
&& regno < FIRST_PSEUDO_REGISTER
&& reg_raw_mode[regno] == mode)
return regno_reg_rtx[regno];
+#endif
return gen_raw_REG (mode, regno);
}
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 7c1e0d68d6d..cbdb8ffa732 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2779,9 +2779,8 @@ rest_of_compilation (decl)
{
timevar_push (TV_JUMP);
- if (flag_delete_null_pointer_checks)
- if (delete_null_pointer_checks (insns))
- cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
+ if (delete_null_pointer_checks (insns))
+ cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
timevar_pop (TV_JUMP);
}