RFR: 8374582: [REDO] Move input validation checks to Java for java.lang.StringCoding intrinsics [v10]
Christian Hagedorn
chagedorn at openjdk.org
Mon Feb 2 13:28:57 UTC 2026
On Mon, 2 Feb 2026 12:10:48 GMT, Damon Fenacci <dfenacci at openjdk.org> wrote:
>> src/hotspot/share/opto/opaquenode.hpp line 150:
>>
>>> 148: bool _constant;
>>> 149: public:
>>> 150: OpaqueConstantBoolNode(Compile* C, Node* tst, bool constant) : Node(nullptr, tst), _constant(constant) {
>>
>> An alternative would be to have the `constant` be an actual input node instead of a field. In macro expansion, you could then do `_igvn.replace_node(n, n->in(2));` instead (maybe define an enum for the input indices). I don't have a strong opinion on this though and leave it up to you to decide 🙂
>
> Cool trick! 😃... but now I can't decide between the two 😆 @chhagedorn do you fancy being the tiebreaker?
The old `Opaque4` nodes used to have two data inputs where the second one was the replacement. I found it a little harder to view graphs in IGV with one more input. You also do not need to worry about trying to understand what the second input means. So, I would rather have a field if I may break the tie but both options are fine :-)
When going with a field, you could add a
NOT_PRODUCT(void dump_spec(outputStream* st) const);
that prints `#true` or `#false` depending on `_constant` (that could also then be shown in IGV with the "Show custom node info").
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29164#discussion_r2754324868
More information about the hotspot-dev
mailing list