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

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

Issue 2569733002: Even less reliance on Compiler.closedWorld (Closed)
Patch Set: Updated cf. comments. Created 4 years 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 '../closure.dart'; 5 import '../closure.dart';
6 import '../common.dart'; 6 import '../common.dart';
7 import '../common/codegen.dart' show CodegenRegistry; 7 import '../common/codegen.dart' show CodegenRegistry;
8 import '../compiler.dart'; 8 import '../compiler.dart';
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 28 matching lines...) Expand all
39 39
40 /// The tree elements for the element being built into an SSA graph. 40 /// The tree elements for the element being built into an SSA graph.
41 TreeElements get elements; 41 TreeElements get elements;
42 42
43 CodegenRegistry get registry; 43 CodegenRegistry get registry;
44 44
45 ClosedWorld get closedWorld => compiler.closedWorld; 45 ClosedWorld get closedWorld => compiler.closedWorld;
46 46
47 CommonMasks get commonMasks => closedWorld.commonMasks; 47 CommonMasks get commonMasks => closedWorld.commonMasks;
48 48
49 GlobalTypeInferenceResults get globalInferenceResults =>
50 compiler.globalInference.results;
51
49 /// Used to track the locals while building the graph. 52 /// Used to track the locals while building the graph.
50 LocalsHandler localsHandler; 53 LocalsHandler localsHandler;
51 54
52 /// A stack of instructions. 55 /// A stack of instructions.
53 /// 56 ///
54 /// We build the SSA graph by simulating a stack machine. 57 /// We build the SSA graph by simulating a stack machine.
55 List<HInstruction> stack = <HInstruction>[]; 58 List<HInstruction> stack = <HInstruction>[];
56 59
57 /// The count of nested loops we are currently building. 60 /// The count of nested loops we are currently building.
58 /// 61 ///
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 if (statements == null) return null; 194 if (statements == null) return null;
192 return new HSubGraphBlockInformation(statements); 195 return new HSubGraphBlockInformation(statements);
193 } 196 }
194 197
195 HSubExpressionBlockInformation wrapExpressionGraph(SubExpression expression) { 198 HSubExpressionBlockInformation wrapExpressionGraph(SubExpression expression) {
196 if (expression == null) return null; 199 if (expression == null) return null;
197 return new HSubExpressionBlockInformation(expression); 200 return new HSubExpressionBlockInformation(expression);
198 } 201 }
199 202
200 HInstruction buildFunctionType(FunctionType type) { 203 HInstruction buildFunctionType(FunctionType type) {
201 type.accept( 204 type.accept(new ReifiedTypeRepresentationBuilder(closedWorld), this);
202 new ReifiedTypeRepresentationBuilder(compiler.closedWorld), this);
203 return pop(); 205 return pop();
204 } 206 }
205 207
206 HInstruction buildFunctionTypeConversion( 208 HInstruction buildFunctionTypeConversion(
207 HInstruction original, DartType type, int kind); 209 HInstruction original, DartType type, int kind);
208 210
209 /// Returns the current source element. 211 /// Returns the current source element.
210 /// 212 ///
211 /// The returned element is a declaration element. 213 /// The returned element is a declaration element.
212 Element get sourceElement; 214 Element get sourceElement;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 if (unaliased is TypedefType) throw 'unable to unalias $type'; 331 if (unaliased is TypedefType) throw 'unable to unalias $type';
330 unaliased.accept(this, builder); 332 unaliased.accept(this, builder);
331 } 333 }
332 334
333 void visitDynamicType(DynamicType type, GraphBuilder builder) { 335 void visitDynamicType(DynamicType type, GraphBuilder builder) {
334 JavaScriptBackend backend = builder.compiler.backend; 336 JavaScriptBackend backend = builder.compiler.backend;
335 ClassElement cls = backend.helpers.DynamicRuntimeType; 337 ClassElement cls = backend.helpers.DynamicRuntimeType;
336 builder.push(new HDynamicType(type, new TypeMask.exact(cls, closedWorld))); 338 builder.push(new HDynamicType(type, new TypeMask.exact(cls, closedWorld)));
337 } 339 }
338 } 340 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/codegen_helpers.dart ('k') | pkg/compiler/lib/src/ssa/interceptor_simplifier.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698