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

Morris Meyer morris.meyer at oracle.com
Wed Aug 13 18:56:20 UTC 2014


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