< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalCompiler.java
Print this page
rev 52509 : [mq]: graal2
@@ -23,22 +23,19 @@
package org.graalvm.compiler.hotspot;
import static org.graalvm.compiler.core.common.GraalOptions.OptAssumptions;
-import static org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext.CompilationContext.ROOT_COMPILATION;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.Collections;
import java.util.Formattable;
import java.util.Formatter;
import java.util.List;
import org.graalvm.compiler.api.runtime.GraalJVMCICompiler;
-import org.graalvm.compiler.bytecode.Bytecode;
-import org.graalvm.compiler.bytecode.BytecodeProvider;
import org.graalvm.compiler.code.CompilationResult;
import org.graalvm.compiler.core.GraalCompiler;
import org.graalvm.compiler.core.common.CompilationIdentifier;
import org.graalvm.compiler.core.common.util.CompilationAlarm;
import org.graalvm.compiler.debug.DebugContext;
@@ -52,13 +49,10 @@
import org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory;
import org.graalvm.compiler.lir.phases.LIRSuites;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration;
-import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
-import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext;
-import org.graalvm.compiler.nodes.spi.Replacements;
import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.phases.OptimisticOptimizations;
import org.graalvm.compiler.phases.OptimisticOptimizations.Optimization;
import org.graalvm.compiler.phases.PhaseSuite;
import org.graalvm.compiler.phases.tiers.HighTierContext;
@@ -137,11 +131,11 @@
if (compilationCounters != null) {
compilationCounters.countCompilation(method);
}
CompilationTask task = new CompilationTask(jvmciRuntime, this, hsRequest, true, installAsDefault, options);
CompilationRequestResult r = null;
- try (DebugContext debug = graalRuntime.openDebugContext(options, task.getCompilationIdentifier(), method, getDebugHandlersFactories());
+ try (DebugContext debug = graalRuntime.openDebugContext(options, task.getCompilationIdentifier(), method, getDebugHandlersFactories(), DebugContext.DEFAULT_LOG_STREAM);
Activation a = debug.activate()) {
r = task.runCompilation(debug);
}
assert r != null;
return r;
@@ -150,11 +144,11 @@
public StructuredGraph createGraph(ResolvedJavaMethod method, int entryBCI, boolean useProfilingInfo, CompilationIdentifier compilationId, OptionValues options, DebugContext debug) {
HotSpotBackend backend = graalRuntime.getHostBackend();
HotSpotProviders providers = backend.getProviders();
final boolean isOSR = entryBCI != JVMCICompiler.INVOCATION_ENTRY_BCI;
- StructuredGraph graph = method.isNative() || isOSR ? null : getIntrinsicGraph(method, providers, compilationId, options, debug);
+ StructuredGraph graph = method.isNative() || isOSR ? null : providers.getReplacements().getIntrinsicGraph(method, compilationId, debug);
if (graph == null) {
SpeculationLog speculationLog = method.getSpeculationLog();
if (speculationLog != null) {
speculationLog.collectFailedSpeculations();
@@ -202,51 +196,10 @@
StructuredGraph graph = createGraph(method, entryBCI, useProfilingInfo, compilationId, options, debug);
CompilationResult result = new CompilationResult(compilationId);
return compileHelper(CompilationResultBuilderFactory.Default, result, graph, method, entryBCI, useProfilingInfo, options);
}
- /**
- * Gets a graph produced from the intrinsic for a given method that can be compiled and
- * installed for the method.
- *
- * @param method
- * @param compilationId
- * @param options
- * @param debug
- * @return an intrinsic graph that can be compiled and installed for {@code method} or null
- */
- @SuppressWarnings("try")
- public StructuredGraph getIntrinsicGraph(ResolvedJavaMethod method, HotSpotProviders providers, CompilationIdentifier compilationId, OptionValues options, DebugContext debug) {
- Replacements replacements = providers.getReplacements();
- Bytecode subst = replacements.getSubstitutionBytecode(method);
- if (subst != null) {
- ResolvedJavaMethod substMethod = subst.getMethod();
- assert !substMethod.equals(method);
- BytecodeProvider bytecodeProvider = subst.getOrigin();
- // @formatter:off
- StructuredGraph graph = new StructuredGraph.Builder(options, debug, AllowAssumptions.YES).
- method(substMethod).
- compilationId(compilationId).
- recordInlinedMethods(bytecodeProvider.shouldRecordMethodDependencies()).
- setIsSubstitution(true).
- build();
- // @formatter:on
- try (DebugContext.Scope scope = debug.scope("GetIntrinsicGraph", graph)) {
- Plugins plugins = new Plugins(providers.getGraphBuilderPlugins());
- GraphBuilderConfiguration config = GraphBuilderConfiguration.getSnippetDefault(plugins);
- IntrinsicContext initialReplacementContext = new IntrinsicContext(method, substMethod, bytecodeProvider, ROOT_COMPILATION);
- new GraphBuilderPhase.Instance(providers.getMetaAccess(), providers.getStampProvider(), providers.getConstantReflection(), providers.getConstantFieldProvider(), config,
- OptimisticOptimizations.NONE, initialReplacementContext).apply(graph);
- assert !graph.isFrozen();
- return graph;
- } catch (Throwable e) {
- debug.handle(e);
- }
- }
- return null;
- }
-
protected OptimisticOptimizations getOptimisticOpts(ProfilingInfo profilingInfo, OptionValues options) {
return new OptimisticOptimizations(profilingInfo, options);
}
protected Suites getSuites(HotSpotProviders providers, OptionValues options) {
< prev index next >