Skip to content

Commit b26251a

Browse files
author
Christian Wimmer
committed
[GR-42996] Make SnippetReflectionProvider available in CoreProviders.
PullRequest: graal/14145
2 parents 3bc96c2 + a974545 commit b26251a

File tree

4 files changed

+93
-147
lines changed

4 files changed

+93
-147
lines changed

compiler/src/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/CoreProviders.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
package org.graalvm.compiler.nodes.spi;
2626

27+
import org.graalvm.compiler.api.replacements.SnippetReflectionProvider;
2728
import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
2829
import org.graalvm.compiler.core.common.spi.ForeignCallsProvider;
2930
import org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider;
@@ -55,4 +56,5 @@ public interface CoreProviders {
5556

5657
WordVerification getWordVerification();
5758

59+
SnippetReflectionProvider getSnippetReflection();
5860
}

compiler/src/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/CoreProvidersDelegate.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
package org.graalvm.compiler.nodes.spi;
2626

27+
import org.graalvm.compiler.api.replacements.SnippetReflectionProvider;
2728
import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
2829
import org.graalvm.compiler.core.common.spi.ForeignCallsProvider;
2930
import org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider;
@@ -97,4 +98,9 @@ public LoopsDataProvider getLoopsDataProvider() {
9798
public WordVerification getWordVerification() {
9899
return providers.getWordVerification();
99100
}
101+
102+
@Override
103+
public SnippetReflectionProvider getSnippetReflection() {
104+
return providers.getSnippetReflection();
105+
}
100106
}

compiler/src/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/CoreProvidersImpl.java

Lines changed: 0 additions & 135 deletions
This file was deleted.

compiler/src/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/Providers.java

Lines changed: 85 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@
2929
import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
3030
import org.graalvm.compiler.core.common.spi.ForeignCallsProvider;
3131
import org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider;
32-
import org.graalvm.compiler.nodes.spi.CoreProvidersImpl;
32+
import org.graalvm.compiler.nodes.spi.CoreProviders;
3333
import org.graalvm.compiler.nodes.spi.LoopsDataProvider;
3434
import org.graalvm.compiler.nodes.spi.LoweringProvider;
3535
import org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider;
3636
import org.graalvm.compiler.nodes.spi.Replacements;
3737
import org.graalvm.compiler.nodes.spi.StampProvider;
38-
import org.graalvm.compiler.word.WordVerificationImpl;
38+
import org.graalvm.compiler.nodes.spi.WordVerification;
3939
import org.graalvm.compiler.word.WordTypes;
40+
import org.graalvm.compiler.word.WordVerificationImpl;
4041

