Mercurial > hg > truffle
changeset 15667:aa7956c4778d
[inlining] better distinguishable name, GraphInfo becomes CallsiteHolder
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Thu, 15 May 2014 10:52:38 +0200 |
parents | 50740bac9679 |
children | 382009d82874 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java |
diffstat | 1 files changed, 27 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Wed May 14 20:43:43 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Thu May 15 10:52:38 2014 +0200 @@ -98,12 +98,12 @@ * {@link InliningData}. At any point in time, its topmost element consist of: * <ul> * <li> - * one or more {@link GraphInfo}s of inlining candidates, all of them corresponding to a single - * callsite (details below). For example, "exact inline" leads to a single candidate.</li> + * one or more {@link CallsiteHolder}s of inlining candidates, all of them corresponding to a + * single callsite (details below). For example, "exact inline" leads to a single candidate.</li> * <li> * the callsite (for the targets above) is tracked as a {@link MethodInvocation}. The difference * between {@link MethodInvocation#totalGraphs()} and {@link MethodInvocation#processedGraphs()} - * indicates the topmost {@link GraphInfo}s that might be delved-into to explore inlining + * indicates the topmost {@link CallsiteHolder}s that might be delved-into to explore inlining * opportunities.</li> * </ul> * </p> @@ -112,7 +112,7 @@ * The bottom-most element in the stack consists of: * <ul> * <li> - * a single {@link GraphInfo} (the root one, for the method on which inlining was called)</li> + * a single {@link CallsiteHolder} (the root one, for the method on which inlining was called)</li> * <li> * a single {@link MethodInvocation} (the {@link MethodInvocation#isRoot} one, ie the unknown * caller of the root graph)</li> @@ -192,21 +192,21 @@ assert data.graphCount() == 0; } - private void tryToInline(ToDoubleFunction<FixedNode> probabilities, GraphInfo callerGraphInfo, MethodInvocation calleeInfo, MethodInvocation parentInvocation, int inliningDepth, + private void tryToInline(ToDoubleFunction<FixedNode> probabilities, CallsiteHolder callerCallsiteHolder, MethodInvocation calleeInfo, MethodInvocation parentInvocation, int inliningDepth, HighTierContext context) { InlineInfo callee = calleeInfo.callee(); Assumptions callerAssumptions = parentInvocation.assumptions(); if (inliningPolicy.isWorthInlining(probabilities, context.getReplacements(), callee, inliningDepth, calleeInfo.probability(), calleeInfo.relevance(), true)) { - doInline(callerGraphInfo, calleeInfo, callerAssumptions, context); + doInline(callerCallsiteHolder, calleeInfo, callerAssumptions, context); } else if (context.getOptimisticOptimizations().devirtualizeInvokes()) { callee.tryToDevirtualizeInvoke(context.getMetaAccess(), callerAssumptions); } metricInliningConsidered.increment(); } - private void doInline(GraphInfo callerGraphInfo, MethodInvocation calleeInfo, Assumptions callerAssumptions, HighTierContext context) { - StructuredGraph callerGraph = callerGraphInfo.graph(); + private void doInline(CallsiteHolder callerCallsiteHolder, MethodInvocation calleeInfo, Assumptions callerAssumptions, HighTierContext context) { + StructuredGraph callerGraph = callerCallsiteHolder.graph(); Mark markBeforeInlining = callerGraph.getMark(); InlineInfo callee = calleeInfo.callee(); try { @@ -224,12 +224,12 @@ // process invokes that are possibly created during canonicalization for (Node newNode : callerGraph.getNewNodes(markBeforeCanonicalization)) { if (newNode instanceof Invoke) { - callerGraphInfo.pushInvoke((Invoke) newNode); + callerCallsiteHolder.pushInvoke((Invoke) newNode); } } } - callerGraphInfo.computeProbabilities(); + callerCallsiteHolder.computeProbabilities(); inliningCount++; metricInliningPerformed.increment(); @@ -418,12 +418,12 @@ */ static class InliningData { - private static final GraphInfo DummyGraphInfo = new GraphInfo(null, 1.0, 1.0); + private static final CallsiteHolder DUMMY_CALLSITE_HOLDER = new CallsiteHolder(null, 1.0, 1.0); /** * Call hierarchy from outer most call (i.e., compilation unit) to inner most callee. */ - private final ArrayDeque<GraphInfo> graphQueue; + private final ArrayDeque<CallsiteHolder> graphQueue; private final ArrayDeque<MethodInvocation> invocationQueue; private final int maxMethodPerInlining; private final CanonicalizerPhase canonicalizer; @@ -445,15 +445,15 @@ * Process the next invoke and enqueue all its graphs for processing. */ void processNextInvoke(HighTierContext context) { - GraphInfo graphInfo = currentGraph(); - Invoke invoke = graphInfo.popInvoke(); + CallsiteHolder callsiteHolder = currentGraph(); + Invoke invoke = callsiteHolder.popInvoke(); MethodInvocation callerInvocation = currentInvocation(); Assumptions parentAssumptions = callerInvocation.assumptions(); InlineInfo info = InliningUtil.getInlineInfo(this, invoke, maxMethodPerInlining, context.getReplacements(), parentAssumptions, context.getOptimisticOptimizations()); if (info != null) { - double invokeProbability = graphInfo.invokeProbability(invoke); - double invokeRelevance = graphInfo.invokeRelevance(invoke); + double invokeProbability = callsiteHolder.invokeProbability(invoke); + double invokeRelevance = callsiteHolder.invokeRelevance(invoke); MethodInvocation calleeInvocation = pushInvocation(info, parentAssumptions, invokeProbability, invokeRelevance); for (int i = 0; i < info.numberOfMethods(); i++) { @@ -475,19 +475,19 @@ private void pushGraph(StructuredGraph graph, double probability, double relevance) { assert !contains(graph); - graphQueue.push(new GraphInfo(graph, probability, relevance)); + graphQueue.push(new CallsiteHolder(graph, probability, relevance)); assert graphQueue.size() <= maxGraphs; } private void pushDummyGraph() { - graphQueue.push(DummyGraphInfo); + graphQueue.push(DUMMY_CALLSITE_HOLDER); } public boolean hasUnprocessedGraphs() { return !graphQueue.isEmpty(); } - public GraphInfo currentGraph() { + public CallsiteHolder currentGraph() { return graphQueue.peek(); } @@ -514,8 +514,8 @@ } Object[] result = new Object[graphQueue.size()]; int i = 0; - for (GraphInfo g : graphQueue) { - result[i++] = g.graph.method(); + for (CallsiteHolder g : graphQueue) { + result[i++] = g.method(); } return result; } @@ -540,8 +540,8 @@ public int countRecursiveInlining(ResolvedJavaMethod method) { int count = 0; - for (GraphInfo graphInfo : graphQueue) { - if (method.equals(graphInfo.method())) { + for (CallsiteHolder callsiteHolder : graphQueue) { + if (method.equals(callsiteHolder.method())) { count++; } } @@ -567,7 +567,7 @@ } result.append("\nGraphs: "); - for (GraphInfo graph : graphQueue) { + for (CallsiteHolder graph : graphQueue) { result.append(graph.graph()); result.append("; "); } @@ -576,7 +576,7 @@ } private boolean contains(StructuredGraph graph) { - for (GraphInfo info : graphQueue) { + for (CallsiteHolder info : graphQueue) { if (info.graph() == graph) { return true; } @@ -654,7 +654,7 @@ * Information about a graph that will potentially be inlined. This includes tracking the * invocations in graph that will subject to inlining themselves. */ - private static class GraphInfo { + private static class CallsiteHolder { private final StructuredGraph graph; private final LinkedList<Invoke> remainingInvokes; @@ -664,7 +664,7 @@ private final ToDoubleFunction<FixedNode> probabilities; private final ComputeInliningRelevance computeInliningRelevance; - public GraphInfo(StructuredGraph graph, double probability, double relevance) { + public CallsiteHolder(StructuredGraph graph, double probability, double relevance) { this.graph = graph; if (graph == null) { this.remainingInvokes = new LinkedList<>();