Home
last modified time | relevance | path

Searched refs:DexEncodedMethod (Results 1 – 25 of 94) sorted by relevance

1234

/external/r8/src/main/java/com/android/tools/r8/graph/
DDexClass.java18 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 …]
DAppInfo.java72 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 …]
DAppInfoWithSubtyping.java101 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 …]
DGraphLense.java60 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()
DDexEncodedMethod.java6 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 …]
DDexMethod.java10 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/
DClassProcessor.java10 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 …]
DDefaultMethodsHelper.java7 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 …]
DInterfaceProcessor.java14 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 …]
DLambdaClass.java16 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/
DKeepReason.java6 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 …]
DSimpleClassMerger.java10 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 …]
DEnqueuer.java16 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/
DCallGraph.java10 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 …]
DOptimizationFeedback.java7 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()
DOptimizationFeedbackIgnore.java7 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()
DOptimizationFeedbackDirect.java7 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()
DIRConverter.java15 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/
DVisibilityBridgeRemover.java9 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()
DBridgeMethodAnalysis.java8 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/
DInliner.java8 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 …]
DInliningOracle.java7 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 …]
DInliningInfo.java6 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/
DR8GMSCoreLookupTest.java13 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/
DIfSimplificationTest.java21 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 …]

1234