/external/r8/src/main/java/com/android/tools/r8/graph/ |
D | DexClass.java | 18 private static final DexEncodedMethod[] NO_METHODS = {}; 29 public DexEncodedMethod[] directMethods; 30 public DexEncodedMethod[] virtualMethods; 36 DexEncodedMethod[] directMethods, DexEncodedMethod[] virtualMethods, in DexClass() 70 public DexEncodedMethod[] directMethods() { in directMethods() 74 public DexEncodedMethod[] virtualMethods() { in virtualMethods() 78 public void forEachMethod(Consumer<DexEncodedMethod> consumer) { in forEachMethod() 79 for (DexEncodedMethod method : directMethods()) { in forEachMethod() 82 for (DexEncodedMethod method : virtualMethods()) { in forEachMethod() 87 public DexEncodedMethod[] allMethodsSorted() { in allMethodsSorted() [all …]
|
D | AppInfo.java | 72 public DexEncodedMethod definitionFor(DexMethod method) { in definitionFor() 73 return (DexEncodedMethod) getDefinitions(method.getHolder()).get(method); in definitionFor() 91 private DexEncodedMethod lookupDirectStaticOrConstructorTarget(DexMethod method) { in lookupDirectStaticOrConstructorTarget() 104 public DexEncodedMethod lookupStaticTarget(DexMethod method) { in lookupStaticTarget() 105 DexEncodedMethod target = lookupDirectStaticOrConstructorTarget(method); in lookupStaticTarget() 117 public DexEncodedMethod lookupDirectTarget(DexMethod method) { in lookupDirectTarget() 118 DexEncodedMethod target = lookupDirectStaticOrConstructorTarget(method); in lookupDirectTarget() 128 public DexEncodedMethod lookupVirtualTarget(DexType type, DexMethod method) { in lookupVirtualTarget() 130 DexEncodedMethod result in lookupVirtualTarget() 137 DexEncodedMethod virtualTarget = dexClass.findVirtualTarget(dexMethod); in lookupVirtualTarget() [all …]
|
D | AppInfoWithSubtyping.java | 101 public Set<DexEncodedMethod> lookupVirtualTargets(DexMethod method) { in lookupVirtualTargets() 102 Set<DexEncodedMethod> result = new HashSet<>(); in lookupVirtualTargets() 109 DexEncodedMethod topMethod = lookupVirtualTarget(method.holder, method); in lookupVirtualTargets() 126 DexEncodedMethod t = clazz.findVirtualTarget(method); in lookupVirtualTargets() 139 public DexEncodedMethod lookupSingleVirtualTarget(DexMethod method) { in lookupSingleVirtualTarget() 148 DexEncodedMethod result = null; in lookupSingleVirtualTarget() 150 DexEncodedMethod topMethod = lookupVirtualTarget(method.holder, method); in lookupSingleVirtualTarget() 165 DexEncodedMethod t = clazz.findVirtualTarget(method); in lookupSingleVirtualTarget() 186 public Set<DexEncodedMethod> lookupInterfaceTargets(DexMethod method) { in lookupInterfaceTargets() 187 Set<DexEncodedMethod> result = new HashSet<>(); in lookupInterfaceTargets() [all …]
|
D | GraphLense.java | 60 public abstract DexType lookupType(DexType type, DexEncodedMethod context); in lookupType() 62 public abstract DexMethod lookupMethod(DexMethod method, DexEncodedMethod context); in lookupMethod() 64 public abstract DexField lookupField(DexField field, DexEncodedMethod context); in lookupField() 79 public DexType lookupType(DexType type, DexEncodedMethod context) { in lookupType() 84 public DexMethod lookupMethod(DexMethod method, DexEncodedMethod context) { in lookupMethod() 89 public DexField lookupField(DexField field, DexEncodedMethod context) { in lookupField() 119 public DexType lookupType(DexType type, DexEncodedMethod context) { in lookupType() 139 public DexMethod lookupMethod(DexMethod method, DexEncodedMethod context) { in lookupMethod() 145 public DexField lookupField(DexField field, DexEncodedMethod context) { in lookupField()
|
D | DexEncodedMethod.java | 6 import static com.android.tools.r8.graph.DexEncodedMethod.CompilationState.PROCESSED_INLINING_CANDI… 7 import static com.android.tools.r8.graph.DexEncodedMethod.CompilationState.PROCESSED_INLINING_CANDI… 8 import static com.android.tools.r8.graph.DexEncodedMethod.CompilationState.PROCESSED_INLINING_CANDI… 9 import static com.android.tools.r8.graph.DexEncodedMethod.CompilationState.PROCESSED_NOT_INLINING_C… 39 public class DexEncodedMethod extends KeyedDexItem<DexMethod> { class 54 public static final DexEncodedMethod[] EMPTY_ARRAY = new DexEncodedMethod[]{}; 55 public static final DexEncodedMethod SENTINEL = 56 new DexEncodedMethod(null, null, null, null, null); 66 public DexEncodedMethod(DexMethod method, DexAccessFlags accessFlags, in DexEncodedMethod() method in DexEncodedMethod 85 public boolean isInliningCandidate(DexEncodedMethod container, boolean alwaysInline) { in isInliningCandidate() [all …]
|
D | DexMethod.java | 10 public class DexMethod extends Descriptor<DexEncodedMethod, DexMethod> 18 private DexEncodedMethod singleTargetCache; 110 public boolean match(DexEncodedMethod entry) { in match() 145 synchronized public void setSingleVirtualMethodCache(DexEncodedMethod method) { in setSingleVirtualMethodCache() 146 singleTargetCache = method == null ? DexEncodedMethod.SENTINEL : method; in setSingleVirtualMethodCache() 153 synchronized public DexEncodedMethod getSingleVirtualMethodCache() { in getSingleVirtualMethodCache() 155 return singleTargetCache == DexEncodedMethod.SENTINEL ? null : singleTargetCache; in getSingleVirtualMethodCache()
|
/external/r8/src/main/java/com/android/tools/r8/ir/desugar/ |
D | ClassProcessor.java | 10 import com.android.tools.r8.graph.DexEncodedMethod; 32 private final Map<DexEncodedMethod, DexEncodedMethod> createdMethods = new IdentityHashMap<>(); 40 final Set<DexEncodedMethod> getForwardMethods() { in getForwardMethods() 77 List<DexEncodedMethod> methodsToImplement = collectMethodsToImplement(clazz); in process() 83 DexEncodedMethod[] existing = clazz.virtualMethods; in process() 84 clazz.virtualMethods = new DexEncodedMethod[existing.length + methodsToImplement.size()]; in process() 88 DexEncodedMethod method = methodsToImplement.get(i); in process() 90 DexEncodedMethod newMethod = addForwardingMethod(method, clazz); in process() 96 private DexEncodedMethod addForwardingMethod(DexEncodedMethod defaultMethod, DexClass clazz) { in addForwardingMethod() 103 return new DexEncodedMethod(newMethod, newFlags, in addForwardingMethod() [all …]
|
D | DefaultMethodsHelper.java | 7 import com.android.tools.r8.graph.DexEncodedMethod; 20 private final Set<DexEncodedMethod> candidates = Sets.newIdentityHashSet(); 22 private final Set<DexEncodedMethod> hidden = Sets.newIdentityHashSet(); 34 private final List<DexEncodedMethod> live; 36 private final List<DexEncodedMethod> hidden; 38 private Collection(List<DexEncodedMethod> live, List<DexEncodedMethod> hidden) { in Collection() 50 Iterator<DexEncodedMethod> it = candidates.iterator(); in hideMatches() 52 DexEncodedMethod candidate = it.next(); in hideMatches() 60 final void addDefaultMethod(DexEncodedMethod encoded) { in addDefaultMethod() 65 final List<DexEncodedMethod> createCandidatesList() { in createCandidatesList() [all …]
|
D | InterfaceProcessor.java | 14 import com.android.tools.r8.graph.DexEncodedMethod; 43 List<DexEncodedMethod> companionMethods = new ArrayList<>(); in process() 46 List<DexEncodedMethod> remainingMethods = new ArrayList<>(); in process() 47 for (DexEncodedMethod virtual : iface.virtualMethods) { in process() 68 companionMethods.add(new DexEncodedMethod(companionMethod, in process() 85 new DexEncodedMethod[remainingMethods.size()]); in process() 90 for (DexEncodedMethod direct : iface.directMethods) { in process() 99 companionMethods.add(new DexEncodedMethod( in process() 111 new DexEncodedMethod[remainingMethods.size()]); in process() 138 companionMethods.toArray(new DexEncodedMethod[companionMethods.size()]), in process() [all …]
|
D | LambdaClass.java | 16 import com.android.tools.r8.graph.DexEncodedMethod; 138 private DexEncodedMethod[] synthesizeVirtualMethods() { in synthesizeVirtualMethods() 139 DexEncodedMethod[] methods = new DexEncodedMethod[1 + descriptor.bridges.size()]; in synthesizeVirtualMethods() 145 methods[index++] = new DexEncodedMethod( in synthesizeVirtualMethods() 155 methods[index++] = new DexEncodedMethod( in synthesizeVirtualMethods() 168 private DexEncodedMethod[] synthesizeDirectMethods() { in synthesizeDirectMethods() 170 DexEncodedMethod[] methods = new DexEncodedMethod[stateless ? 2 : 1]; in synthesizeDirectMethods() 173 methods[0] = new DexEncodedMethod( in synthesizeDirectMethods() 183 methods[1] = new DexEncodedMethod( in synthesizeDirectMethods() 444 DexEncodedMethod[] directMethods = implMethodHolder.directMethods; in ensureAccessibility() [all …]
|
/external/r8/src/main/java/com/android/tools/r8/shaking/ |
D | KeepReason.java | 6 import com.android.tools.r8.graph.DexEncodedMethod; 18 static KeepReason instantiatedIn(DexEncodedMethod method) { in instantiatedIn() 22 public static KeepReason invokedViaSuperFrom(DexEncodedMethod from) { in invokedViaSuperFrom() 30 public static KeepReason invokedFrom(DexEncodedMethod method) { in invokedFrom() 38 public static KeepReason fieldReferencedIn(DexEncodedMethod method) { in fieldReferencedIn() 74 private final DexEncodedMethod method; 76 private BasedOnOtherMethod(DexEncodedMethod method) { in BasedOnOtherMethod() 91 private InstatiatedIn(DexEncodedMethod method) { in InstatiatedIn() 103 private InvokedViaSuper(DexEncodedMethod method) { in InvokedViaSuper() 115 private InvokedFrom(DexEncodedMethod method) { in InvokedFrom() [all …]
|
D | SimpleClassMerger.java | 10 import com.android.tools.r8.graph.DexEncodedMethod; 193 private final Map<DexEncodedMethod, DexEncodedMethod> deferredRenamings = new HashMap<>(); 208 Collection<DexEncodedMethod> mergedDirectMethods = mergeItems( in merge() 215 Iterator<DexEncodedMethod> methods = Iterators.forArray(source.virtualMethods()); in merge() 221 Collection<DexEncodedMethod> mergedVirtualMethods = mergeItems( in merge() 261 .toArray(new DexEncodedMethod[mergedDirectMethods.size()]); in merge() 263 .toArray(new DexEncodedMethod[mergedVirtualMethods.size()]); in merge() 282 private DexEncodedMethod filterShadowedInterfaceMethods(DexEncodedMethod m) { in filterShadowedInterfaceMethods() 283 DexEncodedMethod actual = appInfo.lookupVirtualDefinition(target.type, m.method); in filterShadowedInterfaceMethods() 353 private DexEncodedMethod abortOnNonAbstract(DexEncodedMethod existing, in abortOnNonAbstract() [all …]
|
D | Enqueuer.java | 16 import com.android.tools.r8.graph.DexEncodedMethod; 83 private Map<DexType, SetWithReason<DexEncodedMethod>> reachableVirtualMethods = Maps 89 private Map<DexEncodedMethod, Set<DexEncodedMethod>> superInvokeDependencies = Maps 111 private SetWithReason<DexEncodedMethod> targetedMethods = new SetWithReason<>(); 116 private SetWithReason<DexEncodedMethod> liveMethods = new SetWithReason<>(); 181 private final DexEncodedMethod currentMethod; 183 private UseRegistry(DexEncodedMethod currentMethod) { in UseRegistry() 352 DexEncodedMethod clinit = holder.getClassInitializer(); in markTypeAsLive() 384 DexEncodedMethod encodedMethod = appInfo.lookupStaticTarget(method); in handleInvokeOfStaticTarget() 393 DexEncodedMethod encodedMethod = appInfo.lookupDirectTarget(method); in handleInvokeOfDirectTarget() [all …]
|
/external/r8/src/main/java/com/android/tools/r8/ir/conversion/ |
D | CallGraph.java | 10 import com.android.tools.r8.graph.DexEncodedMethod; 50 public final DexEncodedMethod method; 60 private Node(DexEncodedMethod method) { in Node() 132 private final Map<DexEncodedMethod, Node> nodes = new LinkedHashMap<>(); 133 private final Map<DexEncodedMethod, Set<DexEncodedMethod>> breakers = new HashMap<>(); 137 public boolean isBreaker(DexEncodedMethod method, DexEncodedMethod callee) { in isBreaker() 138 Set<DexEncodedMethod> value = breakers.get(method); in isBreaker() 143 private Set<DexEncodedMethod> singleCallSite = Sets.newIdentityHashSet(); 144 private Set<DexEncodedMethod> doubleCallSite = Sets.newIdentityHashSet(); 152 for (DexEncodedMethod method : clazz.allMethodsSorted()) { in build() [all …]
|
D | OptimizationFeedback.java | 7 import com.android.tools.r8.graph.DexEncodedMethod; 11 void methodReturnsArgument(DexEncodedMethod method, int argument); in methodReturnsArgument() 12 void methodReturnsConstant(DexEncodedMethod method, long value); in methodReturnsConstant() 13 void methodNeverReturnsNull(DexEncodedMethod method); in methodNeverReturnsNull() 14 void markProcessed(DexEncodedMethod method, Constraint state); in markProcessed()
|
D | OptimizationFeedbackIgnore.java | 7 import com.android.tools.r8.graph.DexEncodedMethod; 13 public void methodReturnsArgument(DexEncodedMethod method, int argument) {} in methodReturnsArgument() 16 public void methodReturnsConstant(DexEncodedMethod method, long value) {} in methodReturnsConstant() 19 public void methodNeverReturnsNull(DexEncodedMethod method) {} in methodNeverReturnsNull() 22 public void markProcessed(DexEncodedMethod method, Constraint state) {} in markProcessed()
|
D | OptimizationFeedbackDirect.java | 7 import com.android.tools.r8.graph.DexEncodedMethod; 13 public void methodReturnsArgument(DexEncodedMethod method, int argument) { in methodReturnsArgument() 18 public void methodReturnsConstant(DexEncodedMethod method, long value) { in methodReturnsConstant() 23 public void methodNeverReturnsNull(DexEncodedMethod method) { in methodNeverReturnsNull() 28 public void markProcessed(DexEncodedMethod method, Constraint state) { in markProcessed()
|
D | IRConverter.java | 15 import com.android.tools.r8.graph.DexEncodedMethod; 187 DexEncodedMethod definition = appInfo.definitionFor(method); in markReturnsReceiver() 240 private void convertMethodsToDex(DexEncodedMethod[] methods) { in convertMethodsToDex() 242 DexEncodedMethod method = methods[i]; in convertMethodsToDex() 281 List<DexEncodedMethod> methods = callGraph.extractLeaves(); in optimize() 288 for (DexEncodedMethod method : methods) { in optimize() 317 for (DexEncodedMethod method : outliner.getMethodsSelectedForOutlining()) { in optimize() 332 public void processJumboStrings(DexEncodedMethod method, DexString firstJumboString) { in processJumboStrings() 341 clazz.forEachMethod(DexEncodedMethod::markNotProcessed); in clearDexMethodCompilationState() 353 public void replaceCodeForTesting(DexEncodedMethod method, IRCode code) { in replaceCodeForTesting() [all …]
|
/external/r8/src/main/java/com/android/tools/r8/optimize/ |
D | VisibilityBridgeRemover.java | 9 import com.android.tools.r8.graph.DexEncodedMethod; 23 private final Set<DexEncodedMethod> unneededVisibilityBridges = Sets.newIdentityHashSet(); 30 private void identifyBridgeMethods(DexEncodedMethod[] dexEncodedMethods) { in identifyBridgeMethods() 31 for (DexEncodedMethod method : dexEncodedMethods) { in identifyBridgeMethods() 42 DexEncodedMethod targetMethod in identifyBridgeMethods() 67 private DexEncodedMethod[] removeMethods(DexEncodedMethod[] methods, in removeMethods() 68 Set<DexEncodedMethod> removals) { in removeMethods() 70 List<DexEncodedMethod> newMethods = Arrays.stream(methods) in removeMethods() 74 return newMethods.toArray(new DexEncodedMethod[newMethods.size()]); in removeMethods()
|
D | BridgeMethodAnalysis.java | 8 import com.android.tools.r8.graph.DexEncodedMethod; 37 private void identifyBridgeMethods(DexEncodedMethod[] dexEncodedMethods) { in identifyBridgeMethods() 38 for (DexEncodedMethod method : dexEncodedMethods) { in identifyBridgeMethods() 50 DexEncodedMethod targetMethod = appInfo.lookupStaticTarget(target); in identifyBridgeMethods() 56 DexEncodedMethod targetMethod = appInfo.lookupSingleVirtualTarget(target); in identifyBridgeMethods() 66 private void addForwarding(DexEncodedMethod method, DexEncodedMethod target) { in addForwarding() 91 public DexType lookupType(DexType type, DexEncodedMethod context) { in lookupType() 96 public DexMethod lookupMethod(DexMethod method, DexEncodedMethod context) { in lookupMethod() 110 public DexField lookupField(DexField field, DexEncodedMethod context) { in lookupField()
|
/external/r8/src/main/java/com/android/tools/r8/ir/optimize/ |
D | Inliner.java | 8 import com.android.tools.r8.graph.DexEncodedMethod; 45 private final Set<DexEncodedMethod> doubleInlineCallers = Sets.newIdentityHashSet(); 46 private final Set<DexEncodedMethod> doubleInlineSelectedTargets = Sets.newIdentityHashSet(); 47 private final Map<DexEncodedMethod, DexEncodedMethod> doubleInlineeCandidates = new HashMap<>(); 56 DexEncodedMethod method, Instruction instruction) { in instructionAllowedForInlining() 64 public Constraint identifySimpleMethods(IRCode code, DexEncodedMethod method) { in identifySimpleMethods() 94 boolean hasInliningAccess(DexEncodedMethod method, DexEncodedMethod target) { in hasInliningAccess() 110 synchronized DexEncodedMethod doubleInlining(DexEncodedMethod method, in doubleInlining() 111 DexEncodedMethod target) { in doubleInlining() 137 for (DexEncodedMethod method : doubleInlineCallers) { in processDoubleInlineCallers() [all …]
|
D | InliningOracle.java | 7 import com.android.tools.r8.graph.DexEncodedMethod; 30 final DexEncodedMethod method; 37 DexEncodedMethod method, in InliningOracle() 53 DexEncodedMethod validateCandidate(InvokeMethod invoke) { in validateCandidate() 54 DexEncodedMethod candidate = invoke.computeSingleTarget(inliner.appInfo); in validateCandidate() 92 private Reason computeInliningReason(DexEncodedMethod target) { in computeInliningReason() 113 DexEncodedMethod target = invoke.computeSingleTarget(inliner.appInfo); in computeForInvokeWithReceiver() 203 private boolean canInlineStaticInvoke(DexEncodedMethod method, DexEncodedMethod target) { in canInlineStaticInvoke() 215 private synchronized boolean isDoubleInliningTarget(DexEncodedMethod candidate) { in isDoubleInliningTarget() 223 DexEncodedMethod candidate = validateCandidate(invoke); in computeForInvokeStatic() [all …]
|
D | InliningInfo.java | 6 import com.android.tools.r8.graph.DexEncodedMethod; 42 final DexEncodedMethod target; 44 Inlining(DexEncodedMethod target) { in Inlining() 67 final DexEncodedMethod method; 70 public InliningInfo(DexEncodedMethod method) { in InliningInfo() 74 public void include(Type type, DexEncodedMethod target) { in include()
|
/external/r8/src/test/java/com/android/tools/r8/internal/ |
D | R8GMSCoreLookupTest.java | 13 import com.android.tools.r8.graph.DexEncodedMethod; 44 private void testVirtualLookup(DexProgramClass clazz, DexEncodedMethod method) { in testVirtualLookup() 50 Set<DexEncodedMethod> targets = appInfo.lookupVirtualTargets(method.method); in testVirtualLookup() 54 private void testInterfaceLookup(DexProgramClass clazz, DexEncodedMethod method) { in testInterfaceLookup() 55 Set<DexEncodedMethod> targets = appInfo.lookupVirtualTargets(method.method); in testInterfaceLookup() 63 for (DexEncodedMethod method : clazz.virtualMethods()) { in testLookup() 67 for (DexEncodedMethod method : clazz.virtualMethods()) { in testLookup()
|
/external/r8/src/test/java/com/android/tools/r8/smali/ |
D | IfSimplificationTest.java | 21 import com.android.tools.r8.graph.DexEncodedMethod; 45 DexEncodedMethod method = oneMethodApplication( in ifZeroNeqZero() 65 DexEncodedMethod method = oneMethodApplication( in ifTwoEqZero() 85 DexEncodedMethod method = oneMethodApplication( in b() 109 DexEncodedMethod method = oneMethodApplication( in c() 133 DexEncodedMethod method = oneMethodApplication( in d() 164 DexEncodedMethod method = oneMethodApplication( in e() 189 DexEncodedMethod method = oneMethodApplication( in f() 245 DexEncodedMethod method = oneMethodApplication( in simplifyNonZeroTests() 276 DexEncodedMethod method = oneMethodApplication( in runRewriteIfWithConstZeroTest() [all …]
|