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

Unified Diff: runtime/vm/flow_graph.cc

Issue 539153002: Port and integrate the irregexp engine from V8 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated to current version Created 6 years, 3 months 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
Index: runtime/vm/flow_graph.cc
diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc
index 1964a81e64331ae42df08de622514a56ad02e065..1a62d89d2577e87062d31cf5762a1ed949a986cc 100644
--- a/runtime/vm/flow_graph.cc
+++ b/runtime/vm/flow_graph.cc
@@ -793,7 +793,7 @@ void FlowGraph::RenameRecursive(BlockEntryInstr* block_entry,
GrowableArray<PhiInstr*>* live_phis,
VariableLivenessAnalysis* variable_liveness) {
// 1. Process phis first.
- if (block_entry->IsJoinEntry()) {
+ if (block_entry->IsJoinEntry() || block_entry->IsIndirectEntry()) {
JoinEntryInstr* join = block_entry->AsJoinEntry();
if (join->phis() != NULL) {
for (intptr_t i = 0; i < join->phis()->length(); ++i) {
@@ -971,7 +971,8 @@ void FlowGraph::RenameRecursive(BlockEntryInstr* block_entry,
// 4. Process successor block. We have edge-split form, so that only blocks
// with one successor can have a join block as successor.
if ((block_entry->last_instruction()->SuccessorCount() == 1) &&
- block_entry->last_instruction()->SuccessorAt(0)->IsJoinEntry()) {
+ (block_entry->last_instruction()->SuccessorAt(0)->IsJoinEntry() ||
+ block_entry->last_instruction()->SuccessorAt(0)->IsIndirectEntry())) {
JoinEntryInstr* successor =
block_entry->last_instruction()->SuccessorAt(0)->AsJoinEntry();
intptr_t pred_index = successor->IndexOfPredecessor(block_entry);

Powered by Google App Engine
This is Rietveld 408576698