ART: Don't fail on unsupported conditions in boolean simplifier
Skip simplification instead of FATALing when an unsupported condition
is found.
Bug: 19992954
Change-Id: Ie2845bead72da63018734e6dd91ce65824658b39
diff --git a/compiler/optimizing/boolean_simplifier.cc b/compiler/optimizing/boolean_simplifier.cc
index e9ca042..ab77505 100644
--- a/compiler/optimizing/boolean_simplifier.cc
+++ b/compiler/optimizing/boolean_simplifier.cc
@@ -72,8 +72,8 @@
}
}
- LOG(FATAL) << "Instruction " << cond->DebugName() << " used as a condition";
- UNREACHABLE();
+ // TODO: b/19992954
+ return nullptr;
}
void HBooleanSimplifier::Run() {
@@ -105,6 +105,10 @@
HInstruction* replacement;
if (NegatesCondition(true_value, false_value)) {
replacement = GetOppositeCondition(if_condition);
+ if (replacement == nullptr) {
+ // Something we could not handle.
+ continue;
+ }
if (replacement->GetBlock() == nullptr) {
block->InsertInstructionBefore(replacement, if_instruction);
}