4142
import jdk.vm.ci.code.CodeCacheProvider;
4243
import jdk.vm.ci.meta.ConstantReflectionProvider;
@@ -45,18 +46,37 @@
4546
/**
4647
* A set of providers, some of which may not be present (i.e., null).
4748
*/
48-
public class Providers extends CoreProvidersImpl implements CodeGenProviders {
49-
50-
private final CodeCacheProvider codeCache;
49+
public class Providers implements CoreProviders, CodeGenProviders {
5150

52-
private final SnippetReflectionProvider snippetReflection;
53-
private final WordTypes wordTypes;
51+
protected final MetaAccessProvider metaAccess;
52+
protected final ConstantReflectionProvider constantReflection;
53+
protected final ConstantFieldProvider constantFieldProvider;
54+
protected final LoweringProvider lowerer;
55+
protected final Replacements replacements;
56+
protected final StampProvider stampProvider;
57+
protected final ForeignCallsProvider foreignCalls;
58+
protected final PlatformConfigurationProvider platformConfigurationProvider;
59+
protected final MetaAccessExtensionProvider metaAccessExtensionProvider;
60+
protected final LoopsDataProvider loopsDataProvider;
61+
protected final WordVerification wordVerification;
62+
protected final CodeCacheProvider codeCache;
63+
protected final SnippetReflectionProvider snippetReflection;
64+
protected final WordTypes wordTypes;
5465

5566
public Providers(MetaAccessProvider metaAccess, CodeCacheProvider codeCache, ConstantReflectionProvider constantReflection, ConstantFieldProvider constantFieldProvider,
5667
ForeignCallsProvider foreignCalls, LoweringProvider lowerer, Replacements replacements, StampProvider stampProvider, PlatformConfigurationProvider platformConfigurationProvider,
5768
MetaAccessExtensionProvider metaAccessExtensionProvider, SnippetReflectionProvider snippetReflection, WordTypes wordTypes, LoopsDataProvider loopsDataProvider) {
58-
super(metaAccess, constantReflection, constantFieldProvider, lowerer, replacements, stampProvider, foreignCalls, platformConfigurationProvider, metaAccessExtensionProvider, loopsDataProvider,
59-
new WordVerificationImpl(wordTypes));
69+
this.metaAccess = metaAccess;
70+
this.constantReflection = constantReflection;
71+
this.constantFieldProvider = constantFieldProvider;
72+
this.lowerer = lowerer;
73+
this.replacements = replacements;
74+
this.stampProvider = stampProvider;
75+
this.foreignCalls = foreignCalls;
76+
this.platformConfigurationProvider = platformConfigurationProvider;
77+
this.metaAccessExtensionProvider = metaAccessExtensionProvider;
78+
this.loopsDataProvider = loopsDataProvider;
79+
this.wordVerification = new WordVerificationImpl(wordTypes);
6080
this.codeCache = codeCache;
6181
this.snippetReflection = snippetReflection;
6282
this.wordTypes = wordTypes;
@@ -68,11 +88,67 @@ public Providers(Providers copyFrom) {
6888
copyFrom.getSnippetReflection(), copyFrom.getWordTypes(), copyFrom.getLoopsDataProvider());
6989
}
7090

91+
@Override
92+
public MetaAccessProvider getMetaAccess() {
93+
return metaAccess;
94+
}
95+
96+
@Override
97+
public ConstantReflectionProvider getConstantReflection() {
98+
return constantReflection;
99+
}
100+
101+
@Override
102+
public ConstantFieldProvider getConstantFieldProvider() {
103+
return constantFieldProvider;
104+
}
105+
106+
@Override
107+
public LoweringProvider getLowerer() {
108+
return lowerer;
109+
}
110+
111+
@Override
112+
public Replacements getReplacements() {
113+
return replacements;
114+
}
115+
116+
@Override
117+
public StampProvider getStampProvider() {
118+
return stampProvider;
119+
}
120+
121+
@Override
122+
public ForeignCallsProvider getForeignCalls() {
123+
return foreignCalls;
124+
}
125+
126+
@Override
127+
public PlatformConfigurationProvider getPlatformConfigurationProvider() {
128+
return platformConfigurationProvider;
129+
}
130+
131+
@Override
132+
public MetaAccessExtensionProvider getMetaAccessExtensionProvider() {
133+
return metaAccessExtensionProvider;
134+
}
135+
136+
@Override
137+
public LoopsDataProvider getLoopsDataProvider() {
138+
return loopsDataProvider;
139+
}
140+
141+
@Override
142+
public WordVerification getWordVerification() {
143+
return wordVerification;
144+
}
145+
71146
@Override
72147
public CodeCacheProvider getCodeCache() {
73148
return codeCache;
74149
}
75150

151+
@Override
76152
public SnippetReflectionProvider getSnippetReflection() {
77153
return snippetReflection;
78154
}
@@ -81,21 +157,18 @@ public WordTypes getWordTypes() {
81157
return wordTypes;
82158
}
83159

84-
@Override
85160
public Providers copyWith(ConstantReflectionProvider substitution) {
86161
assert this.getClass() == Providers.class : "must override";
87162
return new Providers(metaAccess, codeCache, substitution, constantFieldProvider, foreignCalls, lowerer, replacements, stampProvider, platformConfigurationProvider, metaAccessExtensionProvider,
88163
snippetReflection, wordTypes, loopsDataProvider);
89164
}
90165

91-
@Override
92166
public Providers copyWith(ConstantFieldProvider substitution) {
93167
assert this.getClass() == Providers.class : "must override";
94168
return new Providers(metaAccess, codeCache, constantReflection, substitution, foreignCalls, lowerer, replacements, stampProvider, platformConfigurationProvider, metaAccessExtensionProvider,
95169
snippetReflection, wordTypes, loopsDataProvider);
96170
}
97171

98-
@Override
99172
public Providers copyWith(Replacements substitution) {
100173
assert this.getClass() == Providers.class : "must override in " + getClass();
101174
return new Providers(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, substitution, stampProvider, platformConfigurationProvider,

0 commit comments

Comments
 (0)