diff options
author | Mike Stump <mikestump@comcast.net> | 2013-05-14 17:43:57 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 2013-05-14 17:43:57 +0000 |
commit | e7180acbb92275577a02326efb3ad2671a3f73b7 (patch) | |
tree | 8f73141ddbcd16b4863cb33eac109d97856d9cc0 /gcc/web.c | |
parent | fd6beed48d5783b4dd6bb6a4aabff7491041eeeb (diff) | |
download | gcc-e7180acbb92275577a02326efb3ad2671a3f73b7.zip gcc-e7180acbb92275577a02326efb3ad2671a3f73b7.tar.gz gcc-e7180acbb92275577a02326efb3ad2671a3f73b7.tar.bz2 |
* web.c (union_match_dups): Also check DF_REF_REAL_LOC.
From-SVN: r198896
Diffstat (limited to 'gcc/web.c')
-rw-r--r-- | gcc/web.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -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); |