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

Unified Diff: dart/lib/compiler/implementation/ssa/codegen.dart

Issue 10408059: Move registering to the enqueuer. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 7 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: dart/lib/compiler/implementation/ssa/codegen.dart
diff --git a/dart/lib/compiler/implementation/ssa/codegen.dart b/dart/lib/compiler/implementation/ssa/codegen.dart
index 3934dc3bbd9919098a2b88be1d93ddb80c711bf0..4e054db0730c5305570d80d8427b9ff96ac71de5 100644
--- a/dart/lib/compiler/implementation/ssa/codegen.dart
+++ b/dart/lib/compiler/implementation/ssa/codegen.dart
@@ -183,6 +183,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
LibraryElement get currentLibrary() => work.element.getLibrary();
Compiler get compiler() => backend.compiler;
+ Enqueuer get world() => backend.compiler.enqueuer.codegen;
bool isGenerateAtUseSite(HInstruction instruction) {
return generateAtUseSite.contains(instruction);
@@ -1478,9 +1479,9 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
if (node.element !== null) {
// If we know we're calling a specific method, register that
// method only.
- compiler.registerDynamicInvocationOf(node.element);
+ world.registerDynamicInvocationOf(node.element);
} else {
- compiler.registerDynamicInvocation(
+ world.registerDynamicInvocation(
node.name, getOptimizedSelectorFor(node, node.selector));
}
}
@@ -1502,7 +1503,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
buffer.add('.');
buffer.add(compiler.namer.setterName(currentLibrary, node.name));
visitArguments(node.inputs);
- compiler.registerDynamicSetter(
+ world.registerDynamicSetter(
node.name, getOptimizedSelectorFor(node, Selector.SETTER));
endExpression(JSPrecedence.CALL_PRECEDENCE);
}
@@ -1513,7 +1514,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
buffer.add('.');
buffer.add(compiler.namer.getterName(currentLibrary, node.name));
visitArguments(node.inputs);
- compiler.registerDynamicGetter(
+ world.registerDynamicGetter(
node.name, getOptimizedSelectorFor(node, Selector.GETTER));
endExpression(JSPrecedence.CALL_PRECEDENCE);
}
@@ -1525,8 +1526,8 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
buffer.add(compiler.namer.closureInvocationName(node.selector));
visitArguments(node.inputs);
// TODO(floitsch): we should have a separate list for closure invocations.
- compiler.registerDynamicInvocation(Namer.CLOSURE_INVOCATION_NAME,
- node.selector);
+ world.registerDynamicInvocation(Namer.CLOSURE_INVOCATION_NAME,
+ node.selector);
endExpression(JSPrecedence.CALL_PRECEDENCE);
}
@@ -1559,7 +1560,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
buffer.add('$className.prototype.$methodName.call()');
}
endExpression(JSPrecedence.CALL_PRECEDENCE);
- compiler.registerStaticUse(superMethod);
+ world.registerStaticUse(superMethod);
}
visitFieldGet(HFieldGet node) {
@@ -1813,7 +1814,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
void generateThrowWithHelper(String helperName, HInstruction argument) {
Element helper = compiler.findHelper(new SourceString(helperName));
- compiler.registerStaticUse(helper);
+ world.registerStaticUse(helper);
buffer.add('throw ');
beginExpression(JSPrecedence.EXPRESSION_PRECEDENCE);
beginExpression(JSPrecedence.CALL_PRECEDENCE);
@@ -1835,12 +1836,12 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
}
void visitStatic(HStatic node) {
- compiler.registerStaticUse(node.element);
+ world.registerStaticUse(node.element);
buffer.add(compiler.namer.isolateAccess(node.element));
}
void visitStaticStore(HStaticStore node) {
- compiler.registerStaticUse(node.element);
+ world.registerStaticUse(node.element);
beginExpression(JSPrecedence.ASSIGNMENT_PRECEDENCE);
buffer.add(compiler.namer.isolateAccess(node.element));
buffer.add(' = ');
@@ -2103,7 +2104,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
} else if (element.kind === ElementKind.TYPEDEF) {
compiler.unimplemented("visitIs for typedefs", instruction: node);
}
- compiler.registerIsCheck(type.element);
+ world.registerIsCheck(type.element);
LibraryElement coreLibrary = compiler.coreLibrary;
ClassElement objectClass = compiler.objectClass;
HInstruction input = node.expression;
@@ -2170,7 +2171,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
void visitTypeConversion(HTypeConversion node) {
if (node.checked) {
Element element = node.type.computeType(compiler).element;
- compiler.registerIsCheck(element);
+ world.registerIsCheck(element);
SourceString helper;
String additionalArgument;
bool nativeCheck =
@@ -2212,7 +2213,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
}
}
Element helperElement = compiler.findHelper(helper);
- compiler.registerStaticUse(helperElement);
+ world.registerStaticUse(helperElement);
buffer.add(compiler.namer.isolateAccess(helperElement));
buffer.add('(');
use(node.checkedInput, JSPrecedence.EXPRESSION_PRECEDENCE);

Powered by Google App Engine
This is Rietveld 408576698