RFR (S): 8014286: failed java/lang/Math/DivModTests.java after 6934604 changes
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon May 13 13:54:45 PDT 2013
Thanks,
Vladimir
On 5/13/13 1:40 PM, Christian Thalinger wrote:
>
> 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