diff options
author | Richard Henderson <rth@redhat.com> | 2006-01-24 15:48:17 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2006-01-24 15:48:17 -0800 |
commit | 9cd9e512cb50cc49de86f397e716279286712f82 (patch) | |
tree | 0827a234c38b01dc573baa50665e2f3c2f1afe68 /gcc/alias.c | |
parent | 7faaba2884bb256dc3e2c9addd5357fbde4e2c9c (diff) | |
download | gcc-9cd9e512cb50cc49de86f397e716279286712f82.zip gcc-9cd9e512cb50cc49de86f397e716279286712f82.tar.gz gcc-9cd9e512cb50cc49de86f397e716279286712f82.tar.bz2 |
alias.h (ALIAS_SET_MEMORY_BARRIER): New.
* alias.h (ALIAS_SET_MEMORY_BARRIER): New.
* alias.c (true_dependence): Respect it.
(canon_true_dependence, write_dependence_p): Likewise.
* builtins.c (get_builtin_sync_mem): Set it.
From-SVN: r110189
Diffstat (limited to 'gcc/alias.c')
-rw-r--r-- | gcc/alias.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/alias.c b/gcc/alias.c index 4806019..68dff25 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1,5 +1,5 @@ /* Alias analysis for GNU C - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by John Carr (jfc@mit.edu). @@ -2209,6 +2209,9 @@ true_dependence (rtx mem, enum machine_mode mem_mode, rtx x, return 1; if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH) return 1; + if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER + || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER) + return 1; if (DIFFERENT_ALIAS_SETS_P (x, mem)) return 0; @@ -2282,6 +2285,9 @@ canon_true_dependence (rtx mem, enum machine_mode mem_mode, rtx mem_addr, return 1; if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH) return 1; + if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER + || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER) + return 1; if (DIFFERENT_ALIAS_SETS_P (x, mem)) return 0; @@ -2341,6 +2347,9 @@ write_dependence_p (rtx mem, rtx x, int writep) return 1; if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH) return 1; + if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER + || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER) + return 1; if (DIFFERENT_ALIAS_SETS_P (x, mem)) return 0; |