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

Unified Diff: pkg/compiler/lib/src/ssa/kernel_impact.dart

Issue 2324213003: build kernel for the entire program after resolution (Closed)
Patch Set: Created 4 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: pkg/compiler/lib/src/ssa/kernel_impact.dart
diff --git a/pkg/compiler/lib/src/ssa/kernel_impact.dart b/pkg/compiler/lib/src/ssa/kernel_impact.dart
index d4d161e8c5b79dc0857d1a416286c36131afbc13..6dacb1fc1c3ddc4b1f83fa320fdc77e36614f528 100644
--- a/pkg/compiler/lib/src/ssa/kernel_impact.dart
+++ b/pkg/compiler/lib/src/ssa/kernel_impact.dart
@@ -22,22 +22,29 @@ import '../common/resolution.dart';
/// Computes the [ResolutionImpact] for [resolvedAst] through kernel.
ResolutionImpact build(Compiler compiler, ResolvedAst resolvedAst) {
AstElement element = resolvedAst.element.implementation;
- Kernel kernel = new Kernel(compiler);
- KernelVisitor visitor =
- new KernelVisitor(element, resolvedAst.elements, kernel);
- IrFunction function;
- try {
- function = visitor.buildFunction();
- } catch (e) {
- throw "Failed to convert to Kernel IR: $e";
- }
- KernelImpactBuilder builder = new KernelImpactBuilder(
- function, element, resolvedAst, compiler, visitor, kernel);
+// Kernel kernel = new Kernel(compiler);
Siggi Cherem (dart-lang) 2016/09/09 22:49:23 ditto?
Harry Terkelsen 2016/09/09 22:56:47 Done.
+// KernelVisitor visitor =
+// new KernelVisitor(element, resolvedAst.elements, kernel);
+// IrFunction function;
+// try {
+// function = visitor.buildFunction();
+// } catch (e) {
+// throw "Failed to convert to Kernel IR: $e";
+// }
+ JavaScriptBackend backend = compiler.backend;
+ Kernel kernel = backend.kernelTask.kernel;
+ ir.Procedure function = kernel.functions[element];
+ if (function == null) {
+ print("FOUND NULL FUNCTION: $element");
+ print(kernel.functions);
+ }
+ KernelImpactBuilder builder =
+ new KernelImpactBuilder(function, element, resolvedAst, compiler, kernel);
return builder.build();
}
class KernelImpactBuilder extends ir.Visitor {
- final IrFunction function;
+ final ir.Procedure function;
final FunctionElement functionElement;
final ResolvedAst resolvedAst;
final Compiler compiler;
@@ -48,13 +55,13 @@ class KernelImpactBuilder extends ir.Visitor {
KernelAstAdapter astAdapter;
KernelImpactBuilder(this.function, this.functionElement, this.resolvedAst,
- this.compiler, KernelVisitor visitor, Kernel kernel) {
+ this.compiler, Kernel kernel) {
this.impactBuilder = new ResolutionWorldImpactBuilder('$functionElement');
this.astAdapter = new KernelAstAdapter(
compiler.backend,
resolvedAst,
- visitor.nodeToAst,
- visitor.nodeToElement,
+ kernel.nodeToAst,
+ kernel.nodeToElement,
kernel.functions,
kernel.classes,
kernel.libraries);
@@ -81,8 +88,8 @@ class KernelImpactBuilder extends ir.Visitor {
return type;
}
- void buildMethod(IrFunction method) {
- method.node.body.accept(this);
+ void buildMethod(ir.Procedure method) {
+ method.function.body.accept(this);
}
void visitNodes(Iterable<ir.Node> nodes) {

Powered by Google App Engine
This is Rietveld 408576698