JDK-8355466 : [Umbrella] Add more randomization to the JIT for stress testing
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 25
  • Priority: P2
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2025-04-24
  • Updated: 2025-10-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8366571 :  
Description
Our existing stress flags that introduce randomization (StressIGVN, StressCCP, ...) proved to be valuable in finding bugs. We should add more.

Here's a collection of ideas:
- Inline random methods: At each call side, randomly select a method from any class with a signature + receiver that fits and inline it (compilation only, no execution)
- Randomized call injection with forced inlining (just sprinkle some more calls to random methods into code, compilation only, no execution)
- JDK-8366571 Randomized profile information gathered by the interpreter and C1 (this is especially powerful with CTW and RepeatCompilation)
- Randomly disable inlining (randomize bailouts in InlineTree::should_not_inline and similar methods)
- Randomly disable processor capabilities, or even add full unsafe control over CPU capabilities
- Randomize register allocation heuristics (what to spill, what registers to assign - see JDK-8343294, etc.) and matching
- Randomize Node::_in/_out arrays to randomize graph walks ([~epeter]'s idea)
- Randomize the compile queue orders

See also the linked issues.