RFR: 8281732: add assert for non-NULL assumption for return of unique_ctrl_out [v3]

Tobias Hartmann thartmann at openjdk.java.net
Wed Feb 16 07:56:11 UTC 2022


On Tue, 15 Feb 2022 07:29:47 GMT, Emanuel Peter <duke at openjdk.java.net> wrote:

>> unique_ctrl_out was used in contexts where NULL may be a valid return, and is also used in contexts where NULL is not expected.
>> 
>> I improved the code by having two functions instead:
>> unique_ctrl_out_or_null: return the unique control out, or NULL if there is no or more than one control out.
>> unique_ctrl_out: return the unique control out, assert if there is no or more than one control out.
>> 
>> This makes implicit assumptions explicit and also validates them in the future.
>> 
>> I changed the usage to unique_ctrl_out_or_null where NULL is among the expected return values.
>> 
>> Ran tests to verify that the assert never triggers.
>
> Emanuel Peter has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Require non-Null in some more cases

Looks good to me otherwise.

src/hotspot/share/opto/node.cpp line 2411:

> 2409:     Node* ctrl = unique_ctrl_out_or_null();
> 2410:     assert(ctrl != NULL, "control out is assumed to be unique");
> 2411:     return ctrl;

Suggestion:

  Node* ctrl = unique_ctrl_out_or_null();
  assert(ctrl != NULL, "control out is assumed to be unique");
  return ctrl;

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

Marked as reviewed by thartmann (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7462


More information about the hotspot-compiler-dev mailing list