| Index: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (revision 23797)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (working copy)
|
| @@ -303,21 +303,6 @@
|
| allocator.visitGraph(graph);
|
| variableNames = allocator.names;
|
| shouldGroupVarDeclarations = allocator.names.numberOfVariables > 1;
|
| -
|
| - // Don't register a return type for lazily initialized variables.
|
| - if (work.element is! FunctionElement) return;
|
| -
|
| - // Register return types to the backend.
|
| - graph.exit.predecessors.forEach((HBasicBlock block) {
|
| - HInstruction last = block.last;
|
| - assert(last is HGoto || last is HReturn || last is HThrow);
|
| - if (last is HReturn) {
|
| - backend.registerReturnType(
|
| - work.element, last.inputs[0].instructionType);
|
| - } else if (last is HGoto) {
|
| - backend.registerReturnType(work.element, HType.NULL);
|
| - }
|
| - });
|
| }
|
|
|
| void handleDelayedVariableDeclarations() {
|
| @@ -1563,8 +1548,6 @@
|
|
|
| void registerMethodInvoke(HInvokeDynamic node) {
|
| Selector selector = getOptimizedSelectorFor(node, node.selector);
|
| - // Register this invocation to collect the types used at all call sites.
|
| - backend.registerDynamicInvocation(node, selector);
|
|
|
| // If we don't know what we're calling or if we are calling a getter,
|
| // we need to register that fact that we may be calling a closure
|
| @@ -1595,7 +1578,6 @@
|
| HType valueType = node.isInterceptedCall
|
| ? node.inputs[2].instructionType
|
| : node.inputs[1].instructionType;
|
| - backend.addedDynamicSetter(selector, valueType);
|
| registerInvoke(node, selector);
|
| }
|
|
|
| @@ -1632,10 +1614,6 @@
|
| }
|
|
|
| visitInvokeStatic(HInvokeStatic node) {
|
| - if (node.typeCode() == HInstruction.INVOKE_STATIC_TYPECODE) {
|
| - // Register this invocation to collect the types used at all call sites.
|
| - backend.registerStaticInvocation(node);
|
| - }
|
| Element element = node.element;
|
| world.registerStaticUse(element);
|
| ClassElement cls = element.getEnclosingClass();
|
| @@ -1674,8 +1652,6 @@
|
| new js.PropertyAccess.field(prototype, methodName);
|
| push(jsPropertyCall(
|
| method, "call", visitArguments(node.inputs, start: 0)), node);
|
| - // Register this invocation to collect the types used at all call sites.
|
| - backend.registerDynamicInvocation(node, node.selector);
|
| }
|
| }
|
|
|
| @@ -1696,16 +1672,8 @@
|
|
|
| visitFieldSet(HFieldSet node) {
|
| Element element = node.element;
|
| + world.registerFieldSetter(element);
|
| String name = _fieldPropertyName(element);
|
| - if (!node.receiver.instructionType.isUnknown()) {
|
| - // Field setters in the generative constructor body are handled in a
|
| - // step "SsaConstructionFieldTypes" in the ssa optimizer.
|
| - if (!work.element.isGenerativeConstructorBody()) {
|
| - world.registerFieldSetter(element);
|
| - backend.registerFieldSetter(
|
| - work.element, element, node.value.instructionType);
|
| - }
|
| - }
|
| use(node.receiver);
|
| js.Expression receiver = pop();
|
| use(node.value);
|
| @@ -2020,7 +1988,6 @@
|
| void visitStatic(HStatic node) {
|
| Element element = node.element;
|
| if (element.isFunction()) {
|
| - backend.registerNonCallStaticUse(node);
|
| world.registerInstantiatedClass(
|
| compiler.functionClass, work.resolutionTree);
|
| push(new js.VariableUse(
|
|
|