RFR: 8346774: Use Predicate classes instead of Node classes

Emanuel Peter epeter at openjdk.org
Mon Feb 3 09:44:54 UTC 2025


On Mon, 3 Feb 2025 09:35:06 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> This small cleanup PR replaces a lot of usages of `Node` pointers, to pass around either the head (i.e. `IfNode`) or the tail (i.e. a success projection) of predicates, with actual `Predicate` classes. This simplifies the usages, readability and the logical flow, and enables more simplifications in the future, especially once we replace Template Assertion Predicates with a dedicated node.
>> 
>> I've also included some minor refactorings like adding `const` or fixing typos.
>> 
>> There are no semantic changes involved. The return value optimization should take care to avoid a lot of copies when returning new objects from methods. 
>> 
>> Thanks,
>> Christian
>
> src/hotspot/share/opto/predicates.cpp line 813:
> 
>> 811:                                                    assertion_expression,
>> 812:                                                    template_assertion_predicate->assertion_predicate_type());
>> 813:   return InitializedAssertionPredicate(success_proj);
> 
> Suggestion:
> 
>   IfTrueNode* success_proj = create_control_nodes(new_control,
>                                                   template_assertion_predicate->Opcode(),
>                                                   assertion_expression,
>                                                   template_assertion_predicate->assertion_predicate_type());
>   return InitializedAssertionPredicate(success_proj);

Indentation, and: If you split the args over lines, I would at least split all of them consistently.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23234#discussion_r1939067078


More information about the hotspot-compiler-dev mailing list