aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cse.c2
-rw-r--r--gcc/toplev.c3
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b4fe9b4..8f0f8bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-01-25 Roger Sayle <roger@eyesopen.com>
+
+ * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
+ optimizing, even if flag_gcse is true.
+ * toplev.c (rest_of_compilation): purge_builtin_constant_p
+ only needs to be called when "optimize > 0 && flag_gcse".
+
2003-01-25 Roger Sayle <roger@eyesopen.com>
* stmt.c (emit_case_bit_tests): New routine to implement suitable
diff --git a/gcc/cse.c b/gcc/cse.c
index 180c31e..e2a04e59 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -4338,7 +4338,7 @@ fold_rtx (x, insn)
{
if (const_arg0)
return const1_rtx;
- if (!flag_gcse)
+ if (optimize == 0 || !flag_gcse)
return const0_rtx;
}
break;
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 1ab3f820..60370c2 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2925,7 +2925,8 @@ rest_of_compilation (decl)
}
/* Instantiate any remaining CONSTANT_P_RTX nodes. */
- purge_builtin_constant_p ();
+ if (optimize > 0 && flag_gcse)
+ purge_builtin_constant_p ();
/* Move constant computations out of loops. */