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

Side by Side Diff: pkg/compiler/lib/src/ssa/optimize.dart

Issue 2657453004: dart2js: Redo known-type analysis after load-elimination (Closed)
Patch Set: fix comment Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; 5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
6 import '../common/names.dart' show Selectors; 6 import '../common/names.dart' show Selectors;
7 import '../common/tasks.dart' show CompilerTask; 7 import '../common/tasks.dart' show CompilerTask;
8 import '../compiler.dart' show Compiler; 8 import '../compiler.dart' show Compiler;
9 import '../constants/constant_system.dart'; 9 import '../constants/constant_system.dart';
10 import '../constants/values.dart'; 10 import '../constants/values.dart';
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 // interceptors are often in the way of LICM'able instructions. 81 // interceptors are often in the way of LICM'able instructions.
82 new SsaDeadCodeEliminator(closedWorld, this), 82 new SsaDeadCodeEliminator(closedWorld, this),
83 new SsaGlobalValueNumberer(), 83 new SsaGlobalValueNumberer(),
84 // After GVN, some instructions might need their type to be 84 // After GVN, some instructions might need their type to be
85 // updated because they now have different inputs. 85 // updated because they now have different inputs.
86 new SsaTypePropagator(compiler, closedWorld), 86 new SsaTypePropagator(compiler, closedWorld),
87 codeMotion = new SsaCodeMotion(), 87 codeMotion = new SsaCodeMotion(),
88 new SsaLoadElimination(compiler, closedWorld), 88 new SsaLoadElimination(compiler, closedWorld),
89 new SsaRedundantPhiEliminator(), 89 new SsaRedundantPhiEliminator(),
90 new SsaDeadPhiEliminator(), 90 new SsaDeadPhiEliminator(),
91 // After GVN and load elimination the same value may be used in code
92 // controlled by a test on the value, so redo 'conversion insertion' to
93 // learn from the refined type.
94 new SsaTypeConversionInserter(closedWorld),
91 new SsaTypePropagator(compiler, closedWorld), 95 new SsaTypePropagator(compiler, closedWorld),
92 new SsaValueRangeAnalyzer(backend.helpers, closedWorld, this), 96 new SsaValueRangeAnalyzer(backend.helpers, closedWorld, this),
93 // Previous optimizations may have generated new 97 // Previous optimizations may have generated new
94 // opportunities for instruction simplification. 98 // opportunities for instruction simplification.
95 new SsaInstructionSimplifier(backend, closedWorld, this, registry), 99 new SsaInstructionSimplifier(backend, closedWorld, this, registry),
96 new SsaCheckInserter( 100 new SsaCheckInserter(
97 trustPrimitives, backend, closedWorld, boundsChecked), 101 trustPrimitives, backend, closedWorld, boundsChecked),
98 ]; 102 ];
99 phases.forEach(runPhase); 103 phases.forEach(runPhase);
100 104
(...skipping 2659 matching lines...) Expand 10 before | Expand all | Expand 10 after
2760 2764
2761 keyedValues.forEach((receiver, values) { 2765 keyedValues.forEach((receiver, values) {
2762 result.keyedValues[receiver] = 2766 result.keyedValues[receiver] =
2763 new Map<HInstruction, HInstruction>.from(values); 2767 new Map<HInstruction, HInstruction>.from(values);
2764 }); 2768 });
2765 2769
2766 result.nonEscapingReceivers.addAll(nonEscapingReceivers); 2770 result.nonEscapingReceivers.addAll(nonEscapingReceivers);
2767 return result; 2771 return result;
2768 } 2772 }
2769 } 2773 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698