Semi-pruned SSA support for sea-ir.
Added the following:
Per file:
sea_ir/sea.*: IDominator pass, dominance frontiers, global variables for ssa
transformation, phi-function insertion pass, SSA renaming pass.
sea_ir/instruction_tools.*: These tools provide info needed by dataflow analysis
that is dependent on dex format.
compiler/utils/scoped_hashtable.h: Scoped hashtable implementation that
allows fast SSA renaming.
src/compiler/utils/scoped_hashtable_test.cc: Test for scoped_hashtable.h.
dex_instruction.cc: Changed semantics of the VRegA,B,C function
to return NO_REGISTER instead
of aborting if the instruction does not
have register operands.
Android.common.mk: Added support for scoped_hashtable test.
Change-Id: I990fe4c213d241a033e43a04a67c6083fca4b347
diff --git a/src/compiler/driver/compiler_driver.cc b/src/compiler/driver/compiler_driver.cc
index c876252..8759958 100644
--- a/src/compiler/driver/compiler_driver.cc
+++ b/src/compiler/driver/compiler_driver.cc
@@ -2268,7 +2268,7 @@
CompilerFn compiler = compiler_;
#ifdef ART_SEA_IR_MODE
bool use_sea = Runtime::Current()->IsSeaIRMode();
- use_sea &&= (std::string::npos != PrettyMethod(method_idx, dex_file).find("fibonacci"));
+ use_sea = use_sea && (std::string::npos != PrettyMethod(method_idx, dex_file).find("fibonacci"));
if (use_sea) {
compiler = sea_ir_compiler_;
}