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