RFR: 8347018: C2: assert(find_block_for_node(self->in(0)) == early) failed: The home of a memory writer must also be its earliest placement

Christian Hagedorn chagedorn at openjdk.org
Tue Jan 14 17:52:51 UTC 2025


On Tue, 14 Jan 2025 17:42:44 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> I agree with deferring it to JDK 25 and backport into JDK 24 update release after some time.

Thanks for your feedback Vladimir! Then let's target this to JDK 25.

> src/hotspot/share/opto/predicates.hpp line 996:
> 
>> 994:   // Additionally check if a node was cloned after the pre loop was created. This indicates that it was created by
>> 995:   // PhaseIdealLoop::clone_up_backedge_goo(). These nodes should also be pinned at the main loop entry.
>> 996:   bool check(Node* node) const override {
> 
> Can it be more meaningful method's name? And I did not find where it is used.

Since the interface name is `NodeInLoopBody`, I went with `NodeInLoopBody::check()`. But could also rename it to `check_node_in_loop_body()` for better readability.

It is used here:
https://github.com/openjdk/jdk/blob/06ff4c17bdfab9e7aa323425cb18dfdc963aa972/src/hotspot/share/opto/predicates.cpp#L157

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

PR Comment: https://git.openjdk.org/jdk/pull/23071#issuecomment-2590711635
PR Review Comment: https://git.openjdk.org/jdk/pull/23071#discussion_r1915345112


More information about the hotspot-compiler-dev mailing list