| Index: pkg/compiler/lib/src/ssa/optimize.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
|
| index 980fb4faa746909e345ebfc653797fa6d8bfddca..40c3c3dee8770cf9648bf75fccc785c6e1c590d5 100644
|
| --- a/pkg/compiler/lib/src/ssa/optimize.dart
|
| +++ b/pkg/compiler/lib/src/ssa/optimize.dart
|
| @@ -1165,14 +1165,14 @@ class SsaInstructionSimplifier extends HBaseVisitor
|
| // Match:
|
| //
|
| // setRuntimeTypeInfo(
|
| - // HForeignNew(ClassElement),
|
| + // HCreate(ClassElement),
|
| // HTypeInfoExpression(t_0, t_1, t_2, ...));
|
| //
|
| // The `t_i` are the values of the type parameters of ClassElement.
|
| if (object is HInvokeStatic) {
|
| if (object.element == helpers.setRuntimeTypeInfo) {
|
| HInstruction allocation = object.inputs[0];
|
| - if (allocation is HForeignNew) {
|
| + if (allocation is HCreate) {
|
| HInstruction typeInfo = object.inputs[1];
|
| if (typeInfo is HTypeInfoExpression) {
|
| return finishSubstituted(
|
| @@ -1188,7 +1188,7 @@ class SsaInstructionSimplifier extends HBaseVisitor
|
| // Non-generic type (which extends or mixes in a generic type, for example
|
| // CodeUnits extends UnmodifiableListBase<int>).
|
| // Also used for raw-type when the type parameters are elided.
|
| - if (object is HForeignNew) {
|
| + if (object is HCreate) {
|
| return finishSubstituted(
|
| object.element,
|
| // If there are type arguments, all type arguments are 'dynamic'.
|
| @@ -2198,7 +2198,7 @@ class SsaLoadElimination extends HBaseVisitor implements OptimizationPhase {
|
| instruction.element, receiver, instruction.inputs.last);
|
| }
|
|
|
| - void visitForeignNew(HForeignNew instruction) {
|
| + void visitCreate(HCreate instruction) {
|
| memorySet.registerAllocation(instruction);
|
| if (shouldTrackInitialValues(instruction)) {
|
| int argumentIndex = 0;
|
| @@ -2213,7 +2213,7 @@ class SsaLoadElimination extends HBaseVisitor implements OptimizationPhase {
|
| memorySet.killAffectedBy(instruction);
|
| }
|
|
|
| - bool shouldTrackInitialValues(HForeignNew instruction) {
|
| + bool shouldTrackInitialValues(HCreate instruction) {
|
| // Don't track initial field values of an allocation that are
|
| // unprofitable. We search the chain of single uses in allocations for a
|
| // limited depth.
|
| @@ -2230,7 +2230,7 @@ class SsaLoadElimination extends HBaseVisitor implements OptimizationPhase {
|
| HInstruction use = instruction.usedBy.single;
|
| // When the only use is an allocation, the allocation becomes the only
|
| // heap alias for the current instruction.
|
| - if (use is HForeignNew) return interestingUse(use, heapDepth + 1);
|
| + if (use is HCreate) return interestingUse(use, heapDepth + 1);
|
| if (use is HLiteralList) return interestingUse(use, heapDepth + 1);
|
| if (use is HInvokeStatic) {
|
| // Assume the argument escapes. All we do with our initial allocation is
|
| @@ -2358,7 +2358,7 @@ class MemorySet {
|
| }
|
|
|
| bool isConcrete(HInstruction instruction) {
|
| - return instruction is HForeignNew ||
|
| + return instruction is HCreate ||
|
| instruction is HConstant ||
|
| instruction is HLiteralList;
|
| }
|
|
|