Use FOR_EACH_IMM_USE_FAST in gimple-ssa-backprop.c

Message ID 874ldwtkko.fsf@arm.com
State New
Headers show
Series
  • Use FOR_EACH_IMM_USE_FAST in gimple-ssa-backprop.c
Related show

Commit Message

Richard Sandiford Oct. 8, 2018, 5:27 p.m.
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.sandiford@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.

Comments

Jeff Law Oct. 8, 2018, 5:37 p.m. | #1
On 10/8/18 11:27 AM, Richard Sandiford wrote:
> 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.sandiford@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.
OK.
jeff

Patch

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;