Hi!

Various functions in phiopt are also called with a gphi * but use
gimple * argument for it.  Fixed thusly, bootstrapped/regtested on
x86_64-linux and i686-linux, ok for trunk?

2021-05-06  Jakub Jelinek  <ja...@redhat.com>

        * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
        abs_replacement, xor_replacement,
        cond_removal_in_popcount_clz_ctz_pattern,
        replace_phi_edge_with_variable): Change type of phi argument from
        gimple * to gphi *.

--- gcc/tree-ssa-phiopt.c.jj    2021-05-05 15:06:23.253189139 +0200
+++ gcc/tree-ssa-phiopt.c       2021-05-05 18:02:07.600019038 +0200
@@ -57,23 +57,23 @@ static bool conditional_replacement (bas
 static gphi *factor_out_conditional_conversion (edge, edge, gphi *, tree, tree,
                                                gimple *);
 static int value_replacement (basic_block, basic_block,
-                             edge, edge, gimple *, tree, tree);
+                             edge, edge, gphi *, tree, tree);
 static bool minmax_replacement (basic_block, basic_block,
-                               edge, edge, gimple *, tree, tree);
+                               edge, edge, gphi *, tree, tree);
 static bool abs_replacement (basic_block, basic_block,
-                            edge, edge, gimple *, tree, tree);
+                            edge, edge, gphi *, tree, tree);
 static bool xor_replacement (basic_block, basic_block,
-                            edge, edge, gimple *, tree, tree);
+                            edge, edge, gphi *, tree, tree);
 static bool spaceship_replacement (basic_block, basic_block,
                                   edge, edge, gphi *, tree, tree);
 static bool cond_removal_in_popcount_clz_ctz_pattern (basic_block, basic_block,
-                                                     edge, edge, gimple *,
+                                                     edge, edge, gphi *,
                                                      tree, tree);
 static bool cond_store_replacement (basic_block, basic_block, edge, edge,
                                    hash_set<tree> *);
 static bool cond_if_else_store_replacement (basic_block, basic_block, 
basic_block);
 static hash_set<tree> * get_non_trapping ();
-static void replace_phi_edge_with_variable (basic_block, edge, gimple *, tree);
+static void replace_phi_edge_with_variable (basic_block, edge, gphi *, tree);
 static void hoist_adjacent_loads (basic_block, basic_block,
                                  basic_block, basic_block);
 static bool gate_hoist_loads (void);
@@ -389,7 +389,7 @@ tree_ssa_phiopt_worker (bool do_store_el
 
 static void
 replace_phi_edge_with_variable (basic_block cond_block,
-                               edge e, gimple *phi, tree new_tree)
+                               edge e, gphi *phi, tree new_tree)
 {
   basic_block bb = gimple_bb (phi);
   basic_block block_to_remove;
@@ -1113,8 +1113,7 @@ absorbing_element_p (tree_code code, tre
 
 static int
 value_replacement (basic_block cond_bb, basic_block middle_bb,
-                  edge e0, edge e1, gimple *phi,
-                  tree arg0, tree arg1)
+                  edge e0, edge e1, gphi *phi, tree arg0, tree arg1)
 {
   gimple_stmt_iterator gsi;
   gimple *cond;
@@ -1422,8 +1421,7 @@ value_replacement (basic_block cond_bb,
 
 static bool
 minmax_replacement (basic_block cond_bb, basic_block middle_bb,
-                   edge e0, edge e1, gimple *phi,
-                   tree arg0, tree arg1)
+                   edge e0, edge e1, gphi *phi, tree arg0, tree arg1)
 {
   tree result;
   edge true_edge, false_edge;
@@ -2266,7 +2264,7 @@ spaceship_replacement (basic_block cond_
 static bool
 cond_removal_in_popcount_clz_ctz_pattern (basic_block cond_bb,
                                          basic_block middle_bb,
-                                         edge e1, edge e2, gimple *phi,
+                                         edge e1, edge e2, gphi *phi,
                                          tree arg0, tree arg1)
 {
   gimple *cond;
@@ -2424,7 +2422,7 @@ cond_removal_in_popcount_clz_ctz_pattern
 static bool
 abs_replacement (basic_block cond_bb, basic_block middle_bb,
                 edge e0 ATTRIBUTE_UNUSED, edge e1,
-                gimple *phi, tree arg0, tree arg1)
+                gphi *phi, tree arg0, tree arg1)
 {
   tree result;
   gassign *new_stmt;
@@ -2548,7 +2546,7 @@ abs_replacement (basic_block cond_bb, ba
 static bool
 xor_replacement (basic_block cond_bb, basic_block middle_bb,
                 edge e0 ATTRIBUTE_UNUSED, edge e1,
-                gimple *phi, tree arg0, tree arg1)
+                gphi *phi, tree arg0, tree arg1)
 {
   if (!INTEGRAL_TYPE_P (TREE_TYPE (arg1)))
     return false;

        Jakub

Reply via email to