This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH GCC][3/5]Move pass ivcanon upward in compilation process

This patch moves pass ivcanon before loop distribution.  Pass loop split could create
loops with limited niters.  Such loop should be unrolled before loop distribution (or graphite),
rather than after.

Bootstrap and test at O2/O3 on x86_64 and AArch64.  is it OK?

2017-05-31  Bin Cheng  <>

	* passes.def (pass_iv_canon): Move before pass_loop_distribution.
From 1698cc3e552a17e84719dba1ff2fbe4a8890e6be Mon Sep 17 00:00:00 2001
From: Bin Cheng <>
Date: Tue, 30 May 2017 17:56:05 +0100
Subject: [PATCH 3/5] move-ivcanon-pass-20170529.txt

 gcc/passes.def | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/passes.def b/gcc/passes.def
index 10a18bf..beb350b 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -277,6 +277,7 @@ along with GCC; see the file COPYING3.  If not see
 	     empty loops.  Remove them now.  */
 	  NEXT_PASS (pass_cd_dce);
 	  NEXT_PASS (pass_record_bounds);
+	  NEXT_PASS (pass_iv_canon);
 	  NEXT_PASS (pass_loop_distribution);
 	  NEXT_PASS (pass_copy_prop);
 	  NEXT_PASS (pass_graphite);
@@ -286,7 +287,6 @@ along with GCC; see the file COPYING3.  If not see
 	      NEXT_PASS (pass_copy_prop);
 	      NEXT_PASS (pass_dce);
-	  NEXT_PASS (pass_iv_canon);
 	  NEXT_PASS (pass_parallelize_loops, false /* oacc_kernels_p */);
 	  NEXT_PASS (pass_expand_omp_ssa);
 	  NEXT_PASS (pass_ch_vect);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]