[gcc r16-6146] ifcombine: Replace force_gimple_operand_gsi with gimple_build [PR122987]
Pengxuan Zheng
pzheng@gcc.gnu.org
Mon Dec 15 23:30:23 GMT 2025
https://gcc.gnu.org/g:39681504b2fcdcbbb9424383524575283511fe00
commit r16-6146-g39681504b2fcdcbbb9424383524575283511fe00
Author: Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com>
Date: Thu Dec 11 12:18:32 2025 -0800
ifcombine: Replace force_gimple_operand_gsi with gimple_build [PR122987]
This makes the code a little cleaner and might speed up the compiler slightly.
Bootstrapped and tested on x86_64 and aarch64.
PR tree-optimization/122987
gcc/ChangeLog:
* tree-ssa-ifcombine.cc (ifcombine_ifandif): Replace
force_gimple_operand_gsi with gimple_build.
Signed-off-by: Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com>
Diff:
---
gcc/tree-ssa-ifcombine.cc | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-ifcombine.cc b/gcc/tree-ssa-ifcombine.cc
index 1fff92341982..2642cc10fb16 100644
--- a/gcc/tree-ssa-ifcombine.cc
+++ b/gcc/tree-ssa-ifcombine.cc
@@ -834,16 +834,18 @@ ifcombine_ifandif (basic_block inner_cond_bb, bool inner_inv,
/* Do it. */
gsi = gsi_for_stmt (inner_cond);
- t = fold_build2 (LSHIFT_EXPR, TREE_TYPE (name1),
- build_int_cst (TREE_TYPE (name1), 1), bit1);
- t2 = fold_build2 (LSHIFT_EXPR, TREE_TYPE (name1),
- build_int_cst (TREE_TYPE (name1), 1), bit2);
- t = fold_build2 (BIT_IOR_EXPR, TREE_TYPE (name1), t, t2);
- t = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE,
- true, GSI_SAME_STMT);
- t2 = fold_build2 (BIT_AND_EXPR, TREE_TYPE (name1), name1, t);
- t2 = force_gimple_operand_gsi (&gsi, t2, true, NULL_TREE,
- true, GSI_SAME_STMT);
+ location_t loc1 = gimple_location (inner_cond);
+ location_t loc2 = gimple_location (outer_cond);
+ t = gimple_build (&gsi, true, GSI_SAME_STMT, loc1, LSHIFT_EXPR,
+ TREE_TYPE (name1),
+ build_int_cst (TREE_TYPE (name1), 1), bit1);
+ t2 = gimple_build (&gsi, true, GSI_SAME_STMT, loc2, LSHIFT_EXPR,
+ TREE_TYPE (name1),
+ build_int_cst (TREE_TYPE (name1), 1), bit2);
+ t = gimple_build (&gsi, true, GSI_SAME_STMT, loc1, BIT_IOR_EXPR,
+ TREE_TYPE (name1), t, t2);
+ t2 = gimple_build (&gsi, true, GSI_SAME_STMT, loc1, BIT_AND_EXPR,
+ TREE_TYPE (name1), name1, t);
t = fold_build2 (EQ_EXPR, boolean_type_node, t2, t);
More information about the Gcc-cvs
mailing list