OSDN Git Service

Dynamic BCE (based on induction range analysis)
authorAart Bik <ajcbik@google.com>
Mon, 19 Oct 2015 21:59:26 +0000 (14:59 -0700)
committerAart Bik <ajcbik@google.com>
Sat, 21 Nov 2015 01:00:04 +0000 (17:00 -0800)
commit0b5849be045c5683d4a6b6b6c306abadba5f0fcc
tree87245845c05ddef6fb53ac4c3774607a89fa5db4
parent3944f7175dcf60316ba58a42698ccf23c65ac57c
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 (after filtering noise) is about:
  Linpack +20%
  LU    > +10%

Change-Id: I4e7b8bab0288beff6f98a14856e3536103d32742
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/nodes.cc
compiler/optimizing/optimizing_compiler.cc
test/449-checker-bce/src/Main.java
test/530-checker-loops/src/Main.java