diff options
Diffstat (limited to 'compiler/optimizing/load_store_elimination.cc')
-rw-r--r-- | compiler/optimizing/load_store_elimination.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/load_store_elimination.cc b/compiler/optimizing/load_store_elimination.cc index b1ec62a12d..1ea2ece004 100644 --- a/compiler/optimizing/load_store_elimination.cc +++ b/compiler/optimizing/load_store_elimination.cc @@ -3613,9 +3613,13 @@ HInstruction* LSEVisitor::GetPartialValueAt(HNewInstance* orig_new_inst, HInstru HInstruction* res = Replacement(pred).GetInstruction(); LSE_VLOG << pred << " materialized to " << res->DumpWithArgs(); return res; + } else if (pred.IsDefault()) { + HInstruction* res = GetDefaultValue(read->GetType()); + LSE_VLOG << pred << " materialized to " << res->DumpWithArgs(); + return res; } LOG(FATAL) << "Unable to find unescaped value at " << read->DumpWithArgs() - << "! This should be impossible!"; + << "! This should be impossible! Value is " << pred; UNREACHABLE(); } |