aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2010-10-18 21:34:46 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2010-10-18 21:34:46 +0000
commit89774469f36bdee16b9c676a55cefb4724998dd5 (patch)
tree9833f5bd49ad250fe03a924c577b832541c9f92e /gcc/config/ia64
parentb69da3d839be206c4c1fb206b4d56cc55aba44f4 (diff)
downloadgcc-89774469f36bdee16b9c676a55cefb4724998dd5.zip
gcc-89774469f36bdee16b9c676a55cefb4724998dd5.tar.gz
gcc-89774469f36bdee16b9c676a55cefb4724998dd5.tar.bz2
re PR target/36898 (Insufficient qp-mutex declarations)
2010-10-18 Steve Ellcey <sje@cup.hp.com> PR target/36898 PR middle-end/43760 * config/ia64/ia64.c (rws_access_regno): Remove predicate check. From-SVN: r165664
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r--gcc/config/ia64/ia64.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index f7489f9..c1135f9 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5875,15 +5875,14 @@ rws_access_regno (int regno, struct reg_flags flags, int pred)
break;
case 1:
- /* The register has been written via a predicate. If this is
- not a complementary predicate, then we need a barrier. */
- /* ??? This assumes that P and P+1 are always complementary
- predicates for P even. */
+ /* The register has been written via a predicate. Treat
+ it like a unconditional write and do not try to check
+ for complementary pred reg in earlier write. */
if (flags.is_and && rws_sum[regno].written_by_and)
;
else if (flags.is_or && rws_sum[regno].written_by_or)
;
- else if ((rws_sum[regno].first_pred ^ 1) != pred)
+ else
need_barrier = 1;
if (!in_safe_group_barrier)
rws_update (regno, flags, pred);
@@ -5944,12 +5943,9 @@ rws_access_regno (int regno, struct reg_flags flags, int pred)
break;
case 1:
- /* The register has been written via a predicate. If this is
- not a complementary predicate, then we need a barrier. */
- /* ??? This assumes that P and P+1 are always complementary
- predicates for P even. */
- if ((rws_sum[regno].first_pred ^ 1) != pred)
- need_barrier = 1;
+ /* The register has been written via a predicate, assume we
+ need a barrier (don't check for complementary regs). */
+ need_barrier = 1;
break;
case 2: