JDK-8361492 : [IR Framework] Has too restrictive regex for load and store
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 26
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2025-07-07
  • Updated: 2025-09-24
  • Resolved: 2025-07-14
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.
JDK 26
26 b07Fixed
Related Reports
Relates :  
Description
With
```
interface I {}
class C implements I {
    public int i = 0;
}
```
and
```
    static C c = new C();
    @Test
    @IR(counts = {IRNode.LOAD_OF_CLASS, "GoodCountC", "1"})
    public int good12() {
        return c.i;
    }
```
We get

 45  LoadI  === 34 7 44  [[ 46 ]]  @ir_framework/tests/C (ir_framework/tests/I)+12 *, name=i, idx=5; #int !jvms: GoodCount::good12 @ bci:3 (line 850)

Which doesn't match the regex

(\d+(\s){2}(Load(B|UB|S|US|I|L|F|D|P|N).*)+(\s){2}===.*@\S*GoodCountC(:|\+)\S* \*)

In particular, interfaces are not skipped. We also have problems with narrowoops because of the space after the colon in
```
void TypeNarrowOop::dump2( Dict & d, uint depth, outputStream *st ) const {
  st->print("narrowoop: ");
  TypeNarrowPtr::dump2(d, depth, st);
}
```

Comments
A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk25u/pull/110 Date: 2025-08-20 05:39:14 +0000
20-08-2025

Changeset: ebb10958 Branch: master Author: Marc Chevalier <mchevalier@openjdk.org> Date: 2025-07-14 13:37:19 +0000 URL: https://git.openjdk.org/jdk/commit/ebb1095805579f8f32a81bb350198fa1b7add9eb
14-07-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/26269 Date: 2025-07-11 16:56:16 +0000
11-07-2025

ILW = Limited matching of composite regexes, only for new tests, no workaround = LLH = P4
08-07-2025