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); |