[Umbrella] Add more randomization to the JIT for stress testing

XMLWordPrintable

      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.

            Assignee:
            Saranya Natarajan
            Reporter:
            Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: