aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2002-06-16 13:31:01 -0600
committerJeff Law <law@gcc.gnu.org>2002-06-16 13:31:01 -0600
commit006a94b08c59a00a79d60c2c9f5dc4652fde02ea (patch)
tree102580f2d5e7788ed7a5e7e98d0859ccc4f667a8
parent750491fc108a82d74c1af8bd4438f39eb4feebc2 (diff)
downloadgcc-006a94b08c59a00a79d60c2c9f5dc4652fde02ea.zip
gcc-006a94b08c59a00a79d60c2c9f5dc4652fde02ea.tar.gz
gcc-006a94b08c59a00a79d60c2c9f5dc4652fde02ea.tar.bz2
emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic sharing of hard registers.
* emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic sharing of hard registers. * toplev.c (rest_of_compilation): Remove redundant conditional. From-SVN: r54672
-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 61b694d..0dfb95c 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 5186c85..225b8c8 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 7c1e0d6..cbdb8ff 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);
}