diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2002-04-22 11:17:06 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-04-22 11:17:06 -0700 |
commit | 0fe854a7e085766e646a8347362add815ad9c489 (patch) | |
tree | 44312bb45a57f13062f0c55c4052ae1c95e01c6b /gcc/alias.c | |
parent | af0d16cdec59d270a017f82ac209c44dfa748ea3 (diff) | |
download | gcc-0fe854a7e085766e646a8347362add815ad9c489.zip gcc-0fe854a7e085766e646a8347362add815ad9c489.tar.gz gcc-0fe854a7e085766e646a8347362add815ad9c489.tar.bz2 |
alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
* alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
* gcse.c (free_insn_expr_list_list): New.
(clear_modify_mem_tables): Use it. Fix bit set usage.
(canon_list_insert): Use EXPR_LISTs for expressions.
(record_last_mem_set_info): Factor BLOCK_NUM (insn).
From-SVN: r52624
Diffstat (limited to 'gcc/alias.c')
-rw-r--r-- | gcc/alias.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/alias.c b/gcc/alias.c index 29da8ff..24874f4 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -2121,6 +2121,13 @@ canon_true_dependence (mem, mem_mode, mem_addr, x, varies) if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) return 1; + /* (mem:BLK (scratch)) is a special mechanism to conflict with everything. + This is used in epilogue deallocation functions. */ + if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH) + return 1; + if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH) + return 1; + if (DIFFERENT_ALIAS_SETS_P (x, mem)) return 0; |