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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart

Issue 85813002: Revert "Revert "Build new IR for functions returning a constant."" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: feedback by kasper Created 7 years, 1 month 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: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
index 02e78b7fce8abee9707e54097758e1a4a53054b1..79c84c48945d7d1fb723204cc103ddc6c48a02c6 100644
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
@@ -163,6 +163,7 @@ class FunctionInlineCache {
class JavaScriptBackend extends Backend {
SsaBuilderTask builder;
+ SsaFromIrBuilderTask fromIrBuilder;
SsaOptimizerTask optimizer;
SsaCodeGeneratorTask generator;
CodeEmitterTask emitter;
@@ -419,6 +420,7 @@ class JavaScriptBackend extends Backend {
super(compiler, JAVA_SCRIPT_CONSTANT_SYSTEM) {
emitter = new CodeEmitterTask(compiler, namer, generateSourceMap);
builder = new SsaBuilderTask(this);
+ fromIrBuilder = new SsaFromIrBuilderTask(compiler);
optimizer = new SsaOptimizerTask(this);
generator = new SsaCodeGeneratorTask(this);
typeVariableHandler = new TypeVariableHandler(this);
@@ -1260,8 +1262,9 @@ class JavaScriptBackend extends Backend {
compiler.enqueuer.codegen.registerStaticUse(getCyclicThrowHelper());
}
}
-
- HGraph graph = builder.build(work);
+ HGraph graph = compiler.irBuilder.hasIr(element)
+ ? fromIrBuilder.build(work)
+ : builder.build(work);
optimizer.optimize(work, graph);
jsAst.Expression code = generator.generateCode(work, graph);
generatedCode[element] = code;

Powered by Google App Engine
This is Rietveld 408576698