This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH GCC][3/5]Move pass ivcanon upward in compilation process
- From: Bin Cheng <Bin dot Cheng at arm dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>
- Date: Fri, 2 Jun 2017 11:51:12 +0000
- Subject: [PATCH GCC][3/5]Move pass ivcanon upward in compilation process
- Authentication-results: sourceware.org; auth=none
- Authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Hi,
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?
Thanks,
bin
2017-05-31 Bin Cheng <bin.cheng@arm.com>
* passes.def (pass_iv_canon): Move before pass_loop_distribution.
From 1698cc3e552a17e84719dba1ff2fbe4a8890e6be Mon Sep 17 00:00:00 2001
From: Bin Cheng <binche01@e108451-lin.cambridge.arm.com>
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);
POP_INSERT_PASSES ()
- 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);
--
1.9.1