Add a way to specify optimisitic optimizations when compiling using GraalRuntime
Rémi Forax
forax at univ-mlv.fr
Tue Apr 3 03:28:59 PDT 2012
On 04/02/2012 12:10 PM, Douglas Simon wrote:
> Hi Remi,
>
> On Mar 30, 2012, at 7:13 PM, Rémi Forax wrote:
>
>> Hi guys,
>> I've played a little with Graal and I've some questions (a lot in fact but I will send several messages :)
> We're ready for your questions - fire away ;-)
Currently, there is no way to specify when compiling a method using
GraalRuntime.compile()
if the optimistic optimizations should be used or not.
But sometime you don't want any optimistic optimizations at all, like by
example when compiling an intrinsics.
The patch below just add a new parameter to specify the optimistic
optimizations.
Rémi
diff --git
a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java
b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java
---
a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java
+++
b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java
@@ -449,11 +449,11 @@
}
@Override
- public CiTargetMethod compile(RiResolvedMethod method,
StructuredGraph graph) {
+ public CiTargetMethod compile(RiResolvedMethod method,
StructuredGraph graph, OptimisticOptimizations optimisticOpts) {
final PhasePlan plan = new PhasePlan();
- GraphBuilderPhase graphBuilderPhase = new
GraphBuilderPhase(compiler.getRuntime(),
GraphBuilderConfiguration.getDefault(), OptimisticOptimizations.ALL);
+ GraphBuilderPhase graphBuilderPhase = new
GraphBuilderPhase(compiler.getRuntime(),
GraphBuilderConfiguration.getDefault(), optimisticOpts);
plan.addPhase(PhasePosition.AFTER_PARSING, graphBuilderPhase);
- return compiler.getCompiler().compileMethod(method, graph, -1,
compiler.getCache(), plan, OptimisticOptimizations.ALL);
+ return compiler.getCompiler().compileMethod(method, graph, -1,
compiler.getCache(), plan, optimisticOpts);
}
@Override
diff --git
a/graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/GraalRuntime.java b/graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/GraalRuntime.java
---
a/graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/GraalRuntime.java
+++
b/graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/GraalRuntime.java
@@ -26,6 +26,7 @@
import com.oracle.max.cri.ci.*;
import com.oracle.max.cri.ri.*;
+import com.oracle.graal.compiler.OptimisticOptimizations;
import com.oracle.graal.graph.*;
import com.oracle.graal.nodes.*;
@@ -38,7 +39,7 @@
StructuredGraph intrinsicGraph(RiResolvedMethod caller, int bci,
RiResolvedMethod method, List<? extends Node> parameters);
- CiTargetMethod compile(RiResolvedMethod method, StructuredGraph graph);
+ CiTargetMethod compile(RiResolvedMethod method, StructuredGraph
graph, OptimisticOptimizations optimisticOpts);
long[] getDeoptedLeafGraphIds();
}
More information about the graal-dev
mailing list