aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2021-11-09 17:54:23 +0100
committerMartin Jambor <mjambor@suse.cz>2021-11-09 17:54:28 +0100
commit2d60c0a3eedea4d0f1d40806a5f95540a1a4219e (patch)
tree220f83c75f7eb1fac9861df32ddbad7bad79621c /gcc/tree-ssa-phiopt.c
parent3bc3f6cefc2b92d368affacb74928948388c4786 (diff)
downloadgcc-2d60c0a3eedea4d0f1d40806a5f95540a1a4219e.zip
gcc-2d60c0a3eedea4d0f1d40806a5f95540a1a4219e.tar.gz
gcc-2d60c0a3eedea4d0f1d40806a5f95540a1a4219e.tar.bz2
Introduce build_debug_expr_decl
This patch introduces a helper function build_debug_expr_decl to build DEBUG_EXPR_DECL tree nodes in the most common way and replaces with a call of this function all code pieces which build such a DECL itself and sets its mode to the TYPE_MODE of its type. There still remain 11 instances of open-coded creation of a DEBUG_EXPR_DECL which set the mode of the DECL to something else. It would probably be a good idea to figure out that has any effect and if not, convert them to calls of build_debug_expr_decl too. But this patch deliberately does not introduce any functional changes. gcc/ChangeLog: 2021-11-08 Martin Jambor <mjambor@suse.cz> * tree.h (build_debug_expr_decl): Declare. * tree.c (build_debug_expr_decl): New function. * cfgexpand.c (avoid_deep_ter_for_debug): Use build_debug_expr_decl instead of building a DEBUG_EXPR_DECL. * ipa-param-manipulation.c (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. * tree-ssa-phiopt.c (spaceship_replacement): Likewise. * tree-ssa-reassoc.c (make_new_ssa_for_def): Likewise.
Diffstat (limited to 'gcc/tree-ssa-phiopt.c')
-rw-r--r--gcc/tree-ssa-phiopt.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 0e339c4..173ac83 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -2429,19 +2429,13 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
all floating point numbers should be comparable. */
gimple_stmt_iterator gsi = gsi_after_labels (gimple_bb (phi));
tree type = TREE_TYPE (phires);
- tree temp1 = make_node (DEBUG_EXPR_DECL);
- DECL_ARTIFICIAL (temp1) = 1;
- TREE_TYPE (temp1) = type;
- SET_DECL_MODE (temp1, TYPE_MODE (type));
+ tree temp1 = build_debug_expr_decl (type);
tree t = build2 (one_cmp, boolean_type_node, lhs1, rhs2);
t = build3 (COND_EXPR, type, t, build_one_cst (type),
build_int_cst (type, -1));
gimple *g = gimple_build_debug_bind (temp1, t, phi);
gsi_insert_before (&gsi, g, GSI_SAME_STMT);
- tree temp2 = make_node (DEBUG_EXPR_DECL);
- DECL_ARTIFICIAL (temp2) = 1;
- TREE_TYPE (temp2) = type;
- SET_DECL_MODE (temp2, TYPE_MODE (type));
+ tree temp2 = build_debug_expr_decl (type);
t = build2 (EQ_EXPR, boolean_type_node, lhs1, rhs2);
t = build3 (COND_EXPR, type, t, build_zero_cst (type), temp1);
g = gimple_build_debug_bind (temp2, t, phi);