diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 9 | ||||
-rw-r--r-- | gcc/toplev.c | 5 |
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); } |