RFR: 8356328: Some C2 IR nodes miss size_of() function [v2]

Tobias Hartmann thartmann at openjdk.org
Thu May 8 06:54:02 UTC 2025


On Wed, 7 May 2025 08:27:54 GMT, kuaiwei <duke at openjdk.org> wrote:

>> I wrote a test to check if every C2 IR node has correct size_of() function. And I found some of them are missed. They added new fields and not add size_of() to reflect new size. In linux, it does not cause issue so far, because gcc allocate more space for alignment and can keep these additional `bool` flags. But it will report failure on windows. And if anyone modified base class, it will cause problem.
>> 
>> PS, My test is in https://github.com/openjdk/jdk/compare/master...kuaiwei:jdk:test/check_node_size , but it has many hack on IR nodes to make test to run.
>
> kuaiwei has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add missing size_of() in machnode.hpp

src/hotspot/share/opto/intrinsicnode.hpp line 201:

> 199:   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
> 200:   virtual const Type* Value(PhaseGVN* phase) const;
> 201:   virtual uint size_of() const { return sizeof(EncodeISOArrayNode); }

Shouldn't nodes that define fields also override `Node::cmp` and `Node::hash`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25081#discussion_r2079015217


More information about the hotspot-compiler-dev mailing list