From 1a7503cd23d1084ebc6bd7f4892f0c2c5827e0ca Mon Sep 17 00:00:00 2001
From: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Date: Tue, 18 Sep 2018 18:11:01 +0200
Subject: noloopalias: Add new pass to optimise loops.

This pass allows to declare pointer non-aliasing on loop level
within the given function.

If such non-aliasing is given, then we outline the loop into
its own function. The arguments of the new function are all
variables, which are used in the loop, where pointers are
declared as restricted types (non-aliasing).

This allows to optimize the loop more aggressively.

Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
---
 gcc/passes.def | 1 +
 1 file changed, 1 insertion(+)

(limited to 'gcc/passes.def')

diff --git a/gcc/passes.def b/gcc/passes.def
index fe81b405f140..1258c442e4e3 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -45,6 +45,7 @@ along with GCC; see the file COPYING3.  If not see
   NEXT_PASS (pass_sprintf_length, false);
   NEXT_PASS (pass_walloca, /*strict_mode_p=*/true);
   NEXT_PASS (pass_build_cgraph_edges);
+  NEXT_PASS (pass_uninline_innermost_loops);
   TERMINATE_PASS_LIST (all_lowering_passes)
 
   /* Interprocedural optimization passes.  */
-- 
cgit v1.2.3

