Index: runtime/vm/intermediate_language.cc |
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc |
index a7f617fd6eafe3656974e01facca93aa3d5da123..3eafc908074853c3c37448c69f01e084b5492c6b 100644 |
--- a/runtime/vm/intermediate_language.cc |
+++ b/runtime/vm/intermediate_language.cc |
@@ -273,6 +273,11 @@ RawAbstractType* ParameterInstr::CompileType() const { |
} |
+RawAbstractType* PushArgumentInstr::CompileType() const { |
+ return AbstractType::null(); |
+} |
+ |
+ |
intptr_t JoinEntryInstr::IndexOfPredecessor(BlockEntryInstr* pred) const { |
for (intptr_t i = 0; i < predecessors_.length(); ++i) { |
if (predecessors_[i] == pred) return i; |
@@ -1233,38 +1238,6 @@ void PushArgumentInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
-void Environment::InitializeLocations(FlowGraphAllocator* allocator, |
- intptr_t block_start_pos, |
- intptr_t environment_pos) { |
- // Any value mentioned in the deoptimization environment should survive |
- // until the end of instruction but it does not need to be in the register. |
- // Expected shape of live range: |
- // |
- // i i' |
- // value -----* |
- // |
- ASSERT(locations_ == NULL); |
- location_count_ = values_.length(); |
- if (location_count_ > 0) { |
- locations_ = |
- Isolate::Current()->current_zone()->Alloc<Location>(location_count_); |
- for (intptr_t i = 0; i < location_count_; ++i) { |
- Value* value = values_[i]; |
- if (value->IsUse()) { |
- locations_[i] = Location::Any(); |
- const intptr_t vreg = value->AsUse()->definition()->ssa_temp_index(); |
- LiveRange* range = allocator->GetLiveRange(vreg); |
- range->AddUseInterval(block_start_pos, environment_pos); |
- range->AddUse(environment_pos, &locations_[i]); |
- } else { |
- ASSERT(value->IsConstant()); |
- locations_[i] = Location::NoLocation(); |
- } |
- } |
- } |
-} |
- |
- |
#undef __ |
} // namespace dart |