RFR(XS): 8054530: C2: assert(res == old_res) failed: Inconsistency between old and new

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Aug 13 19:48:16 UTC 2014


Good.

Thanks,
Vladimir

On 8/13/14 11:56 AM, Morris Meyer wrote:
> David and Vladimir,
>
> Thanks for the review.   Here is a newer version that has those changes
> and has been tested with JPRT.
>
>          --morris
>
> WEBREV - http://cr.openjdk.java.net/~morris/8054530.02
> JBS - http://bugs.openjdk.java.net/browse/JDK-8054530
>
> On 8/13/14, 1:36 PM, Vladimir Kozlov wrote:
>> On 8/13/14 10:20 AM, David Chase wrote:
>>> Minor nit, would you consider moving the assignment to “res” up above
>>> the #ifdef ASSERT,
>>> and then sucking the assert(res == old_res) inside the #ifdef
>>> ASSERT/#endif ?
>>> That way the apparent reference to “old_res” occurs within the same
>>> ifdef that defines it,
>>> even though we know that (right now, at least) assert is a macro that
>>> makes its first
>>> parameter go away if ASSERT is not defined.
>>>
>>> And could HeapWordsPerOop also be unsigned?
>>
>> +1
>>
>> Vladimir
>>
>>>
>>> David
>>>
>>> On 2014-08-13, at 12:48 PM, Morris Meyer <morris.meyer at oracle.com>
>>> wrote:
>>>
>>>> Folks,
>>>>
>>>> Could I get a review for this issue?  On Linux-SparcV9 7u72 with Gcc
>>>> 4.4 compilers (circa 2010), the asserted calculation leaves the high
>>>> order bit set in the variable old_res, which causes the bug.
>>>> align_size_up() calls for size_t and fixing array_size(int length)
>>>> to properly pass unsigned ints fixes this issue.
>>>>
>>>> This patch has been tested with JPRT against 7u-dev repositories.
>>>>
>>>> Thanks,
>>>>
>>>>         --morris
>>>>
>>>>
>>>> WEBREV - http://cr.openjdk.java.net/~morris/8054530.01/
>>>> JBS - http://bugs.openjdk.java.net/browse/JDK-8054530
>>>
>


More information about the hotspot-compiler-dev mailing list