bytecode: extend call args and cache call sites

This commit is contained in:
sergeych committed 2026-01-26 06:33:15 +03:00
1 parent 144082733c
commit 2f4462858b
13 files changed
+400 -39

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
# Bytecode method call-site cache
Changes
- Added per-thread bytecode method call-site caches via BytecodeCallSiteCache expect/actuals.
- Bytecode VM now reuses per-function call-site maps to preserve method PIC hits across repeated bytecode executions.
- Removed unused methodCallSites property from BytecodeFunction.
Why
- Fixes JVM PIC invalidation test by allowing method PIC hits when bytecode bodies are invoked repeatedly (e.g., loop bodies compiled to bytecode statements).
- Avoids cross-thread mutable map sharing on native by using thread-local storage.
Tests
- ./gradlew :lynglib:jvmTest
- ./gradlew :lynglib:allTests -x :lynglib:jvmTest
Benchmark
- ./gradlew :lynglib:jvmTest --tests NestedRangeBenchmarkTest -Dbenchmarks=true
- nested-happy elapsed=1266 ms