Remove redundant origin from IR building
Change-Id: I1448c667ce65fe619e848b0c403707e7965c9798
diff --git a/src/main/java/com/android/tools/r8/graph/CfCode.java b/src/main/java/com/android/tools/r8/graph/CfCode.java
index b4552e4..33b02b2 100644
--- a/src/main/java/com/android/tools/r8/graph/CfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/CfCode.java
@@ -39,7 +39,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.CompareToVisitor;
@@ -584,11 +583,10 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
verifyFramesOrRemove(method, appView, getCodeLens(appView));
return internalBuildPossiblyWithLocals(
- method, method, appView, appView.codeLens(), null, null, origin, null, conversionOptions);
+ method, method, appView, appView.codeLens(), null, null, null, conversionOptions);
}
@Override
@@ -599,7 +597,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
assert valueNumberGenerator != null;
assert callerPosition != null;
@@ -612,7 +609,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges,
MethodConversionOptions.nonConverting());
}
@@ -634,7 +630,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges,
MutableMethodConversionOptions conversionOptions) {
if (!method.keepLocals(appView)) {
@@ -646,7 +641,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges,
conversionOptions);
} else {
@@ -657,7 +651,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges,
conversionOptions);
}
@@ -671,7 +664,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges,
MutableMethodConversionOptions conversionOptions) {
try {
@@ -683,11 +675,10 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges,
conversionOptions);
} catch (InvalidDebugInfoException e) {
- appView.options().warningInvalidDebugInfo(method, origin, e);
+ appView.options().warningInvalidDebugInfo(method, e);
return internalBuild(
Collections.emptyList(),
context,
@@ -696,7 +687,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges,
conversionOptions);
}
@@ -711,7 +701,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges,
MutableMethodConversionOptions conversionOptions) {
CfSourceCode source =
@@ -720,16 +709,15 @@
localVariables,
method,
callerPosition,
- origin,
appView);
IRBuilder builder;
if (valueNumberGenerator == null) {
assert protoChanges == null;
- builder = IRBuilder.create(method, appView, source, origin);
+ builder = IRBuilder.create(method, appView, source);
} else {
builder =
IRBuilder.createForInlining(
- method, appView, codeLens, source, origin, valueNumberGenerator, protoChanges);
+ method, appView, codeLens, source, valueNumberGenerator, protoChanges);
}
return builder.build(context, conversionOptions);
}
diff --git a/src/main/java/com/android/tools/r8/graph/CfCodeDiagnostics.java b/src/main/java/com/android/tools/r8/graph/CfCodeDiagnostics.java
index 8a664ec..1f0f01c 100644
--- a/src/main/java/com/android/tools/r8/graph/CfCodeDiagnostics.java
+++ b/src/main/java/com/android/tools/r8/graph/CfCodeDiagnostics.java
@@ -30,9 +30,9 @@
private final MethodPosition methodPosition;
private final String diagnosticMessage;
- public CfCodeDiagnostics(Origin origin, DexMethod method, String diagnosticMessage) {
- this.origin = origin;
- this.methodPosition = new MethodPosition(method.asMethodReference());
+ public CfCodeDiagnostics(ProgramMethod method, String diagnosticMessage) {
+ this.origin = method.getOrigin();
+ this.methodPosition = new MethodPosition(method.getMethodReference());
this.diagnosticMessage = diagnosticMessage;
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/CfCodeStackMapValidatingException.java b/src/main/java/com/android/tools/r8/graph/CfCodeStackMapValidatingException.java
index 0670aeb..f37bced 100644
--- a/src/main/java/com/android/tools/r8/graph/CfCodeStackMapValidatingException.java
+++ b/src/main/java/com/android/tools/r8/graph/CfCodeStackMapValidatingException.java
@@ -16,7 +16,7 @@
if (appView.enableWholeProgramOptimizations()) {
sb.append(" In later version of R8, the method may be assumed not reachable.");
}
- return new CfCodeDiagnostics(method.getOrigin(), method.getReference(), sb.toString());
+ return new CfCodeDiagnostics(method, sb.toString());
}
public static CfCodeDiagnostics multipleFramesForLabel(ProgramMethod method, AppView<?> appView) {
@@ -24,7 +24,7 @@
if (appView.enableWholeProgramOptimizations()) {
sb.append(" In later version of R8, the method may be assumed not reachable.");
}
- return new CfCodeDiagnostics(method.getOrigin(), method.getReference(), sb.toString());
+ return new CfCodeDiagnostics(method, sb.toString());
}
public static CfCodeDiagnostics noFramesForMethodWithJumps(
@@ -34,7 +34,7 @@
if (appView.enableWholeProgramOptimizations()) {
sb.append(" In later version of R8, the method may be assumed not reachable.");
}
- return new CfCodeDiagnostics(method.getOrigin(), method.getReference(), sb.toString());
+ return new CfCodeDiagnostics(method, sb.toString());
}
public static CfCodeDiagnostics invalidTryCatchRange(
@@ -48,7 +48,7 @@
if (appView.enableWholeProgramOptimizations()) {
sb.append(" In later version of R8, the method may be assumed not reachable.");
}
- return new CfCodeDiagnostics(method.getOrigin(), method.getReference(), sb.toString());
+ return new CfCodeDiagnostics(method, sb.toString());
}
public static CfCodeDiagnostics invalidStackMapForInstruction(
@@ -68,6 +68,6 @@
if (appView.enableWholeProgramOptimizations()) {
sb.append(" In later version of R8, the method may be assumed not reachable.");
}
- return new CfCodeDiagnostics(method.getOrigin(), method.getReference(), sb.toString());
+ return new CfCodeDiagnostics(method, sb.toString());
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/Code.java b/src/main/java/com/android/tools/r8/graph/Code.java
index dfc2117..ee87e8a 100644
--- a/src/main/java/com/android/tools/r8/graph/Code.java
+++ b/src/main/java/com/android/tools/r8/graph/Code.java
@@ -17,21 +17,19 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.lightir.LirCode;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import it.unimi.dsi.fastutil.ints.Int2ReferenceMap;
import java.util.function.Consumer;
public abstract class Code extends CachedHashValueDexItem {
- public final IRCode buildIR(ProgramMethod method, AppView<?> appView, Origin origin) {
- return buildIR(method, appView, origin, MethodConversionOptions.forLirPhase(appView));
+ public final IRCode buildIR(ProgramMethod method, AppView<?> appView) {
+ return buildIR(method, appView, MethodConversionOptions.forLirPhase(appView));
}
public abstract IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions);
public IRCode buildInliningIR(
@@ -41,7 +39,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
throw new Unreachable("Unexpected attempt to build IR graph for inlining from: "
+ getClass().getCanonicalName());
diff --git a/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java b/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
index f43f02e..9b11e7e 100644
--- a/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DefaultInstanceInitializerCode.java
@@ -38,7 +38,6 @@
import com.android.tools.r8.lightir.LirEncodingStrategy;
import com.android.tools.r8.lightir.LirStrategy;
import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.IteratorUtils;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.HashingVisitor;
@@ -167,12 +166,11 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
DefaultInstanceInitializerSourceCode source =
new DefaultInstanceInitializerSourceCode(
method.getReference(), method.getDefinition().isD8R8Synthesized());
- return IRBuilder.create(method, appView, source, origin).build(method, conversionOptions);
+ return IRBuilder.create(method, appView, source).build(method, conversionOptions);
}
@Override
@@ -183,13 +181,12 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
DefaultInstanceInitializerSourceCode source =
new DefaultInstanceInitializerSourceCode(
method.getReference(), method.getDefinition().isD8R8Synthesized(), callerPosition);
return IRBuilder.createForInlining(
- method, appView, codeLens, source, origin, valueNumberGenerator, protoChanges)
+ method, appView, codeLens, source, valueNumberGenerator, protoChanges)
.build(context, MethodConversionOptions.nonConverting());
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexCode.java b/src/main/java/com/android/tools/r8/graph/DexCode.java
index 95d19ee..8232d93 100644
--- a/src/main/java/com/android/tools/r8/graph/DexCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DexCode.java
@@ -39,7 +39,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.lightir.ByteUtils;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.ArrayUtils;
import com.android.tools.r8.utils.DexDebugUtils.PositionInfo;
import com.android.tools.r8.utils.RetracerForCodePrinting;
@@ -531,7 +530,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
DexSourceCode source =
new DexSourceCode(
@@ -539,7 +537,7 @@
method,
null,
appView.dexItemFactory());
- return IRBuilder.create(method, appView, source, origin).build(method, conversionOptions);
+ return IRBuilder.create(method, appView, source).build(method, conversionOptions);
}
@Override
@@ -551,7 +549,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
DexSourceCode source =
new DexSourceCode(
@@ -560,7 +557,7 @@
callerPosition,
appView.dexItemFactory());
return IRBuilder.createForInlining(
- method, appView, codeLens, source, origin, valueNumberGenerator, protoChanges)
+ method, appView, codeLens, source, valueNumberGenerator, protoChanges)
.build(context, MethodConversionOptions.nonConverting());
}
diff --git a/src/main/java/com/android/tools/r8/graph/InvalidCode.java b/src/main/java/com/android/tools/r8/graph/InvalidCode.java
index ff2dc3d..2ce267b 100644
--- a/src/main/java/com/android/tools/r8/graph/InvalidCode.java
+++ b/src/main/java/com/android/tools/r8/graph/InvalidCode.java
@@ -6,7 +6,6 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
public class InvalidCode extends Code {
@@ -28,7 +27,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
throw new Unreachable();
}
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index 0257cfd..2ad9817 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -260,9 +260,8 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
- return asCfCode().buildIR(method, appView, origin, conversionOptions);
+ return asCfCode().buildIR(method, appView, conversionOptions);
}
@Override
@@ -273,7 +272,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
return asCfCode()
.buildInliningIR(
@@ -283,7 +281,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges);
}
diff --git a/src/main/java/com/android/tools/r8/graph/ProgramMethod.java b/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
index a86dbc8..0c85af8 100644
--- a/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/ProgramMethod.java
@@ -17,7 +17,6 @@
import com.android.tools.r8.ir.conversion.MethodProcessor;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.kotlin.KotlinMethodLevelInfo;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import it.unimi.dsi.fastutil.ints.Int2ReferenceMap;
@@ -35,9 +34,7 @@
public IRCode buildIR(AppView<?> appView, MutableMethodConversionOptions conversionOptions) {
DexEncodedMethod method = getDefinition();
- return method.hasCode()
- ? method.getCode().buildIR(this, appView, getOrigin(), conversionOptions)
- : null;
+ return method.hasCode() ? method.getCode().buildIR(this, appView, conversionOptions) : null;
}
public IRCode buildInliningIR(
@@ -45,7 +42,6 @@
AppView<?> appView,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
MethodProcessor methodProcessor) {
Code code = getDefinition().getCode();
GraphLens codeLens = appView.graphLens();
@@ -61,7 +57,6 @@
codeLens,
valueNumberGenerator,
callerPosition,
- origin,
protoChanges);
}
diff --git a/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java b/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
index 7e359ec..63f24c2 100644
--- a/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
+++ b/src/main/java/com/android/tools/r8/graph/ThrowExceptionCode.java
@@ -20,7 +20,6 @@
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.HashingVisitor;
import java.nio.ShortBuffer;
@@ -53,7 +52,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
throw new Unreachable("Should not be called");
}
@@ -66,7 +64,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
throw new Unreachable("Should not be called");
}
diff --git a/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java b/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
index 48fe289..af96367 100644
--- a/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
+++ b/src/main/java/com/android/tools/r8/graph/ThrowNullCode.java
@@ -24,7 +24,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.ir.conversion.SyntheticStraightLineSourceCode;
import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.HashingVisitor;
import com.google.common.collect.ImmutableList;
@@ -70,10 +69,9 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
ThrowNullSourceCode source = new ThrowNullSourceCode(method);
- return IRBuilder.create(method, appView, source, origin).build(method, conversionOptions);
+ return IRBuilder.create(method, appView, source).build(method, conversionOptions);
}
@Override
@@ -84,11 +82,10 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
ThrowNullSourceCode source = new ThrowNullSourceCode(method, callerPosition);
return IRBuilder.createForInlining(
- method, appView, codeLens, source, origin, valueNumberGenerator, protoChanges)
+ method, appView, codeLens, source, valueNumberGenerator, protoChanges)
.build(context, MethodConversionOptions.nonConverting());
}
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/IRCodeProvider.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/IRCodeProvider.java
index 6a35c88..95c4020 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/IRCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/IRCodeProvider.java
@@ -66,7 +66,7 @@
return method
.getDefinition()
.getCode()
- .buildIR(method, appViewForConversion, method.getOrigin(), getConversionOptions.get());
+ .buildIR(method, appViewForConversion, getConversionOptions.get());
}
@Override
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteHorizontalClassMergerCode.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteHorizontalClassMergerCode.java
index 7e37921..7ca989f 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteHorizontalClassMergerCode.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteHorizontalClassMergerCode.java
@@ -17,7 +17,6 @@
import com.android.tools.r8.graph.UseRegistry;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
public abstract class IncompleteHorizontalClassMergerCode extends Code {
@@ -55,7 +54,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
throw new Unreachable();
}
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ClassInitializerMerger.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ClassInitializerMerger.java
index 19efa91..d54026f 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ClassInitializerMerger.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ClassInitializerMerger.java
@@ -35,7 +35,6 @@
import com.android.tools.r8.ir.code.Position.SyntheticPosition;
import com.android.tools.r8.ir.code.Return;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.CfVersionUtils;
import com.android.tools.r8.utils.IterableUtils;
import com.android.tools.r8.utils.ListUtils;
@@ -208,7 +207,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
assert !classInitializers.isEmpty();
@@ -249,7 +247,6 @@
valueNumberGenerator,
blockNumberGenerator,
metadata,
- origin,
conversionOptions);
ListIterator<BasicBlock> blockIterator = code.listIterator();
@@ -275,7 +272,6 @@
appView.codeLens(),
valueNumberGenerator,
preamblePosition,
- classInitializer.getOrigin(),
RewrittenPrototypeDescription.none());
classInitializer.getDefinition().setObsolete();
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ConstructorEntryPointSynthesizedCode.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ConstructorEntryPointSynthesizedCode.java
index 75b76b6..fda1515 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ConstructorEntryPointSynthesizedCode.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/code/ConstructorEntryPointSynthesizedCode.java
@@ -27,7 +27,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.ir.conversion.SourceCode;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import it.unimi.dsi.fastutil.ints.Int2ReferenceMap;
import it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap;
@@ -93,7 +92,6 @@
public final IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
SyntheticPosition position =
SyntheticPosition.builder()
@@ -104,7 +102,7 @@
SourceCode sourceCode =
new ConstructorEntryPoint(
typeConstructors, newConstructor, classIdField, extraNulls, position);
- return IRBuilder.create(method, appView, sourceCode, origin).build(method, conversionOptions);
+ return IRBuilder.create(method, appView, sourceCode).build(method, conversionOptions);
}
@Override
@@ -115,13 +113,12 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
SourceCode sourceCode =
new ConstructorEntryPoint(
typeConstructors, newConstructor, classIdField, extraNulls, callerPosition);
return IRBuilder.createForInlining(
- method, appView, codeLens, sourceCode, origin, valueNumberGenerator, protoChanges)
+ method, appView, codeLens, sourceCode, valueNumberGenerator, protoChanges)
.build(context, MethodConversionOptions.nonConverting());
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRCode.java b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
index 453d999..d5e82ff 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRCode.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
@@ -30,7 +30,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.ir.optimize.AffectedValues;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.DequeUtils;
import com.android.tools.r8.utils.InternalOptions;
@@ -138,8 +137,6 @@
private final IRMetadata metadata;
private final InternalOptions options;
- public final Origin origin;
-
public IRCode(
InternalOptions options,
ProgramMethod method,
@@ -148,7 +145,6 @@
NumberGenerator valueNumberGenerator,
NumberGenerator basicBlockNumberGenerator,
IRMetadata metadata,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
assert metadata != null;
assert options != null;
@@ -162,7 +158,6 @@
this.valueNumberGenerator = valueNumberGenerator;
this.basicBlockNumberGenerator = basicBlockNumberGenerator;
this.metadata = metadata;
- this.origin = origin;
}
public IRMetadata metadata() {
diff --git a/src/main/java/com/android/tools/r8/ir/code/Phi.java b/src/main/java/com/android/tools/r8/ir/code/Phi.java
index 6197751..341ca0b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Phi.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Phi.java
@@ -12,15 +12,14 @@
import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DebugLocalInfo;
-import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.analysis.type.Nullability;
import com.android.tools.r8.ir.analysis.type.TypeElement;
import com.android.tools.r8.ir.code.BasicBlock.EdgeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
import com.android.tools.r8.ir.conversion.TypeConstraintResolver;
import com.android.tools.r8.ir.optimize.AffectedValues;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.DequeUtils;
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.Reporter;
@@ -102,11 +101,11 @@
@Override
public void constrainType(
- ValueTypeConstraint constraint, DexMethod method, Origin origin, Reporter reporter) {
+ ValueTypeConstraint constraint, ProgramMethod method, Reporter reporter) {
if (readType == RegisterReadType.DEBUG) {
abortOnInvalidDebugInfo(constraint);
}
- super.constrainType(constraint, method, origin, reporter);
+ super.constrainType(constraint, method, reporter);
}
private void abortOnInvalidDebugInfo(ValueTypeConstraint constraint) {
diff --git a/src/main/java/com/android/tools/r8/ir/code/Value.java b/src/main/java/com/android/tools/r8/ir/code/Value.java
index f7d98af..fb150fb 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Value.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Value.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DebugLocalInfo;
import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.analysis.type.ClassTypeElement;
@@ -31,12 +30,12 @@
import com.android.tools.r8.ir.analysis.value.UnknownValue;
import com.android.tools.r8.ir.optimize.AffectedValues;
import com.android.tools.r8.ir.regalloc.LiveIntervals;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.position.MethodPosition;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.IterableUtils;
import com.android.tools.r8.utils.LongInterval;
+import com.android.tools.r8.utils.ObjectUtils;
import com.android.tools.r8.utils.Reporter;
import com.android.tools.r8.utils.StringDiagnostic;
import com.google.common.base.Predicates;
@@ -53,9 +52,8 @@
public class Value implements Comparable<Value> {
- @SuppressWarnings("ReferenceEquality")
public void constrainType(
- ValueTypeConstraint constraint, DexMethod method, Origin origin, Reporter reporter) {
+ ValueTypeConstraint constraint, ProgramMethod method, Reporter reporter) {
TypeElement constrainedType = constrainedType(constraint);
if (constrainedType == null) {
throw reporter.fatalError(
@@ -66,9 +64,9 @@
+ this
+ " by constraint: "
+ constraint,
- origin,
- new MethodPosition(method.asMethodReference())));
- } else if (constrainedType != type) {
+ method.getOrigin(),
+ new MethodPosition(method.getMethodReference())));
+ } else if (ObjectUtils.notIdentical(constrainedType, type)) {
setType(constrainedType);
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java b/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
index de8a584..48241f6 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
@@ -40,7 +40,6 @@
import com.android.tools.r8.ir.conversion.CfState.Slot;
import com.android.tools.r8.ir.conversion.CfState.Snapshot;
import com.android.tools.r8.ir.conversion.IRBuilder.BlockInfo;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.InternalOutputMode;
import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap;
import it.unimi.dsi.fastutil.ints.Int2ReferenceMap;
@@ -190,7 +189,6 @@
private final List<CfCode.LocalVariableInfo> localVariables;
private final CfCode code;
private final ProgramMethod method;
- private final Origin origin;
private final AppView<?> appView;
private final Reference2IntMap<CfLabel> labelOffsets = new Reference2IntOpenHashMap<>();
@@ -207,15 +205,13 @@
public CfSourceCode(
CfCode code,
- List<CfCode.LocalVariableInfo> localVariables,
+ List<LocalVariableInfo> localVariables,
ProgramMethod method,
Position callerPosition,
- Origin origin,
AppView<?> appView) {
this.code = code;
this.localVariables = localVariables;
this.method = method;
- this.origin = origin;
this.appView = appView;
int cfPositionCount = 0;
for (int i = 0; i < code.getInstructions().size(); i++) {
@@ -227,7 +223,7 @@
++cfPositionCount;
}
}
- this.state = new CfState(origin);
+ this.state = new CfState(method);
canonicalPositions =
new CanonicalPositions(
callerPosition,
@@ -247,14 +243,6 @@
return method.getDefinition();
}
- public Origin getOrigin() {
- return origin;
- }
-
- public DexType getOriginalHolder() {
- return code.getOriginalHolder();
- }
-
@Override
public int instructionCount() {
return code.getInstructions().size();
@@ -573,7 +561,7 @@
private void recordStateForTarget(int target, Snapshot snapshot) {
Snapshot existing = incomingState.get(target);
- Snapshot merged = CfState.merge(existing, snapshot, origin);
+ Snapshot merged = CfState.merge(existing, snapshot, method);
if (merged != existing) {
incomingState.put(target, merged);
}
@@ -689,8 +677,7 @@
.reporter
.warning(
new CfCodeDiagnostics(
- origin,
- method.getReference(),
+ method,
"Could not find stack map for block at offset "
+ blockOffset
+ ". This is most likely due to invalid"
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfState.java b/src/main/java/com/android/tools/r8/ir/conversion/CfState.java
index 353faac..d7d39f8 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfState.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfState.java
@@ -5,9 +5,9 @@
import com.android.tools.r8.errors.CompilationError;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.ValueType;
-import com.android.tools.r8.origin.Origin;
public class CfState {
@@ -74,12 +74,12 @@
}
}
- private final Origin origin;
+ private final ProgramMethod method;
private Snapshot current;
private Position position;
- public CfState(Origin origin) {
- this.origin = origin;
+ public CfState(ProgramMethod method) {
+ this.method = method;
}
private static final int MAX_UPDATES = 4;
@@ -110,7 +110,7 @@
if (current == null) {
current = snapshot == null ? new BaseSnapshot() : snapshot;
} else {
- current = merge(current, snapshot, origin);
+ current = merge(current, snapshot, method);
}
}
@@ -118,22 +118,22 @@
return current;
}
- public static Snapshot merge(Snapshot current, Snapshot update, Origin origin) {
+ public static Snapshot merge(Snapshot current, Snapshot update, ProgramMethod method) {
assert update != null;
if (current == null) {
return update;
}
- return merge(current.asBase(), update.asBase(), origin);
+ return merge(current.asBase(), update.asBase(), method);
}
- private static Snapshot merge(BaseSnapshot current, BaseSnapshot update, Origin origin) {
+ private static Snapshot merge(BaseSnapshot current, BaseSnapshot update, ProgramMethod method) {
if (current.stack.length != update.stack.length) {
throw new CompilationError(
"Different stack heights at jump target: "
+ current.stack.length
+ " != "
+ update.stack.length,
- origin);
+ method.getOrigin());
}
// At this point, JarState checks if `current` has special "NULL" or "BYTE/BOOL" types
// that `update` does not have, and if so it computes a refinement.
@@ -149,7 +149,7 @@
+ current.stack[i]
+ " and "
+ update.stack[i],
- origin);
+ method.getOrigin());
}
}
// We could check that locals are compatible, but that doesn't make sense since locals can be
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
index 9cb7612..994ef53 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
@@ -121,7 +121,6 @@
import com.android.tools.r8.ir.code.Xor;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.Pair;
import com.google.common.collect.Sets;
import it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap;
@@ -405,7 +404,6 @@
private ProgramMethod context;
public final AppView<?> appView;
private final GraphLens codeLens;
- private final Origin origin;
private final RewrittenPrototypeDescription prototypeChanges;
private Value receiverValue;
private List<Value> argumentValues;
@@ -437,15 +435,13 @@
// then the IR does not necessarily contain a const-string instruction).
private final IRMetadata metadata = new IRMetadata();
- public static IRBuilder create(
- ProgramMethod method, AppView<?> appView, SourceCode source, Origin origin) {
+ public static IRBuilder create(ProgramMethod method, AppView<?> appView, SourceCode source) {
GraphLens codeLens = method.getDefinition().getCode().getCodeLens(appView);
return new IRBuilder(
method,
appView,
codeLens,
source,
- origin,
lookupPrototypeChanges(appView, method, codeLens),
new NumberGenerator());
}
@@ -455,11 +451,9 @@
AppView<?> appView,
GraphLens codeLens,
SourceCode source,
- Origin origin,
NumberGenerator valueNumberGenerator,
RewrittenPrototypeDescription protoChanges) {
- return new IRBuilder(
- method, appView, codeLens, source, origin, protoChanges, valueNumberGenerator);
+ return new IRBuilder(method, appView, codeLens, source, protoChanges, valueNumberGenerator);
}
public static RewrittenPrototypeDescription lookupPrototypeChanges(
@@ -474,7 +468,6 @@
AppView<?> appView,
GraphLens codeLens,
SourceCode source,
- Origin origin,
RewrittenPrototypeDescription prototypeChanges,
NumberGenerator valueNumberGenerator) {
assert source != null;
@@ -482,7 +475,6 @@
this.method = method;
this.appView = appView;
this.source = source;
- this.origin = origin;
this.codeLens = codeLens;
this.prototypeChanges = prototypeChanges;
this.valueNumberGenerator = valueNumberGenerator;
@@ -723,7 +715,6 @@
valueNumberGenerator,
basicBlockNumberGenerator,
metadata,
- origin,
conversionOptions);
// Verify critical edges are split so we have a place to insert phi moves if necessary.
@@ -779,7 +770,7 @@
}
public void constrainType(Value value, ValueTypeConstraint constraint) {
- value.constrainType(constraint, method.getReference(), origin, appView.options().reporter);
+ value.constrainType(constraint, method, appView.reporter());
}
private void addImpreciseInstruction(ImpreciseMemberTypeInstruction instruction) {
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
index 419205f..f4bc5e2 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
@@ -142,7 +142,6 @@
rewrittenLirCode.buildIR(
method,
appView,
- method.getOrigin(),
MethodConversionOptions.forLirPhase(appView).disableStringSwitchConversion());
AffectedValues affectedValues = code.removeUnreachableBlocks();
affectedValues.narrowingWithAssumeRemoval(appView, code);
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
index 925f84c..edd3db2 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
@@ -144,16 +144,15 @@
ArrayList<Value> stillImprecise = constrainValues(true, remainingImpreciseValues);
if (!stillImprecise.isEmpty()) {
throw appView
- .options()
- .reporter
+ .reporter()
.fatalError(
new StringDiagnostic(
"Cannot determine precise type for value: "
+ stillImprecise.get(0)
+ ", its imprecise type is: "
+ stillImprecise.get(0).getType(),
- code.origin,
- new MethodPosition(code.method().getReference().asMethodReference())));
+ code.context().getOrigin(),
+ new MethodPosition(code.context().getMethodReference())));
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordFieldValuesRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordFieldValuesRewriter.java
index 40b217e..71e0780 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordFieldValuesRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordFieldValuesRewriter.java
@@ -69,7 +69,6 @@
.buildIR(
programMethod,
appView,
- programMethod.getOrigin(),
MethodConversionOptions.forLirPhase(appView));
boolean done = false;
ListIterator<BasicBlock> blockIterator = irCode.listIterator();
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ServiceLoaderRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/ServiceLoaderRewriter.java
index e39ebf6..9e7e988 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ServiceLoaderRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ServiceLoaderRewriter.java
@@ -26,7 +26,6 @@
import com.android.tools.r8.ir.conversion.MethodProcessor;
import com.android.tools.r8.ir.conversion.PostMethodProcessor;
import com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.BooleanBox;
import com.android.tools.r8.utils.ListUtils;
@@ -114,7 +113,7 @@
// Check that the first argument is a const class.
Value argument = serviceLoaderLoad.inValues().get(0).getAliasedValue();
if (argument.isPhi() || !argument.definition.isConstClass()) {
- report(code.origin, null, "The service loader type could not be determined");
+ report(code.context(), null, "The service loader type could not be determined");
continue;
}
@@ -122,7 +121,7 @@
if (invokedMethod != serviceLoaderMethods.loadWithClassLoader) {
report(
- code.origin,
+ code.context(),
constClass.getType(),
"Inlining is only support for `java.util.ServiceLoader.load(java.lang.Class,"
+ " java.lang.ClassLoader)`");
@@ -134,7 +133,7 @@
+ " java.lang.ServiceLoader.iterator()`";
Value serviceLoaderLoadOut = serviceLoaderLoad.outValue();
if (serviceLoaderLoadOut.numberOfAllUsers() != 1 || serviceLoaderLoadOut.hasPhiUsers()) {
- report(code.origin, constClass.getType(), invalidUserMessage);
+ report(code.context(), constClass.getType(), invalidUserMessage);
continue;
}
@@ -142,13 +141,14 @@
if (!serviceLoaderLoadOut.singleUniqueUser().isInvokeVirtual()
|| serviceLoaderLoadOut.singleUniqueUser().asInvokeVirtual().getInvokedMethod()
!= serviceLoaderMethods.iterator) {
- report(code.origin, constClass.getType(), invalidUserMessage + ", but found other usages");
+ report(
+ code.context(), constClass.getType(), invalidUserMessage + ", but found other usages");
continue;
}
// Check that the service is not kept.
if (appView.appInfo().isPinnedWithDefinitionLookup(constClass.getValue())) {
- report(code.origin, constClass.getType(), "The service loader type is kept");
+ report(code.context(), constClass.getType(), "The service loader type is kept");
continue;
}
@@ -162,7 +162,7 @@
// Check that we are not service loading anything from a feature into base.
if (appServices.hasServiceImplementationsInFeature(appView, constClass.getValue())) {
report(
- code.origin,
+ code.context(),
constClass.getType(),
"The service loader type has implementations in a feature split");
continue;
@@ -172,7 +172,7 @@
// that we are instantiating or NULL.
if (serviceLoaderLoad.inValues().get(1).isPhi()) {
report(
- code.origin,
+ code.context(),
constClass.getType(),
"The java.lang.ClassLoader argument must be defined locally as null or "
+ constClass.getType()
@@ -195,7 +195,7 @@
== constClass.getValue());
if (!isGetClassLoaderOnConstClassOrNull) {
report(
- code.origin,
+ code.context(),
constClass.getType(),
"The java.lang.ClassLoader argument must be defined locally as null or "
+ constClass.getType()
@@ -210,7 +210,7 @@
DexClass serviceImplementation = appView.definitionFor(serviceImpl);
if (serviceImplementation == null) {
report(
- code.origin,
+ code.context(),
constClass.getType(),
"Unable to find definition for service implementation " + serviceImpl.getTypeName());
seenNull = true;
@@ -247,11 +247,11 @@
postMethodProcessorBuilder.addAll(synthesizedServiceLoadMethods, appView.graphLens());
}
- private void report(Origin origin, DexType serviceLoaderType, String message) {
+ private void report(ProgramMethod method, DexType serviceLoaderType, String message) {
if (reporter != null) {
reporter.info(
new ServiceLoaderRewriterDiagnostic(
- origin,
+ method.getOrigin(),
"Could not inline ServiceLoader.load"
+ (serviceLoaderType == null
? ""
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/code/CheckNotZeroCode.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/code/CheckNotZeroCode.java
index b17f4b6..5c37f51 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/code/CheckNotZeroCode.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/code/CheckNotZeroCode.java
@@ -22,7 +22,6 @@
import com.android.tools.r8.ir.code.Return;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.ir.optimize.enums.EnumUnboxerImpl;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.IteratorUtils;
import com.android.tools.r8.utils.RetracerForCodePrinting;
@@ -48,7 +47,6 @@
public IRCode buildIR(
ProgramMethod checkNotZeroMethod,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
// Build IR from the checkNotNull() method.
Position callerPosition =
@@ -69,7 +67,6 @@
appView.graphLens(),
valueNumberGenerator,
callerPosition,
- checkNotZeroMethod.getOrigin(),
appView
.graphLens()
.lookupPrototypeChangesForMethodDefinition(checkNotNullMethod.getReference()));
@@ -112,7 +109,6 @@
code.valueNumberGenerator,
code.basicBlockNumberGenerator,
code.metadata(),
- checkNotZeroMethod.getOrigin(),
conversionOptions);
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/inliner/InliningIRProvider.java b/src/main/java/com/android/tools/r8/ir/optimize/inliner/InliningIRProvider.java
index c62a014..e63c416 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/inliner/InliningIRProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/inliner/InliningIRProvider.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.conversion.LensCodeRewriter;
import com.android.tools.r8.ir.conversion.MethodProcessor;
-import com.android.tools.r8.origin.Origin;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -82,14 +81,12 @@
if (cached != null) {
return cached;
}
- Origin origin = method.getOrigin();
IRCode code =
method.buildInliningIR(
context,
appView,
valueNumberGenerator,
Position.getPositionForInlining(invoke, context),
- origin,
methodProcessor);
if (lensCodeRewriter != null && methodProcessor.shouldApplyCodeRewritings(method)) {
lensCodeRewriter.rewrite(code, method, methodProcessor);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
index c672ed4..20f7598 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
@@ -71,7 +71,6 @@
import com.android.tools.r8.ir.optimize.InliningConstraints;
import com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed;
import com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.InternalOptions.OutlineOptions;
@@ -1855,10 +1854,9 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
OutlineSourceCode source = new OutlineSourceCode(outline, method.getReference());
- return IRBuilder.create(method, appView, source, origin).build(method, conversionOptions);
+ return IRBuilder.create(method, appView, source).build(method, conversionOptions);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/typechecks/CheckCastAndInstanceOfMethodSpecialization.java b/src/main/java/com/android/tools/r8/ir/optimize/typechecks/CheckCastAndInstanceOfMethodSpecialization.java
index a6b6c18..7c5240b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/typechecks/CheckCastAndInstanceOfMethodSpecialization.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/typechecks/CheckCastAndInstanceOfMethodSpecialization.java
@@ -140,8 +140,7 @@
method.getHolderType(), abstractParentReturnValue.isTrue()),
appView);
// Rebuild inlining constraints.
- IRCode code =
- parentMethodDefinition.getCode().buildIR(parentMethod, appView, parentMethod.getOrigin());
+ IRCode code = parentMethodDefinition.getCode().buildIR(parentMethod, appView);
converter.markProcessed(code, feedback);
// Fixup method optimization info (the method no longer returns a constant).
feedback.fixupUnusedArguments(parentMethod, unusedArguments -> unusedArguments.clear(0));
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
index 9307108..2acd209 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
@@ -621,9 +621,9 @@
if (intervals == null) {
throw new CompilationError(
"Unexpected attempt to get register for a value without a register in method `"
- + code.method().getReference().toSourceString()
+ + code.context().toSourceString()
+ "`.",
- code.origin);
+ code.context().getOrigin());
}
if (intervals.hasSplits()) {
intervals = intervals.getSplitCovering(instructionNumber);
diff --git a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
index 1bd59ff..46e73aa 100644
--- a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
+++ b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
@@ -352,7 +352,6 @@
strategy.getValueNumberGenerator(),
basicBlockNumberGenerator,
code.getMetadataForIR(),
- method.getOrigin(),
conversionOptions);
}
diff --git a/src/main/java/com/android/tools/r8/lightir/LirCode.java b/src/main/java/com/android/tools/r8/lightir/LirCode.java
index 01e1195..a571e49 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirCode.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirCode.java
@@ -34,7 +34,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.MutableMethodConversionOptions;
import com.android.tools.r8.lightir.LirConstant.LirConstantStructuralAcceptor;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.ArrayUtils;
import com.android.tools.r8.utils.ComparatorUtils;
import com.android.tools.r8.utils.FastMapUtils;
@@ -545,7 +544,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
RewrittenPrototypeDescription protoChanges =
appView.graphLens().lookupPrototypeChangesForMethodDefinition(method.getReference());
@@ -561,7 +559,6 @@
GraphLens codeLens,
NumberGenerator valueNumberGenerator,
Position callerPosition,
- Origin origin,
RewrittenPrototypeDescription protoChanges) {
assert valueNumberGenerator != null;
assert callerPosition != null;
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 009ba19..afc71ff 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1399,14 +1399,14 @@
}
}
- public void warningInvalidDebugInfo(
- ProgramMethod method, Origin origin, InvalidDebugInfoException e) {
+ public void warningInvalidDebugInfo(ProgramMethod method, InvalidDebugInfoException e) {
if (invalidDebugInfoFatal) {
throw new CompilationError("Fatal warning: Invalid debug info", e);
}
synchronized (warningInvalidDebugInfo) {
- warningInvalidDebugInfo.computeIfAbsent(
- origin, k -> new ArrayList<>()).add(new Pair<>(method, e.getMessage()));
+ warningInvalidDebugInfo
+ .computeIfAbsent(method.getOrigin(), k -> new ArrayList<>())
+ .add(new Pair<>(method, e.getMessage()));
}
}
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/IncompleteVerticalClassMergerBridgeCode.java b/src/main/java/com/android/tools/r8/verticalclassmerging/IncompleteVerticalClassMergerBridgeCode.java
index f13c3c6..ffe892f 100644
--- a/src/main/java/com/android/tools/r8/verticalclassmerging/IncompleteVerticalClassMergerBridgeCode.java
+++ b/src/main/java/com/android/tools/r8/verticalclassmerging/IncompleteVerticalClassMergerBridgeCode.java
@@ -28,7 +28,6 @@
import com.android.tools.r8.lightir.LirCode;
import com.android.tools.r8.lightir.LirEncodingStrategy;
import com.android.tools.r8.lightir.LirStrategy;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import java.util.ArrayList;
@@ -148,7 +147,6 @@
public IRCode buildIR(
ProgramMethod method,
AppView<?> appView,
- Origin origin,
MutableMethodConversionOptions conversionOptions) {
throw new Unreachable();
}
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/ConstantRemovalTest.java b/src/test/java/com/android/tools/r8/ir/optimize/ConstantRemovalTest.java
index 93ad7a7..eff9d7a 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/ConstantRemovalTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/ConstantRemovalTest.java
@@ -27,7 +27,6 @@
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator;
import com.android.tools.r8.ir.regalloc.LiveIntervals;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.synthesis.SyntheticItems.GlobalSyntheticsStrategy;
import com.android.tools.r8.utils.InternalOptions;
import java.util.LinkedList;
@@ -166,7 +165,6 @@
new NumberGenerator(),
basicBlockNumberGenerator,
IRMetadata.unknown(),
- Origin.unknown(),
MethodConversionOptions.nonConverting());
PeepholeOptimizer.optimize(appView, code, new MockLinearScanRegisterAllocator(appView, code));
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
index 18c5121..997f0e0 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
@@ -30,7 +30,6 @@
import com.android.tools.r8.ir.code.Value;
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.passes.TrivialGotosCollapser;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.Timing;
@@ -107,7 +106,6 @@
new NumberGenerator(),
basicBlockNumberGenerator,
IRMetadata.unknown(),
- Origin.unknown(),
MethodConversionOptions.forD8(appView));
new TrivialGotosCollapser(appView).run(code, Timing.empty());
assertTrue(code.entryBlock().isTrivialGoto());
@@ -196,7 +194,6 @@
new NumberGenerator(),
basicBlockNumberGenerator,
IRMetadata.unknown(),
- Origin.unknown(),
MethodConversionOptions.forD8(appView));
new TrivialGotosCollapser(appView).run(code, Timing.empty());
assertTrue(block0.getInstructions().get(1).isIf());