aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2013-06-16 14:59:41 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2013-06-16 15:59:41 +0100
commit393f9fedf35f006eb9c8c5ca185ae99aa2a0cce6 (patch)
tree287eb151099ae1ad14535d80694e42ba6df3f9d0 /gcc/cse.c
parentb259d352ca69bed852c775145cdcd5d48bb45d1e (diff)
downloadgcc-393f9fedf35f006eb9c8c5ca185ae99aa2a0cce6.zip
gcc-393f9fedf35f006eb9c8c5ca185ae99aa2a0cce6.tar.gz
gcc-393f9fedf35f006eb9c8c5ca185ae99aa2a0cce6.tar.bz2
re PR rtl-optimization/57425 (RTL alias analysis unprepared to handle stack slot sharing)
gcc: PR rtl-optimization/57425 PR rtl-optimization/57569 * alias.c (write_dependence_p): Add new parameters mem_size, canon_mem_addr and mem_canonicalized. Change type of writep to bool. Changed all callers. (canon_anti_dependence): New function. * cse.c (check_dependence): Use canon_anti_dependence. * cselib.c (cselib_invalidate_mem): Likewise. * rtl.h (canon_anti_dependence): Declare. gcc/testsuite: PR rtl-optimization/57425 PR rtl-optimization/57569 * gcc.dg/torture/pr57425-1.c, gcc.dg/torture/pr57425-2.c: New files. * gcc.dg/torture/pr57425-3.c, gcc.dg/torture/pr57569.c: Likewise. Index: alias.c =================================================================== --- alias.c (revision 200126) From-SVN: r200133
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index f2c8f63..7e6c518 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -1824,7 +1824,7 @@ flush_hash_table (void)
}
}
-/* Function called for each rtx to check whether true dependence exist. */
+/* Function called for each rtx to check whether an anti dependence exist. */
struct check_dependence_data
{
enum machine_mode mode;
@@ -1837,7 +1837,7 @@ check_dependence (rtx *x, void *data)
{
struct check_dependence_data *d = (struct check_dependence_data *) data;
if (*x && MEM_P (*x))
- return canon_true_dependence (d->exp, d->mode, d->addr, *x, NULL_RTX);
+ return canon_anti_dependence (d->exp, d->mode, d->addr, *x);
else
return 0;
}