From: Chung-Lin Tang Date: Thu, 15 Mar 2012 10:04:12 +0000 (+0000) Subject: backport: re PR rtl-optimization/52528 (combine bug (powerpc testcase)) X-Git-Tag: releases/gcc-4.6.4~640 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=791560ce0b352cad32d9fc82f25be6f567a14daf;p=thirdparty%2Fgcc.git backport: re PR rtl-optimization/52528 (combine bug (powerpc testcase)) 2012-03-15 Chung-Lin Tang Backport from mainline 2012-03-10 Chung-Lin Tang PR rtl-optimization/52528 * combine.c (can_combine_p): Add setting of subst_low_luid before call to expand_field_assignment(). From-SVN: r185425 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 33767fa4eb53..4ade03cc6375 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2012-03-15 Chung-Lin Tang + + Backport from mainline + 2012-03-10 Chung-Lin Tang + + PR rtl-optimization/52528 + * combine.c (can_combine_p): Add setting of subst_low_luid + before call to expand_field_assignment(). + 2012-03-12 John David Anglin Backport from mainline diff --git a/gcc/combine.c b/gcc/combine.c index 74ec1e123fec..d1fdc96787c8 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1788,6 +1788,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);