src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/Providers.java
changeset 54328 37648a9c4a6a
parent 52956 4b0b796dd581
child 55509 d58442b8abc1
child 58678 9cf78a70fa4f
equal deleted inserted replaced
54327:a4d19817609c 54328:37648a9c4a6a
    25 package org.graalvm.compiler.phases.util;
    25 package org.graalvm.compiler.phases.util;
    26 
    26 
    27 import org.graalvm.compiler.core.common.spi.CodeGenProviders;
    27 import org.graalvm.compiler.core.common.spi.CodeGenProviders;
    28 import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
    28 import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
    29 import org.graalvm.compiler.core.common.spi.ForeignCallsProvider;
    29 import org.graalvm.compiler.core.common.spi.ForeignCallsProvider;
       
    30 import org.graalvm.compiler.nodes.spi.CoreProvidersImpl;
    30 import org.graalvm.compiler.nodes.spi.LoweringProvider;
    31 import org.graalvm.compiler.nodes.spi.LoweringProvider;
    31 import org.graalvm.compiler.nodes.spi.Replacements;
    32 import org.graalvm.compiler.nodes.spi.Replacements;
    32 import org.graalvm.compiler.nodes.spi.StampProvider;
    33 import org.graalvm.compiler.nodes.spi.StampProvider;
    33 import org.graalvm.compiler.phases.tiers.PhaseContext;
    34 import org.graalvm.compiler.phases.tiers.PhaseContext;
    34 
    35 
    37 import jdk.vm.ci.meta.MetaAccessProvider;
    38 import jdk.vm.ci.meta.MetaAccessProvider;
    38 
    39 
    39 /**
    40 /**
    40  * A set of providers, some of which may not be present (i.e., null).
    41  * A set of providers, some of which may not be present (i.e., null).
    41  */
    42  */
    42 public class Providers implements CodeGenProviders {
    43 public class Providers extends CoreProvidersImpl implements CodeGenProviders {
    43 
    44 
    44     private final MetaAccessProvider metaAccess;
       
    45     private final CodeCacheProvider codeCache;
    45     private final CodeCacheProvider codeCache;
    46     private final LoweringProvider lowerer;
       
    47     private final ConstantReflectionProvider constantReflection;
       
    48     private final ConstantFieldProvider constantFieldProvider;
       
    49     private final ForeignCallsProvider foreignCalls;
       
    50     private final Replacements replacements;
       
    51     private final StampProvider stampProvider;
       
    52 
    46 
    53     public Providers(MetaAccessProvider metaAccess, CodeCacheProvider codeCache, ConstantReflectionProvider constantReflection, ConstantFieldProvider constantFieldProvider,
    47     public Providers(MetaAccessProvider metaAccess, CodeCacheProvider codeCache, ConstantReflectionProvider constantReflection, ConstantFieldProvider constantFieldProvider,
    54                     ForeignCallsProvider foreignCalls, LoweringProvider lowerer, Replacements replacements, StampProvider stampProvider) {
    48                     ForeignCallsProvider foreignCalls, LoweringProvider lowerer, Replacements replacements, StampProvider stampProvider) {
    55         this.metaAccess = metaAccess;
    49         super(metaAccess, constantReflection, constantFieldProvider, lowerer, replacements, stampProvider, foreignCalls);
    56         this.codeCache = codeCache;
    50         this.codeCache = codeCache;
    57         this.constantReflection = constantReflection;
       
    58         this.constantFieldProvider = constantFieldProvider;
       
    59         this.foreignCalls = foreignCalls;
       
    60         this.lowerer = lowerer;
       
    61         this.replacements = replacements;
       
    62         this.stampProvider = stampProvider;
       
    63     }
    51     }
    64 
    52 
    65     public Providers(Providers copyFrom) {
    53     public Providers(Providers copyFrom) {
    66         this(copyFrom.getMetaAccess(), copyFrom.getCodeCache(), copyFrom.getConstantReflection(), copyFrom.getConstantFieldProvider(), copyFrom.getForeignCalls(), copyFrom.getLowerer(),
    54         this(copyFrom.getMetaAccess(), copyFrom.getCodeCache(), copyFrom.getConstantReflection(), copyFrom.getConstantFieldProvider(), copyFrom.getForeignCalls(), copyFrom.getLowerer(),
    67                         copyFrom.getReplacements(), copyFrom.getStampProvider());
    55                         copyFrom.getReplacements(), copyFrom.getStampProvider());
    71         this(copyFrom.getMetaAccess(), null, copyFrom.getConstantReflection(), copyFrom.getConstantFieldProvider(), null, copyFrom.getLowerer(), copyFrom.getReplacements(),
    59         this(copyFrom.getMetaAccess(), null, copyFrom.getConstantReflection(), copyFrom.getConstantFieldProvider(), null, copyFrom.getLowerer(), copyFrom.getReplacements(),
    72                         copyFrom.getStampProvider());
    60                         copyFrom.getStampProvider());
    73     }
    61     }
    74 
    62 
    75     @Override
    63     @Override
    76     public MetaAccessProvider getMetaAccess() {
       
    77         return metaAccess;
       
    78     }
       
    79 
       
    80     @Override
       
    81     public CodeCacheProvider getCodeCache() {
    64     public CodeCacheProvider getCodeCache() {
    82         return codeCache;
    65         return codeCache;
    83     }
       
    84 
       
    85     @Override
       
    86     public ForeignCallsProvider getForeignCalls() {
       
    87         return foreignCalls;
       
    88     }
       
    89 
       
    90     public LoweringProvider getLowerer() {
       
    91         return lowerer;
       
    92     }
       
    93 
       
    94     @Override
       
    95     public ConstantReflectionProvider getConstantReflection() {
       
    96         return constantReflection;
       
    97     }
       
    98 
       
    99     public ConstantFieldProvider getConstantFieldProvider() {
       
   100         return constantFieldProvider;
       
   101     }
       
   102 
       
   103     public Replacements getReplacements() {
       
   104         return replacements;
       
   105     }
       
   106 
       
   107     public StampProvider getStampProvider() {
       
   108         return stampProvider;
       
   109     }
    66     }
   110 
    67 
   111     public Providers copyWith(MetaAccessProvider substitution) {
    68     public Providers copyWith(MetaAccessProvider substitution) {
   112         assert this.getClass() == Providers.class : "must override";
    69         assert this.getClass() == Providers.class : "must override";
   113         return new Providers(substitution, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, stampProvider);
    70         return new Providers(substitution, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, stampProvider);