# HG changeset patch # User Miguel Garcia # Date 1402048076 -7200 # Node ID 83efd0e68a4ac0897949890210bdf6f8e0501167 # Parent 61cf8b61ee4e9c3a5fc9b39e83790127e0546626 [inliner] singleton pattern for DUMMY_CALLSITE_HOLDER diff -r 61cf8b61ee4e -r 83efd0e68a4a graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 06 11:41:10 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 06 11:47:56 2014 +0200 @@ -34,8 +34,8 @@ import com.oracle.graal.phases.common.inlining.info.elem.InlineableMacroNode; import com.oracle.graal.phases.common.inlining.info.elem.InlineableGraph; import com.oracle.graal.phases.common.inlining.walker.CallsiteHolder; +import com.oracle.graal.phases.common.inlining.walker.CallsiteHolderDummy; import com.oracle.graal.phases.common.inlining.walker.CallsiteHolderExplorable; -import com.oracle.graal.phases.common.inlining.walker.InliningData; import com.oracle.graal.phases.tiers.HighTierContext; public abstract class AbstractInlineInfo implements InlineInfo { @@ -100,7 +100,7 @@ return new CallsiteHolderExplorable(ig.getGraph(), invokeProbability * probabilityAt(index), invokeRelevance * relevanceAt(index)); } else { assert elem instanceof InlineableMacroNode; - return InliningData.DUMMY_CALLSITE_HOLDER; + return CallsiteHolderDummy.DUMMY_CALLSITE_HOLDER; } } } diff -r 61cf8b61ee4e -r 83efd0e68a4a graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/CallsiteHolderDummy.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/CallsiteHolderDummy.java Fri Jun 06 11:41:10 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/CallsiteHolderDummy.java Fri Jun 06 11:47:56 2014 +0200 @@ -33,7 +33,10 @@ */ public final class CallsiteHolderDummy extends CallsiteHolder { - public CallsiteHolderDummy() { + public static final CallsiteHolderDummy DUMMY_CALLSITE_HOLDER = new CallsiteHolderDummy(); + + private CallsiteHolderDummy() { + // no instances other than the singleton } @Override diff -r 61cf8b61ee4e -r 83efd0e68a4a graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Fri Jun 06 11:41:10 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Fri Jun 06 11:47:56 2014 +0200 @@ -51,6 +51,7 @@ import java.util.function.ToDoubleFunction; import static com.oracle.graal.compiler.common.GraalOptions.*; +import static com.oracle.graal.phases.common.inlining.walker.CallsiteHolderDummy.DUMMY_CALLSITE_HOLDER; /** * Holds the data for building the callee graphs recursively: graphs and invocations (each @@ -58,7 +59,6 @@ */ public class InliningData { - public static final CallsiteHolder DUMMY_CALLSITE_HOLDER = new CallsiteHolderDummy(); // Metrics private static final DebugMetric metricInliningPerformed = Debug.metric("InliningPerformed"); private static final DebugMetric metricInliningRuns = Debug.metric("InliningRuns");