summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/alias.c2
-rw-r--r--gcc/cselib.c6
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dd83c8e84cc..9a5419e9f77 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2006-11-30 Steven Bosscher <steven@gcc.gnu.org>
+ * cselib.c (cselib_init): Use special MEM rtx form for callmem.
+ * alias.c (canon_true_dependence): Update comment.
+
+2006-11-30 Steven Bosscher <steven@gcc.gnu.org>
+
* cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
at the end of a diagnostics message.
diff --git a/gcc/alias.c b/gcc/alias.c
index a3634ac1f93..7a36284cb3a 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -2151,7 +2151,7 @@ true_dependence (rtx mem, enum machine_mode mem_mode, rtx x,
return 1;
/* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
- This is used in epilogue deallocation functions. */
+ This is used in epilogue deallocation functions, and in cselib. */
if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
return 1;
if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 4070da7c01f..46053885721 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1473,9 +1473,11 @@ cselib_init (bool record_memory)
sizeof (cselib_val), 10);
value_pool = create_alloc_pool ("value", RTX_CODE_SIZE (VALUE), 100);
cselib_record_memory = record_memory;
- /* This is only created once. */
+
+ /* (mem:BLK (scratch)) is a special mechanism to conflict with everything,
+ see canon_true_dependence. This is only created once. */
if (! callmem)
- callmem = gen_rtx_MEM (BLKmode, const0_rtx);
+ callmem = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode));
cselib_nregs = max_reg_num ();