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

Unified Diff: lib/compiler/implementation/ssa/bailout.dart

Issue 10384027: Wrap block-informations when embedding them in the graph. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Created 8 years, 7 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
« no previous file with comments | « no previous file | lib/compiler/implementation/ssa/builder.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/compiler/implementation/ssa/bailout.dart
diff --git a/lib/compiler/implementation/ssa/bailout.dart b/lib/compiler/implementation/ssa/bailout.dart
index 1a4513ed5796010e3f3d30579a993a910fa0de2d..372cb6ccd41daf37a6deefff61755eb07e40bb1f 100644
--- a/lib/compiler/implementation/ssa/bailout.dart
+++ b/lib/compiler/implementation/ssa/bailout.dart
@@ -316,7 +316,7 @@ class SsaBailoutPropagator extends HBaseVisitor {
if (block.isLoopHeader()) {
blocks.addLast(block);
} else if (block.isLabeledBlock() && blocks.last() !== block) {
- HLabeledBlockInformation info = block.blockInformation;
+ HLabeledBlockInformation info = block.blockFlow.body;
visitStatements(info.body);
return;
}
@@ -344,16 +344,16 @@ class SsaBailoutPropagator extends HBaseVisitor {
subGraph = oldSubGraph;
if (start.isLabeledBlock()) {
- HLabeledBlockInformation info = start.blockInformation;
- if (info.joinBlock !== null) {
- visitBasicBlock(info.joinBlock);
+ HBasicBlock continuation = start.blockFlow.continuation;
+ if (continuation !== null) {
+ visitBasicBlock(continuation);
}
}
}
void visitIf(HIf instruction) {
int preVisitedBlocks = 0;
- HIfBlockInformation info = instruction.blockInformation;
+ HIfBlockInformation info = instruction.blockInformation.body;
visitStatements(info.thenGraph);
preVisitedBlocks++;
if (instruction.hasElse) {
@@ -361,12 +361,13 @@ class SsaBailoutPropagator extends HBaseVisitor {
preVisitedBlocks++;
}
- if (info.joinBlock !== null
- && info.joinBlock.dominator !== instruction.block) {
+ HBasicBlock joinBlock = instruction.joinBlock;
+ if (joinBlock !== null
+ && joinBlock.dominator !== instruction.block) {
// The join block is dominated by a block in one of the branches.
// The subgraph traversal never reached it, so we visit it here
// instead.
- visitBasicBlock(info.joinBlock);
+ visitBasicBlock(joinBlock);
}
// Visit all the dominated blocks that are not part of the then or else
« no previous file with comments | « no previous file | lib/compiler/implementation/ssa/builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698