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 [v2]

Vladimir Kozlov kvn at openjdk.org
Tue Jan 14 18:52:39 UTC 2025


On Tue, 14 Jan 2025 17:48:50 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

>> 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. Pushed an update.
> 
> It is used here:
> https://github.com/openjdk/jdk/blob/06ff4c17bdfab9e7aa323425cb18dfdc963aa972/src/hotspot/share/opto/predicates.cpp#L157

I was confused because it was not use in changes but I now see that it is virtual method.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23071#discussion_r1915436626


More information about the hotspot-compiler-dev mailing list