src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/LIRGenerationProvider.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54084 84f10bbf993f
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
     1 /*
     1 /*
     2  * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    24 
    24 
    25 package org.graalvm.compiler.core.gen;
    25 package org.graalvm.compiler.core.gen;
    26 
    26 
    27 import org.graalvm.compiler.code.CompilationResult;
    27 import org.graalvm.compiler.code.CompilationResult;
    28 import org.graalvm.compiler.core.common.CompilationIdentifier;
    28 import org.graalvm.compiler.core.common.CompilationIdentifier;
       
    29 import org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig;
    29 import org.graalvm.compiler.lir.LIR;
    30 import org.graalvm.compiler.lir.LIR;
    30 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    31 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    31 import org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory;
    32 import org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory;
    32 import org.graalvm.compiler.lir.framemap.FrameMap;
    33 import org.graalvm.compiler.lir.framemap.FrameMap;
    33 import org.graalvm.compiler.lir.gen.LIRGenerationResult;
    34 import org.graalvm.compiler.lir.gen.LIRGenerationResult;
    34 import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
    35 import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
    35 import org.graalvm.compiler.nodes.StructuredGraph;
    36 import org.graalvm.compiler.nodes.StructuredGraph;
    36 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
    37 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
    37 
    38 
    38 import jdk.vm.ci.code.RegisterConfig;
       
    39 import jdk.vm.ci.meta.ResolvedJavaMethod;
    39 import jdk.vm.ci.meta.ResolvedJavaMethod;
    40 
    40 
    41 /**
    41 /**
    42  * Provides compiler backend-specific generation helpers for the {@link LIRCompilerBackend}.
    42  * Provides compiler backend-specific generation helpers for the {@link LIRCompilerBackend}.
    43  */
    43  */
    44 public interface LIRGenerationProvider {
    44 public interface LIRGenerationProvider {
    45     LIRGeneratorTool newLIRGenerator(LIRGenerationResult lirGenRes);
    45     LIRGeneratorTool newLIRGenerator(LIRGenerationResult lirGenRes);
    46 
    46 
    47     LIRGenerationResult newLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, RegisterConfig registerConfig, StructuredGraph graph,
    47     LIRGenerationResult newLIRGenerationResult(CompilationIdentifier compilationId,
       
    48                     LIR lir,
       
    49                     RegisterAllocationConfig registerAllocationConfig,
       
    50                     StructuredGraph graph,
    48                     Object stub);
    51                     Object stub);
    49 
    52 
    50     NodeLIRBuilderTool newNodeLIRBuilder(StructuredGraph graph, LIRGeneratorTool lirGen);
    53     NodeLIRBuilderTool newNodeLIRBuilder(StructuredGraph graph, LIRGeneratorTool lirGen);
    51 
    54 
    52     /**
    55     /**
    53      * Creates the object used to fill in the details of a given compilation result.
    56      * Creates the object used to fill in the details of a given compilation result.
    54      */
    57      */
    55     CompilationResultBuilder newCompilationResultBuilder(LIRGenerationResult lirGenResult, FrameMap frameMap, CompilationResult compilationResult,
    58     CompilationResultBuilder newCompilationResultBuilder(LIRGenerationResult lirGenResult,
       
    59                     FrameMap frameMap,
       
    60                     CompilationResult compilationResult,
    56                     CompilationResultBuilderFactory factory);
    61                     CompilationResultBuilderFactory factory);
    57 
    62 
    58     /**
    63     /**
    59      * Emits the code for a given graph.
    64      * Emits the code for a given graph.
    60      *
    65      *