summaryrefslogtreecommitdiff
path: root/compiler/optimizing/ssa_liveness_analysis.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2014-07-14 10:36:21 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-07-10 20:18:52 +0000
commit1cad41d900201422cedcbe7837935d17bbf28ed8 (patch)
tree8858489463a57c7b50f7db4d972abec21302b7a7 /compiler/optimizing/ssa_liveness_analysis.cc
parentcf90ba7ebe00346651f3b7ce1e5b1f785f7caabd (diff)
parente50383288a75244255d3ecedcc79ffe9caf774cb (diff)
Merge "Support fields in optimizing compiler."
Diffstat (limited to 'compiler/optimizing/ssa_liveness_analysis.cc')
-rw-r--r--compiler/optimizing/ssa_liveness_analysis.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/optimizing/ssa_liveness_analysis.cc b/compiler/optimizing/ssa_liveness_analysis.cc
index 50ea00f4cd..fbdc0b9593 100644
--- a/compiler/optimizing/ssa_liveness_analysis.cc
+++ b/compiler/optimizing/ssa_liveness_analysis.cc
@@ -204,9 +204,12 @@ void SsaLivenessAnalysis::ComputeLiveRanges() {
// All inputs of an instruction must be live.
for (size_t i = 0, e = current->InputCount(); i < e; ++i) {
HInstruction* input = current->InputAt(i);
- DCHECK(input->HasSsaIndex());
- live_in->SetBit(input->GetSsaIndex());
- input->GetLiveInterval()->AddUse(current, i, false);
+ // Some instructions 'inline' their inputs, that is they do not need
+ // to be materialized.
+ if (input->HasSsaIndex()) {
+ live_in->SetBit(input->GetSsaIndex());
+ input->GetLiveInterval()->AddUse(current, i, false);
+ }
}
if (current->HasEnvironment()) {