aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2012-03-10 14:57:30 +0000
committerChung-Lin Tang <cltang@gcc.gnu.org>2012-03-10 14:57:30 +0000
commit30823ba60cafe3c1236e5ee89621f17e6dbae181 (patch)
tree69336bab4f85cb0fcbbc444fc2c6c1c57de424ff /gcc/combine.c
parentf8627856b408f330258e404cb19c2fa48ae28176 (diff)
downloadgcc-30823ba60cafe3c1236e5ee89621f17e6dbae181.zip
gcc-30823ba60cafe3c1236e5ee89621f17e6dbae181.tar.gz
gcc-30823ba60cafe3c1236e5ee89621f17e6dbae181.tar.bz2
re PR rtl-optimization/52528 (combine bug (powerpc testcase))
2012-03-10 Chung-Lin Tang <cltang@codesourcery.com> PR rtl-optimization/52528 * combine.c (can_combine_p): Add setting of subst_low_luid before call to expand_field_assignment(). From-SVN: r185175
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index d06de040..ab825e4 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1822,6 +1822,10 @@ can_combine_p (rtx insn, rtx i3, rtx pred ATTRIBUTE_UNUSED,
if (set == 0)
return 0;
+ /* The simplification in expand_field_assignment may call back to
+ get_last_value, so set safe guard here. */
+ subst_low_luid = DF_INSN_LUID (insn);
+
set = expand_field_assignment (set);
src = SET_SRC (set), dest = SET_DEST (set);