Skip to content

Commit 624f72e

Browse files
committed
Use CompilerDirectives.mergeExplodeKey in Espresso
1 parent d7a1e98 commit 624f72e

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/nodes/BytecodeNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,7 @@ private Object executeBodyFromBCI(VirtualFrame frame, int startBCI, int startTop
755755
livenessAnalysis.onStart(frame, skipLivenessActions);
756756
}
757757

758+
curBCI = CompilerDirectives.mergeExplodeKey(curBCI);
758759
loop: while (true) {
759760
final int curOpcode = bs.opcode(curBCI);
760761
EXECUTED_BYTECODES_COUNT.inc();

truffle/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ This changelog summarizes major changes between Truffle versions relevant to lan
6161
* GR-71088 Added `CompilerDirectives.EarlyEscapeAnalysis` annotation that runs partial escape analysis early before partial evaluation enabling partial-evaluation-constant scalar replacements.
6262
* GR-71870 Truffle DSL no longer supports mixed exclusive and shared inlined caches. Sharing will now be disabled if mixing was used. To resolve the new warnings it is typically necessary to use either `@Exclusive` or `@Shared` for all caches.
6363
* GR-71887: Bytecode DSL: Added a `ClearLocal` operation for fast clearing of local values.
64-
* GR-71088 Added `CompilerDirectives.EarlyEscapeAnalysis` annotation that runs partial escape analysis early before partial evaluation enabling partial-evaluation-constant scalar replacements.
6564
* GR-71402: Added `InteropLibrary#isHostObject` and `InteropLibrary#asHostObject` for accessing the Java host-object representation of a Truffle guest object. Deprecated `Env#isHostObject`, `Env#isHostException`, `Env#isHostFunction`, `Env#isHostSymbol`, `Env#asHostObject`, and `Env#asHostException` in favor of the new InteropLibrary messages.
6665
* GR-71402: Added `InteropLibrary#hasStaticScope` and `InteropLibrary#getStaticScope` returning the static scope representing static or class-level members associated with the given meta object.
66+
* GR-71613: Added `CompilerDirectives.mergeExplodeKey` method for explicitly marking a local variable as a key for `@ExplodeLoop(MERGE_EXPLODE)` methods. It is recommended to migrate all merge exploded loops to use this method to catch unintended graph size explosions.
6767

6868

6969
## Version 25.0

0 commit comments

Comments
 (0)