aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-04-17 14:30:06 -0700
committerAndrew Pinski <quic_apinski@quicinc.com>2024-04-30 08:56:15 -0700
commit8614d60233a64afd7e28ae7af2ab74c4a5b06010 (patch)
treec16046060c070596dc377cdcc2d4b7c71b13423a
parente3a7f359c18bf347f6ac8fcda05e9839fac5bd62 (diff)
downloadgcc-8614d60233a64afd7e28ae7af2ab74c4a5b06010.zip
gcc-8614d60233a64afd7e28ae7af2ab74c4a5b06010.tar.gz
gcc-8614d60233a64afd7e28ae7af2ab74c4a5b06010.tar.bz2
Remove support for nontemporal stores with ssa_names on lhs [PR112976]
When cfgexpand was changed to support expanding from tuple gimple (r0-95521-g28ed065ef9f345), the code was added to support doing nontemporal stores with LHS of a SSA_NAME but that will never be a nontemporal store. This patch removes that and asserts that expanding with a LHS of a SSA_NAME is not a nontemporal store. Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: PR middle-end/112976 * cfgexpand.cc (expand_gimple_stmt_1): Remove support for expanding nontemporal "moves" with ssa names on the LHS. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
-rw-r--r--gcc/cfgexpand.cc11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/cfgexpand.cc b/gcc/cfgexpand.cc
index eef565e..cfc5291 100644
--- a/gcc/cfgexpand.cc
+++ b/gcc/cfgexpand.cc
@@ -4002,17 +4002,16 @@ expand_gimple_stmt_1 (gimple *stmt)
else
{
rtx target, temp;
- bool nontemporal = gimple_assign_nontemporal_move_p (assign_stmt);
+ gcc_assert (!gimple_assign_nontemporal_move_p (assign_stmt));
bool promoted = false;
target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE);
if (GET_CODE (target) == SUBREG && SUBREG_PROMOTED_VAR_P (target))
promoted = true;
- /* If we want to use a nontemporal store, force the value to
- register first. If we store into a promoted register,
- don't directly expand to target. */
- temp = nontemporal || promoted ? NULL_RTX : target;
+ /* If we store into a promoted register, don't directly
+ expand to target. */
+ temp = promoted ? NULL_RTX : target;
temp = expand_expr_real_gassign (assign_stmt, temp,
GET_MODE (target), EXPAND_NORMAL);
@@ -4034,8 +4033,6 @@ expand_gimple_stmt_1 (gimple *stmt)
convert_move (SUBREG_REG (target), temp, unsignedp);
}
- else if (nontemporal && emit_storent_insn (target, temp))
- ;
else
{
temp = force_operand (temp, target);