Skip to content

Commit fcdaa68

Browse files
committed
[GR-41885] Fold assumption checks for profiling and tracing into one.
PullRequest: graalpython/2702
2 parents bdfd99d + 6ffaae1 commit fcdaa68

File tree

2 files changed

+118
-93
lines changed

2 files changed

+118
-93
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/function/AbstractFunctionBuiltins.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070
import com.oracle.graal.python.nodes.object.GetOrCreateDictNode;
7171
import com.oracle.graal.python.nodes.object.SetDictNode;
7272
import com.oracle.graal.python.runtime.exception.PException;
73-
import com.oracle.truffle.api.CompilerDirectives;
7473
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
7574
import com.oracle.truffle.api.dsl.Bind;
7675
import com.oracle.truffle.api.dsl.Cached;
@@ -158,21 +157,24 @@ abstract static class GetModuleNode extends PythonBuiltinNode {
158157
@Specialization(guards = {"!isBuiltinFunction(self)", "isNoValue(none)"})
159158
static Object getModule(VirtualFrame frame, PFunction self, @SuppressWarnings("unused") PNone none,
160159
@Cached ReadAttributeFromObjectNode readObject,
160+
@Cached ReadAttributeFromObjectNode readGlobals,
161161
@Cached PyObjectGetItem getItem,
162162
@Cached.Shared("writeObject") @Cached WriteAttributeToObjectNode writeObject) {
163163
Object module = readObject.execute(self, T___MODULE__);
164164
if (module == PNone.NO_VALUE) {
165-
CompilerDirectives.transferToInterpreter();
166165
PythonObject globals = self.getGlobals();
167166
// __module__: If module name is in globals, use it. Otherwise, use None.
168-
try {
169-
if (globals instanceof PythonModule) {
170-
module = globals.getAttribute(T___NAME__);
171-
} else {
167+
if (globals instanceof PythonModule) {
168+
module = readGlobals.execute(globals, T___NAME__);
169+
if (module == PNone.NO_VALUE) {
170+
module = PNone.NONE;
171+
}
172+
} else {
173+
try {
172174
module = getItem.execute(frame, globals, T___NAME__);
175+
} catch (PException pe) {
176+
module = PNone.NONE;
173177
}
174-
} catch (PException pe) {
175-
module = PNone.NONE;
176178
}
177179
writeObject.execute(self, T___MODULE__, module);
178180
}

0 commit comments

Comments
 (0)