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

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

Issue 2324213003: build kernel for the entire program after resolution (Closed)
Patch Set: respond to comments 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
« no previous file with comments | « pkg/compiler/lib/src/kernel/kernel_visitor.dart ('k') | pkg/compiler/lib/src/ssa/kernel_impact.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/ssa/builder_kernel.dart
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 21053f050bf1ca4bcf84e130194dc7b6a9ec3598..88cfe1809e999e1aa68ab945d61165da7babd9a7 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -36,15 +36,8 @@ class SsaKernelBuilderTask extends CompilerTask {
HGraph build(CodegenWorkItem work) {
return measure(() {
AstElement element = work.element.implementation;
- TreeElements treeElements = work.resolvedAst.elements;
- Kernel kernel = new Kernel(backend.compiler);
- KernelVisitor visitor = new KernelVisitor(element, treeElements, kernel);
- IrFunction function;
- try {
- function = visitor.buildFunction();
- } catch (e) {
- throw "Failed to convert to Kernel IR: $e";
- }
+ Kernel kernel = backend.kernelTask.kernel;
+ ir.Procedure function = kernel.functions[element];
KernelSsaBuilder builder = new KernelSsaBuilder(
function,
element,
@@ -52,7 +45,6 @@ class SsaKernelBuilderTask extends CompilerTask {
backend.compiler,
work.registry,
sourceInformationFactory,
- visitor,
kernel);
return builder.build();
});
@@ -60,7 +52,7 @@ class SsaKernelBuilderTask extends CompilerTask {
}
class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
- final IrFunction function;
+ final ir.Procedure function;
final FunctionElement functionElement;
final ResolvedAst resolvedAst;
final Compiler compiler;
@@ -78,7 +70,6 @@ class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
this.compiler,
this.registry,
SourceInformationStrategy sourceInformationFactory,
- KernelVisitor visitor,
Kernel kernel) {
graph.element = functionElement;
// TODO(het): Should sourceInformationBuilder be in GraphBuilder?
@@ -91,8 +82,8 @@ class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
this.astAdapter = new KernelAstAdapter(
compiler.backend,
resolvedAst,
- visitor.nodeToAst,
- visitor.nodeToElement,
+ kernel.nodeToAst,
+ kernel.nodeToElement,
kernel.functions,
kernel.classes,
kernel.libraries);
@@ -132,13 +123,14 @@ class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
}
/// Builds a SSA graph for [method].
- void buildMethod(IrFunction method, FunctionElement functionElement) {
- openFunction(method, functionElement);
- method.node.body.accept(this);
+ void buildMethod(ir.Procedure method, FunctionElement functionElement) {
+ openFunction(functionElement);
+ method.function.body.accept(this);
closeFunction();
}
- void openFunction(IrFunction method, FunctionElement functionElement) {
+ // TODO(het): get function element from astAdapter?
+ void openFunction(FunctionElement functionElement) {
HBasicBlock block = graph.addNewBlock();
open(graph.entry);
localsHandler.startFunction(functionElement, resolvedAst.node);
« no previous file with comments | « pkg/compiler/lib/src/kernel/kernel_visitor.dart ('k') | pkg/compiler/lib/src/ssa/kernel_impact.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698