RFR: 8240615: is_power_of_2() has Undefined Behaviour and is inconsistent

Stuart Monteith stuart.monteith at arm.com
Wed Mar 11 13:53:54 UTC 2020


Look good, tests ok on aarch64. However, the case for "0" isn't passed
in the test, or handled by the function. Is "count_leading_zeros"
sufficiently well defined that we can expect it to produce "64" or "32"
in this case, or should there be an assertion in exact_log2* to trip
when 0 is passed?


On 10/03/2020 15:04, Andrew Haley wrote:
> On 3/9/20 12:20 PM, Stefan Karlsson wrote:
>> On 2020-03-09 11:54, Andrew Haley wrote:
>>> So, my plan is to push http://cr.openjdk.java.net/~aph/8240615-1/ and
>>> subsequently patch a few AArch64 cases plus the x86_64 immL_Pow2 and
>>> immL_NotPow2 cases that we already identified.
>>>
>>> I do not intend to do bulk changes to any other clients of
>>> is_power_of_2() because it's often unclear exactly what behaviour is
>>> required, and I'd risk breaking something.
>>>
>>> OK?
>>
>> I would prefer if the x86_64 and aarch64 patches were pushed first, or 
>> folded into this patch. Otherwise, we knowingly introduce a regression 
>> by pushing the proposed patch above. However, I'll leave it up to the 
>> compiler devs/maintainers to decide if this is OK.
> 
>  http://cr.openjdk.java.net/~aph/8240615-2/
> 
> OK?
> 



More information about the hotspot-runtime-dev mailing list