Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Unified Diff: runtime/vm/flow_graph.cc

Issue 11362060: Revert "Remove push arguments and replace constants in FlowGraph::InlineCall." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/flow_graph_inliner.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph.cc
diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc
index c530b3c11465908271ab081f7f180695e50e3ec0..0ead0a280ec731cea8804166a4277d14c6031487 100644
--- a/runtime/vm/flow_graph.cc
+++ b/runtime/vm/flow_graph.cc
@@ -780,28 +780,22 @@ void FlowGraph::ReplacePredecessor(BlockEntryInstr* old_block,
JoinEntryInstr* join = last->SuccessorAt(sidx)->AsJoinEntry();
ASSERT(join != NULL);
// Find the old predecessor index.
- const intptr_t old_index = join->IndexOfPredecessor(old_block);
- const intptr_t pred_count = join->PredecessorCount();
+ intptr_t old_index = join->IndexOfPredecessor(old_block);
+ intptr_t pred_count = join->PredecessorCount();
ASSERT(old_index >= 0);
ASSERT(old_index < pred_count);
// Find the new predecessor index while reordering the predecessors.
- const intptr_t new_id = new_block->block_id();
+ intptr_t new_id = new_block->block_id();
intptr_t new_index = old_index;
- // The predecessors are sorted by block id in ascending order. This is done
- // in JoinEntryInstr::AddPredecessor and in InlineCall.
if (old_block->block_id() < new_id) {
// Search upwards, bubbling down intermediate predecessors.
for (; new_index < pred_count - 1; ++new_index) {
- ASSERT(join->predecessors_[new_index]->block_id() <
- join->predecessors_[new_index + 1]->block_id());
if (join->predecessors_[new_index + 1]->block_id() > new_id) break;
join->predecessors_[new_index] = join->predecessors_[new_index + 1];
}
} else {
// Search downwards, bubbling up intermediate predecessors.
for (; new_index > 0; --new_index) {
- ASSERT(join->predecessors_[new_index - 1]->block_id() <
- join->predecessors_[new_index]->block_id());
if (join->predecessors_[new_index - 1]->block_id() < new_id) break;
join->predecessors_[new_index] = join->predecessors_[new_index - 1];
}
@@ -992,27 +986,6 @@ void FlowGraph::InlineCall(Definition* call, FlowGraph* callee_graph) {
// TODO(zerny): Compute the dominator frontier locally.
invalid_dominator_tree_ = true;
}
-
- // Remove push arguments of the call.
- for (intptr_t i = 0; i < call->ArgumentCount(); ++i) {
- PushArgumentInstr* push = call->ArgumentAt(i);
- push->ReplaceUsesWith(push->value()->definition());
- push->RemoveFromGraph();
- }
-
- // Replace remaining constants with uses by constants in the caller's
- // initial definitions.
- GrowableArray<Definition*>* defns =
- callee_graph->graph_entry()->initial_definitions();
- for (intptr_t i = 0; i < defns->length(); ++i) {
- ConstantInstr* constant = (*defns)[i]->AsConstant();
- if (constant != NULL &&
- ((constant->input_use_list() != NULL) ||
- (constant->env_use_list() != NULL))) {
- constant->ReplaceUsesWith(
- AddConstantToInitialDefinitions(constant->value()));
- }
- }
}
« no previous file with comments | « no previous file | runtime/vm/flow_graph_inliner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698