OSDN Git Service

Dynamic BCE (based on induction range analysis)
authorAart Bik <ajcbik@google.com>
Mon, 30 Nov 2015 18:17:46 +0000 (10:17 -0800)
committerAart Bik <ajcbik@google.com>
Tue, 1 Dec 2015 21:26:16 +0000 (13:26 -0800)
commit4a34277c55279ba57ab361f7580db846a201d9b1
tree31d775a871a351357ecd5d6c76a3a827e20e6d07
parentf4c539395244ccfc14aebaf53fdc1122287f65a6
Dynamic BCE (based on induction range analysis)

Rationale:
A rewritten dynamic BCE that uses induction variable analysis
to generate the run-time tests before a loop in order to
eliminate bounds-checks from its body. This CL removes now
obsoleted induction related code inside the BCE module.
Also, the dynamic test generation is placed more strategically,
since we missed a few cases where static analysis does better.

Most significant performance improvements (filtering noise) is about:

Linpack +20%
LU    > +10%

Change-Id: I03d7631857154b6a131b132f26a2dc568af1b3a1
compiler/optimizing/bounds_check_elimination.cc
compiler/optimizing/bounds_check_elimination.h
compiler/optimizing/bounds_check_elimination_test.cc
compiler/optimizing/graph_checker.cc
compiler/optimizing/induction_var_range.cc
compiler/optimizing/optimizing_compiler.cc
test/449-checker-bce/src/Main.java
test/530-checker-loops/src/Main.java