Skip to content

Commit 3bec5b4

Browse files
committed
integrate new source section & continuation changes; skip short circuit op for unary compare operations
1 parent 012a050 commit 3bec5b4

File tree

4 files changed

+128
-125
lines changed

4 files changed

+128
-125
lines changed

Diff for: graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code/CodeBuiltins.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
import com.oracle.graal.python.lib.PyObjectGetIter;
5959
import com.oracle.graal.python.lib.PyObjectHashNode;
6060
import com.oracle.graal.python.nodes.PGuards;
61-
import com.oracle.graal.python.nodes.bytecode.PBytecodeRootNode;
6261
import com.oracle.graal.python.nodes.bytecode_dsl.PBytecodeDSLRootNode;
6362
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
6463
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
@@ -310,10 +309,10 @@ static Object lines(PCode self) {
310309
CodeUnit co = self.getCodeUnit();
311310
if (co != null) {
312311
if (PythonOptions.ENABLE_BYTECODE_DSL_INTERPRETER) {
313-
BytecodeIntrospection introspectionData = ((PBytecodeDSLRootNode) self.getRootNode()).getIntrospectionData();
312+
BytecodeIntrospection introspectionData = ((PBytecodeDSLRootNode) self.getRootNodeForExtraction()).getIntrospectionData();
314313
List<PTuple> lines = new ArrayList<>();
315314
for (SourceInformation sourceInfo : introspectionData.getSourceInformation()) {
316-
lines.add(factory.createTuple(new int[]{sourceInfo.getStartBci(), sourceInfo.getEndBci(), sourceInfo.getSourceSection().getStartLine()}));
315+
lines.add(factory.createTuple(new int[]{sourceInfo.getBeginBci(), sourceInfo.getEndBci(), sourceInfo.getSourceSection().getStartLine()}));
317316
}
318317
tuple = factory.createTuple(lines.toArray());
319318
} else {
@@ -354,7 +353,7 @@ Object positions(PCode self) {
354353
if (co != null) {
355354
List<PTuple> lines = new ArrayList<>();
356355
if (PythonOptions.ENABLE_BYTECODE_DSL_INTERPRETER) {
357-
PBytecodeDSLRootNode rootNode = (PBytecodeDSLRootNode) self.getRootNode();
356+
PBytecodeDSLRootNode rootNode = (PBytecodeDSLRootNode) self.getRootNodeForExtraction();
358357
for (Instruction instruction : rootNode.getIntrospectionData().getInstructions()) {
359358
SourceSection section = rootNode.getSourceSectionForLocation(instruction.getLocation());
360359
lines.add(factory.createTuple(new int[]{

Diff for: graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code/PCode.java

+4
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@ RootNode getRootNode() {
429429
return getRootCallTarget().getRootNode();
430430
}
431431

432+
RootNode getRootNodeForExtraction() {
433+
return rootNodeForExtraction(getRootNode());
434+
}
435+
432436
public TruffleString[] getFreeVars() {
433437
if (freevars == null) {
434438
freevars = extractFreeVars(getRootNode());

Diff for: graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/generator/GeneratorBuiltins.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
6060
import com.oracle.graal.python.runtime.PythonOptions;
6161
import com.oracle.graal.python.runtime.object.PythonObjectFactory;
62-
import com.oracle.truffle.api.bytecode.BytecodeNode;
62+
import com.oracle.truffle.api.bytecode.BytecodeLocation;
6363
import com.oracle.truffle.api.bytecode.ContinuationResult;
6464
import com.oracle.truffle.api.dsl.Bind;
6565
import com.oracle.truffle.api.dsl.Cached;
@@ -197,11 +197,11 @@ static Object getFrame(PGenerator self,
197197
BytecodeDSLFrameInfo info = (BytecodeDSLFrameInfo) generatorFrame.getFrameDescriptor().getInfo();
198198
PBytecodeDSLRootNode rootNode = info.getRootNode();
199199
ContinuationResult continuation = self.getContinuation();
200-
BytecodeNode bytecodeNode = continuation.getBytecodeNode();
201-
PFrame frame = MaterializeFrameNode.materializeGeneratorFrame(bytecodeNode, generatorFrame, PFrame.Reference.EMPTY, factory);
202-
int bci = continuation.getBci();
200+
BytecodeLocation location = continuation.getBytecodeLocation();
201+
PFrame frame = MaterializeFrameNode.materializeGeneratorFrame(location.getBytecodeNode(), generatorFrame, PFrame.Reference.EMPTY, factory);
202+
int bci = location.getBytecodeIndex();
203203
frame.setBci(bci);
204-
frame.setLine(rootNode.bciToLine(bci, bytecodeNode));
204+
frame.setLine(rootNode.bciToLine(bci, location.getBytecodeNode()));
205205
return frame;
206206
} else {
207207
BytecodeFrameInfo info = (BytecodeFrameInfo) generatorFrame.getFrameDescriptor().getInfo();

0 commit comments

Comments
 (0)