aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@gcc.gnu.org>2012-08-08 06:39:33 -0700
committerH.J. Lu <hjl@gcc.gnu.org>2012-08-08 06:39:33 -0700
commit3b1e1a029a93f57ad64209560f00c2ec1f24fdfe (patch)
tree5a809c37df1938d156b3f35a25564342c3c68d22 /gcc/combine.c
parentd05e383bc7a06abdc444ff6f42a91fdce0ff3551 (diff)
downloadgcc-3b1e1a029a93f57ad64209560f00c2ec1f24fdfe.zip
gcc-3b1e1a029a93f57ad64209560f00c2ec1f24fdfe.tar.gz
gcc-3b1e1a029a93f57ad64209560f00c2ec1f24fdfe.tar.bz2
Don't return identity for CONST or symbolic reference
gcc/ PR rtl-optimization/54157 * combine.c (gen_lowpart_for_combine): Don't return identity for CONST or symbolic reference. gcc/testsuite/ PR rtl-optimization/54157 * gcc.target/i386/pr54157.c: New file. From-SVN: r190228
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 495e129..2b91eb9 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -10634,13 +10634,6 @@ gen_lowpart_for_combine (enum machine_mode omode, rtx x)
if (omode == imode)
return x;
- /* Return identity if this is a CONST or symbolic reference. */
- if (omode == Pmode
- && (GET_CODE (x) == CONST
- || GET_CODE (x) == SYMBOL_REF
- || GET_CODE (x) == LABEL_REF))
- return x;
-
/* We can only support MODE being wider than a word if X is a
constant integer or has a mode the same size. */
if (GET_MODE_SIZE (omode) > UNITS_PER_WORD