RFR: 8350864: C2: verify structural invariants of the Ideal graph [v3]

Marc Chevalier mchevalier at openjdk.org
Thu Sep 4 08:49:44 UTC 2025


On Mon, 25 Aug 2025 13:44:27 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> src/hotspot/share/opto/phaseX.hpp line 615:
>> 
>>> 613:   Node* _verify_window[_verify_window_size];
>>> 614:   void verify_step(Node* n);
>>> 615:   GraphInvariantChecker* _invariant_checker;
>> 
>> Why do you allocate it separately, and not have it in-place?
>
> Is there only a single PhaseIterGVN per compilation? I forgot. An alternative would be to allocate it at the level of the compilation.

> Why do you allocate it separately, and not have it in-place?

So that I can forward declare `GraphInvariantChecker` so I won't leak a non-trivial header everywhere through a widely included header.

> Is there only a single PhaseIterGVN per compilation? I forgot. An alternative would be to allocate it at the level of the compilation.

Not quite, indeed.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26362#discussion_r2321310336


More information about the hotspot-compiler-dev mailing list