diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-14 17:43:57 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-14 17:43:57 +0000 |
commit | 14d27f18c183419b025659c0ea26a1f20ad112a6 (patch) | |
tree | 8f73141ddbcd16b4863cb33eac109d97856d9cc0 /gcc | |
parent | e1ed78c8fd21c298d049b223765cf1da3854bf6d (diff) | |
download | gcc-14d27f18c183419b025659c0ea26a1f20ad112a6.tar.gz |
* web.c (union_match_dups): Also check DF_REF_REAL_LOC.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198896 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/web.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58e0f95508c..62255a36537 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2013-05-14 Mike Stump <mikestump@comcast.net> + + * web.c (union_match_dups): Also check DF_REF_REAL_LOC. + 2013-05-14 Steven Bosscher <steven@gcc.gnu.org> * resource.h (struct resources): Remove unch_memory member. diff --git a/gcc/web.c b/gcc/web.c index d09d1d51f72..7f667db2cc5 100644 --- a/gcc/web.c +++ b/gcc/web.c @@ -132,14 +132,22 @@ union_match_dups (rtx insn, struct web_entry *def_entry, ref = type == OP_IN ? use_link : def_link; entry = type == OP_IN ? use_entry : def_entry; for (; *ref; ref++) - if (DF_REF_LOC (*ref) == recog_data.operand_loc[op]) - break; + { + if (DF_REF_LOC (*ref) == recog_data.operand_loc[op]) + break; + if (DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op]) + break; + } if (!*ref && type == OP_INOUT) { for (ref = use_link, entry = use_entry; *ref; ref++) - if (DF_REF_LOC (*ref) == recog_data.operand_loc[op]) - break; + { + if (DF_REF_LOC (*ref) == recog_data.operand_loc[op]) + break; + if (DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op]) + break; + } } gcc_assert (*ref); |