Skip to content

Commit bd3e544

Browse files
committed
Rename to FinalAttributeAssumptionPair
1 parent 27c88bd commit bd3e544

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/attributes/LookupAttributeInMRONode.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
import com.oracle.graal.python.runtime.PythonOptions;
5757
import com.oracle.graal.python.runtime.exception.StacktracelessCheckedException;
5858
import com.oracle.graal.python.runtime.sequence.storage.MroSequenceStorage;
59-
import com.oracle.graal.python.runtime.sequence.storage.MroSequenceStorage.FinalAttributeAssumptionNode;
6059
import com.oracle.truffle.api.Assumption;
6160
import com.oracle.truffle.api.CompilerAsserts;
6261
import com.oracle.truffle.api.CompilerDirectives;
@@ -201,21 +200,21 @@ public MROChangedException(Object result) {
201200
}
202201
}
203202

204-
FinalAttributeAssumptionNode findAttrAndAssumptionInMRO(Object klass) throws MROChangedException {
203+
MroSequenceStorage.FinalAttributeAssumptionPair findAttrAndAssumptionInMRO(Object klass) throws MROChangedException {
205204
CompilerAsserts.neverPartOfCompilation();
206205
// Regarding potential side effects to MRO caused by __eq__ of the keys in the dicts that we
207206
// search through: CPython seems to read the MRO once and then compute the result also
208207
// ignoring the side effects. Moreover, CPython has lookup cache, so the side effects
209208
// may or may not be visible during subsequent lookups. We want to avoid triggering the side
210209
// effects twice
211210
MroSequenceStorage mro = GetMroStorageNode.executeUncached(klass);
212-
FinalAttributeAssumptionNode assumptionNode = mro.getFinalAttributeAssumption(key);
211+
MroSequenceStorage.FinalAttributeAssumptionPair assumptionNode = mro.getFinalAttributeAssumption(key);
213212
if (assumptionNode != null) {
214213
return assumptionNode;
215214
}
216215
// Put a new assumption in place in case the MRO changes during the lookup
217-
FinalAttributeAssumptionNode node = new FinalAttributeAssumptionNode();
218-
mro.putFinalAttributeAssumption(key, node);
216+
MroSequenceStorage.FinalAttributeAssumptionPair assumptionPair = new MroSequenceStorage.FinalAttributeAssumptionPair();
217+
mro.putFinalAttributeAssumption(key, assumptionPair);
219218
Object result = PNone.NO_VALUE;
220219
for (int i = 0; i < mro.length(); i++) {
221220
PythonAbstractClass clsObj = mro.getPythonClassItemNormalized(i);
@@ -228,13 +227,13 @@ FinalAttributeAssumptionNode findAttrAndAssumptionInMRO(Object klass) throws MRO
228227
break;
229228
}
230229
}
231-
if (node.getAssumption() == null) {
230+
if (assumptionPair.getAssumption() == null) {
232231
// MRO changed during lookup. To avoid reexecuting the side-effects, return via
233232
// exception. This should abort the specialization
234233
throw new MROChangedException(result);
235234
}
236-
node.setValue(result);
237-
return node;
235+
assumptionPair.setValue(result);
236+
return assumptionPair;
238237
}
239238

240239
@Specialization(guards = {"isSingleContext()", "isSameTypeNode.execute(inliningTarget, cachedKlass, klass)", "cachedAttrInMROInfo.getAssumption() != null"}, //
@@ -244,7 +243,7 @@ static Object lookupConstantMROCached(Object klass,
244243
@Bind Node inliningTarget,
245244
@Cached("klass") Object cachedKlass,
246245
@Cached IsSameTypeNode isSameTypeNode,
247-
@Cached("findAttrAndAssumptionInMRO(cachedKlass)") FinalAttributeAssumptionNode cachedAttrInMROInfo) {
246+
@Cached("findAttrAndAssumptionInMRO(cachedKlass)") MroSequenceStorage.FinalAttributeAssumptionPair cachedAttrInMROInfo) {
248247
return cachedAttrInMROInfo.getValue();
249248
}
250249

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/MroSequenceStorage.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ public final class MroSequenceStorage extends ArrayBasedSequenceStorage {
6767
* These assumptions will be invalidated whenever the value of the given slot changes. All
6868
* assumptions will be invalidated if the mro changes.
6969
*/
70-
private Map<TruffleString, FinalAttributeAssumptionNode> attributesInMROFinalAssumptions;
70+
private Map<TruffleString, FinalAttributeAssumptionPair> attributesInMROFinalAssumptions;
7171

72-
public static final class FinalAttributeAssumptionNode {
72+
public static final class FinalAttributeAssumptionPair {
7373
@CompilationFinal private Assumption assumption;
7474
@CompilationFinal private Object value;
7575

76-
public FinalAttributeAssumptionNode() {
76+
public FinalAttributeAssumptionPair() {
7777
this.assumption = Truffle.getRuntime().createAssumption("attribute in MRO final");
7878
}
7979

@@ -182,36 +182,36 @@ public Assumption getLookupStableAssumption() {
182182
return lookupStableAssumption.getAssumption();
183183
}
184184

185-
public FinalAttributeAssumptionNode getFinalAttributeAssumption(TruffleString name) {
185+
public FinalAttributeAssumptionPair getFinalAttributeAssumption(TruffleString name) {
186186
CompilerAsserts.neverPartOfCompilation();
187187
if (attributesInMROFinalAssumptions != null) {
188188
return attributesInMROFinalAssumptions.get(name);
189189
}
190190
return null;
191191
}
192192

193-
public void putFinalAttributeAssumption(TruffleString name, FinalAttributeAssumptionNode node) {
193+
public void putFinalAttributeAssumption(TruffleString name, FinalAttributeAssumptionPair assumptionPair) {
194194
CompilerAsserts.neverPartOfCompilation();
195195
if (attributesInMROFinalAssumptions == null) {
196196
attributesInMROFinalAssumptions = new HashMap<>();
197197
}
198198
assert attributesInMROFinalAssumptions.get(name) == null;
199-
attributesInMROFinalAssumptions.put(name, node);
199+
attributesInMROFinalAssumptions.put(name, assumptionPair);
200200
}
201201

202202
public void invalidateFinalAttributeAssumption(TruffleString name) {
203203
CompilerAsserts.neverPartOfCompilation();
204-
FinalAttributeAssumptionNode node = getFinalAttributeAssumption(name);
205-
if (node != null) {
206-
node.invalidate();
204+
FinalAttributeAssumptionPair assumptionPair = getFinalAttributeAssumption(name);
205+
if (assumptionPair != null) {
206+
assumptionPair.invalidate();
207207
}
208208
}
209209

210210
public void lookupChanged() {
211211
CompilerAsserts.neverPartOfCompilation();
212212
if (attributesInMROFinalAssumptions != null) {
213-
for (FinalAttributeAssumptionNode node : attributesInMROFinalAssumptions.values()) {
214-
node.invalidate();
213+
for (FinalAttributeAssumptionPair assumptionPair : attributesInMROFinalAssumptions.values()) {
214+
assumptionPair.invalidate();
215215
}
216216
}
217217
lookupStableAssumption.invalidate();

0 commit comments

Comments
 (0)