src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.java

Print this page

        

*** 20,38 **** * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.core.target; import org.graalvm.compiler.asm.Assembler; import org.graalvm.compiler.code.CompilationResult; import org.graalvm.compiler.core.common.CompilationIdentifier; import org.graalvm.compiler.core.common.LIRKind; import org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig; import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; import org.graalvm.compiler.core.common.spi.ForeignCallsProvider; ! import org.graalvm.compiler.debug.Debug; ! import org.graalvm.compiler.debug.Debug.Scope; import org.graalvm.compiler.lir.LIR; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; import org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory; import org.graalvm.compiler.lir.framemap.FrameMap; import org.graalvm.compiler.lir.framemap.FrameMapBuilder; --- 20,39 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.core.target; + import java.util.ArrayList; + import org.graalvm.compiler.asm.Assembler; import org.graalvm.compiler.code.CompilationResult; import org.graalvm.compiler.core.common.CompilationIdentifier; import org.graalvm.compiler.core.common.LIRKind; import org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig; import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; import org.graalvm.compiler.core.common.spi.ForeignCallsProvider; ! import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.lir.LIR; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; import org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory; import org.graalvm.compiler.lir.framemap.FrameMap; import org.graalvm.compiler.lir.framemap.FrameMapBuilder;
*** 58,69 **** import jdk.vm.ci.meta.JavaKind; import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.SpeculationLog; - import java.util.ArrayList; - /** * Represents a compiler backend for Graal. */ public abstract class Backend implements TargetProvider, ValueKindFactory<LIRKind> { --- 59,68 ----
*** 153,178 **** * to the VM for code installation. */ protected abstract CompiledCode createCompiledCode(ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult); /** ! * @see #createInstalledCode(ResolvedJavaMethod, CompilationRequest, CompilationResult, ! * SpeculationLog, InstalledCode, boolean) */ ! public InstalledCode createInstalledCode(ResolvedJavaMethod method, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault) { ! return createInstalledCode(method, null, compilationResult, speculationLog, predefinedInstalledCode, isDefault); } /** ! * @see #createInstalledCode(ResolvedJavaMethod, CompilationRequest, CompilationResult, ! * SpeculationLog, InstalledCode, boolean, Object[]) */ @SuppressWarnings("try") ! public InstalledCode createInstalledCode(ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault) { ! return createInstalledCode(method, compilationRequest, compilationResult, speculationLog, predefinedInstalledCode, isDefault, null); } /** * Installs code based on a given compilation result. * --- 152,177 ---- * to the VM for code installation. */ protected abstract CompiledCode createCompiledCode(ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult); /** ! * @see #createInstalledCode(DebugContext, ResolvedJavaMethod, CompilationRequest, ! * CompilationResult, SpeculationLog, InstalledCode, boolean, Object[]) */ ! public InstalledCode createInstalledCode(DebugContext debug, ResolvedJavaMethod method, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault) { ! return createInstalledCode(debug, method, null, compilationResult, speculationLog, predefinedInstalledCode, isDefault, null); } /** ! * @see #createInstalledCode(DebugContext, ResolvedJavaMethod, CompilationRequest, ! * CompilationResult, SpeculationLog, InstalledCode, boolean, Object[]) */ @SuppressWarnings("try") ! public InstalledCode createInstalledCode(DebugContext debug, ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault) { ! return createInstalledCode(debug, method, compilationRequest, compilationResult, speculationLog, predefinedInstalledCode, isDefault, null); } /** * Installs code based on a given compilation result. *
*** 186,208 **** * @param speculationLog the speculation log to be used * @param isDefault specifies if the installed code should be made the default implementation of * {@code compRequest.getMethod()}. The default implementation for a method is the * code executed for standard calls to the method. This argument is ignored if * {@code compRequest == null}. ! * @param context a custom debug context to use for the code installation. * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ @SuppressWarnings("try") ! public InstalledCode createInstalledCode(ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault, Object[] context) { Object[] debugContext = context != null ? context : new Object[]{getProviders().getCodeCache(), method, compilationResult}; CodeInstallationTask[] tasks = new CodeInstallationTask[codeInstallationTaskFactories.size()]; for (int i = 0; i < codeInstallationTaskFactories.size(); i++) { tasks[i] = codeInstallationTaskFactories.get(i).create(); } ! try (Scope s = Debug.scope("CodeInstall", debugContext)) { for (CodeInstallationTask task : tasks) { task.preProcess(compilationResult); } CompiledCode compiledCode = createCompiledCode(method, compilationRequest, compilationResult); --- 185,208 ---- * @param speculationLog the speculation log to be used * @param isDefault specifies if the installed code should be made the default implementation of * {@code compRequest.getMethod()}. The default implementation for a method is the * code executed for standard calls to the method. This argument is ignored if * {@code compRequest == null}. ! * @param context a custom debug context to use for the code installation * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ @SuppressWarnings("try") ! public InstalledCode createInstalledCode(DebugContext debug, ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult, SpeculationLog speculationLog, InstalledCode predefinedInstalledCode, boolean isDefault, Object[] context) { Object[] debugContext = context != null ? context : new Object[]{getProviders().getCodeCache(), method, compilationResult}; CodeInstallationTask[] tasks = new CodeInstallationTask[codeInstallationTaskFactories.size()]; for (int i = 0; i < codeInstallationTaskFactories.size(); i++) { tasks[i] = codeInstallationTaskFactories.get(i).create(); } ! try (DebugContext.Scope s2 = debug.scope("CodeInstall", debugContext); ! DebugContext.Activation a = debug.activate()) { for (CodeInstallationTask task : tasks) { task.preProcess(compilationResult); } CompiledCode compiledCode = createCompiledCode(method, compilationRequest, compilationResult);
*** 220,230 **** installedCode.invalidate(); throw t; } return installedCode; } catch (Throwable e) { ! throw Debug.handle(e); } } /** * Installs code based on a given compilation result. --- 220,230 ---- installedCode.invalidate(); throw t; } return installedCode; } catch (Throwable e) { ! throw debug.handle(e); } } /** * Installs code based on a given compilation result.
*** 234,245 **** * @param compilationRequest the request or {@code null} * @param compilationResult the code to be compiled * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ ! public InstalledCode addInstalledCode(ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult) { ! return createInstalledCode(method, compilationRequest, compilationResult, null, null, false); } /** * Installs code based on a given compilation result and sets it as the default code to be used * when {@code method} is invoked. --- 234,245 ---- * @param compilationRequest the request or {@code null} * @param compilationResult the code to be compiled * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ ! public InstalledCode addInstalledCode(DebugContext debug, ResolvedJavaMethod method, CompilationRequest compilationRequest, CompilationResult compilationResult) { ! return createInstalledCode(debug, method, compilationRequest, compilationResult, null, null, false); } /** * Installs code based on a given compilation result and sets it as the default code to be used * when {@code method} is invoked.
*** 248,259 **** * input to {@code compResult} was not a {@link ResolvedJavaMethod} * @param compilationResult the code to be compiled * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ ! public InstalledCode createDefaultInstalledCode(ResolvedJavaMethod method, CompilationResult compilationResult) { ! return createInstalledCode(method, compilationResult, null, null, true); } /** * Emits the code for a given graph. * --- 248,259 ---- * input to {@code compResult} was not a {@link ResolvedJavaMethod} * @param compilationResult the code to be compiled * @return a reference to the compiled and ready-to-run installed code * @throws BailoutException if the code installation failed */ ! public InstalledCode createDefaultInstalledCode(DebugContext debug, ResolvedJavaMethod method, CompilationResult compilationResult) { ! return createInstalledCode(debug, method, compilationResult, null, null, true); } /** * Emits the code for a given graph. *
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File