As pointed out by Richard in PR63155.  It speeds up the testcase a few %.

Tested on aarch64-linux-gnu.  OK to install?

Richard


2018-10-08  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        PR middle-end/63155
        * gimple-ssa-backprop.c (backprop::intersect_uses): Use
        FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.

Index: gcc/gimple-ssa-backprop.c
===================================================================
--- gcc/gimple-ssa-backprop.c   2018-06-18 15:22:36.918297134 +0100
+++ gcc/gimple-ssa-backprop.c   2018-10-08 18:27:00.874770262 +0100
@@ -496,10 +496,11 @@ backprop::process_use (gimple *stmt, tre
 backprop::intersect_uses (tree var, usage_info *info)
 {
   imm_use_iterator iter;
-  gimple *stmt;
+  use_operand_p use_p;
   *info = usage_info::intersection_identity ();
-  FOR_EACH_IMM_USE_STMT (stmt, iter, var)
+  FOR_EACH_IMM_USE_FAST (use_p, iter, var)
     {
+      gimple *stmt = USE_STMT (use_p);
       if (is_gimple_debug (stmt))
        continue;
       gphi *phi = dyn_cast <gphi *> (stmt);
@@ -523,10 +524,7 @@ backprop::intersect_uses (tree var, usag
          process_use (stmt, var, &subinfo);
          *info &= subinfo;
          if (!info->is_useful ())
-           {
-             BREAK_FROM_IMM_USE_STMT (iter);
-             return false;
-           }
+           return false;
        }
     }
   return true;

Reply via email to