Fix extension of method access info collection
Change-Id: I1a0847a33fa9711246ec6218116cafa45d83dee0
diff --git a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
index 1e147e2..ae0133f 100644
--- a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
+++ b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
@@ -93,25 +93,13 @@
.excludeInterfaces()
.visit(appView.appInfo().classes(), clazz -> processClass(clazz, subtypingInfo));
if (!result.isEmpty()) {
- // Mapping from non-hoisted bridge methods to the set of contexts in which they are accessed.
- MethodAccessInfoCollection.IdentityBuilder bridgeMethodAccessInfoCollectionBuilder =
- MethodAccessInfoCollection.identityBuilder();
- result.recordNonReboundMethodAccesses(bridgeMethodAccessInfoCollectionBuilder);
-
BridgeHoistingLens lens = result.buildLens();
appView.rewriteWithLens(lens, executorService, timing);
- // Update method access info collection.
+ // Record the invokes from the newly synthesized bridge methods in the method access info
+ // collection.
MethodAccessInfoCollection.Modifier methodAccessInfoCollectionModifier =
appView.appInfo().getMethodAccessInfoCollection().modifier();
-
- // The bridge hoisting lens does not specify any code rewritings. Therefore references to the
- // bridge methods are left as-is in the code, but they are rewritten to the hoisted bridges
- // during the rewriting of AppInfoWithLiveness. Therefore, this conservatively records that
- // there may be an invoke-virtual instruction that targets each of the removed bridges.
- methodAccessInfoCollectionModifier.addAll(bridgeMethodAccessInfoCollectionBuilder.build());
-
- // Additionally, we record the invokes from the newly synthesized bridge methods.
result.forEachHoistedBridge(
(bridge, bridgeInfo) -> {
if (bridgeInfo.isVirtualBridgeInfo()) {
diff --git a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoistingResult.java b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoistingResult.java
index e1311d5..ce4cc24 100644
--- a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoistingResult.java
+++ b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoistingResult.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProgramClass;
-import com.android.tools.r8.graph.MethodAccessInfoCollection;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.optimize.info.bridge.BridgeInfo;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -61,27 +60,6 @@
bridgeToHoistedBridgeMap.setRepresentative(to, originalRepresentative);
}
- public void recordNonReboundMethodAccesses(
- MethodAccessInfoCollection.IdentityBuilder bridgeMethodAccessInfoCollectionBuilder) {
- MethodAccessInfoCollection methodAccessInfoCollection =
- appView.appInfo().getMethodAccessInfoCollection();
- bridgeToHoistedBridgeMap
- .keySet()
- .forEach(
- from -> {
- methodAccessInfoCollection.forEachSuperInvokeContext(
- from,
- context ->
- bridgeMethodAccessInfoCollectionBuilder.registerInvokeSuperInContext(
- from, context));
- methodAccessInfoCollection.forEachVirtualInvokeContext(
- from,
- context ->
- bridgeMethodAccessInfoCollectionBuilder.registerInvokeVirtualInContext(
- from, context));
- });
- }
-
public BridgeHoistingLens buildLens() {
assert !isEmpty();
return new BridgeHoistingLens(appView, bridgeToHoistedBridgeMap);