RFR (S): 8014286: failed java/lang/Math/DivModTests.java after 6934604 changes

Christian Thalinger christian.thalinger at oracle.com
Mon May 13 13:40:37 PDT 2013


On May 13, 2013, at 1:28 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> Thanks, Christian
> 
> How about this?:
> 
> static bool is_init_with_ea(ciMethod* callee_method,
>                            ciMethod* caller_method, Compile* C) {
>  if (!C->do_escape_analysis() || !EliminateAllocations) {
>    return false; // EA is off
>  }
>  if (callee_method->is_initializer()) {
>    return true;
>  }
>  if (caller_method->is_initializer() &&
>      caller_method != C->method() &&
>      caller_method->holder()->is_subclass_of(callee_method->holder())) {
>    return true; // super constructor is called from inlined constructor
>  }
>  if (C->eliminate_boxing() && callee_method->is_boxing_method()) {
>    return true;
>  }
>  return false;
> }

Much better.  Thank you.

-- Chris

> 
> Vladimir
> 
> On 5/13/13 12:36 PM, Christian Thalinger wrote:
>> Looks good.  Just one comment:  could we change is_init_with_ea to have some if statements returning true and false?  It has almost reached its maximum complexity.
>> 
>> -- Chris
>> 
>> On May 10, 2013, at 5:36 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>> 
>>> http://cr.openjdk.java.net/~kvn/8014286/webrev/
>>> 
>>> Corrected escape state for the result of boxing method. Returned object escapes if it is loaded from boxing cache.
>>> Also added force inlining executed boxing methods.
>>> 
>>> Tested with jprt, compiler jtreg, jdk/testjava/lang/Math (-Xcomp) tests.
>>> 
>>> Thanks,
>>> Vladimir
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 



More information about the hotspot-compiler-dev mailing list