From 281c681a0852c10f5ca99b351650b244e878aea3 Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Fri, 26 Aug 2016 11:31:48 -0700 Subject: A first implementation of a loop optimization framework. Rationale: We are planning to add more and more loop related optimizations and this framework provides the basis to do so. For starters, the framework optimizes dead induction, induction that can be replaced with a simpler closed-form, and eliminates dead loops completely (either pre-existing or as a result of induction removal). Speedup on e.g. Benchpress Loop is 73x (17.5us. -> 0.24us.) [with the potential for more exploiting outer loop too] Test: 618-checker-induction et al. Change-Id: If80a809acf943539bf6726b0030dcabd50c9babc --- compiler/Android.bp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'compiler/Android.bp') diff --git a/compiler/Android.bp b/compiler/Android.bp index 7fb009adc0..2556178ddf 100644 --- a/compiler/Android.bp +++ b/compiler/Android.bp @@ -63,6 +63,7 @@ art_cc_defaults { "optimizing/licm.cc", "optimizing/load_store_elimination.cc", "optimizing/locations.cc", + "optimizing/loop_optimization.cc", "optimizing/nodes.cc", "optimizing/optimization.cc", "optimizing/optimizing_compiler.cc", @@ -318,6 +319,7 @@ art_cc_test { "optimizing/induction_var_range_test.cc", "optimizing/licm_test.cc", "optimizing/live_interval_test.cc", + "optimizing/loop_optimization_test.cc", "optimizing/nodes_test.cc", "optimizing/parallel_move_test.cc", "optimizing/pretty_printer_test.cc", -- cgit v1.2.3-59-g8ed1b