OSDN Git Service

Implement running user defined list of passes
authorWojciech Staszkiewicz <staszkiewicz@google.com>
Tue, 2 Aug 2016 00:48:59 +0000 (17:48 -0700)
committerWojciech Staszkiewicz <staszkiewicz@google.com>
Mon, 8 Aug 2016 18:24:26 +0000 (11:24 -0700)
commit5319d3cca5a9b8e9e3f59421818272b966575172
treea90bd83b7e69bbff0be601088bb1c764125d8cf6
parent9cff32df754c428ef69ddb61e7600abfd4c75266
Implement running user defined list of passes

This change introduces new dex2oat switch --run-passes=. This switch
accepts path to a text file with names of passes to run.
Compiler will run optimization passes specified in the file rather
then the default ones.

There is no verification implemented on the compiler side. It is user's
responsibility to provide a list of passes that leads to successful
generation of correct code. Care should be taken to prepare a list
that satisfies all dependencies between optimizations.

We only take control of the optional optimizations. Codegen (builder),
and all passes required for register allocation will run unaffected
by this mechanism.

Change-Id: Ic3694e53515fefcc5ce6f28d9371776b5afcbb4f
42 files changed:
compiler/driver/compiler_options.cc
compiler/driver/compiler_options.h
compiler/jit/jit_compiler.cc
compiler/optimizing/dead_code_elimination.h
compiler/optimizing/dex_cache_array_fixups_arm.h
compiler/optimizing/dex_cache_array_fixups_mips.h
compiler/optimizing/induction_var_analysis.h
compiler/optimizing/instruction_simplifier_arm.h
compiler/optimizing/instruction_simplifier_arm64.h
compiler/optimizing/optimization.h
compiler/optimizing/optimizing_compiler.cc
compiler/optimizing/pc_relative_fixups_mips.h
compiler/optimizing/pc_relative_fixups_x86.h
compiler/optimizing/x86_memory_gen.cc
compiler/optimizing/x86_memory_gen.h
dex2oat/dex2oat.cc
test/442-checker-constant-folding/src/Main.java
test/449-checker-bce/src/Main.java
test/450-checker-types/src/Main.java
test/458-checker-instruction-simplification/src/Main.java
test/480-checker-dead-blocks/src/Main.java
test/485-checker-dce-loop-update/smali/TestCase.smali
test/485-checker-dce-switch/src/Main.java
test/510-checker-try-catch/smali/Builder.smali
test/522-checker-regression-monitor-exit/smali/Test.smali
test/527-checker-array-access-split/src/Main.java
test/530-checker-loops3/src/Main.java
test/540-checker-rtp-bug/src/Main.java
test/543-checker-dce-trycatch/smali/TestCase.smali
test/543-checker-dce-trycatch/src/Main.java
test/557-checker-instruction-simplifier-ror/src/Main.java
test/559-checker-irreducible-loop/smali/IrreducibleLoop.smali
test/564-checker-irreducible-loop/smali/IrreducibleLoop.smali
test/565-checker-doublenegbitwise/src/Main.java
test/565-checker-rotate/src/Main.java
test/566-checker-signum/src/Main.java
test/567-checker-compare/src/Main.java
test/570-checker-osr/smali/Osr.smali
test/588-checker-irreducible-lifetime-hole/smali/IrreducibleLoop.smali
test/591-checker-regression-dead-loop/src/Main.java
test/593-checker-boolean-to-integral-conv/src/Main.java
test/611-checker-simplify-if/src/Main.java