Graal inlining and AOT
Doug Simon
doug.simon at oracle.com
Tue Apr 10 21:20:31 UTC 2018
Fix is now merged: https://github.com/oracle/graal/commit/6753a2bab08cf7cf77decec8d5e8bc730f32336a
> On 10 Apr 2018, at 17:52, Aleksandar Prokopec <aleksandar.prokopec at oracle.com> wrote:
>
> Hi again,
>
> These are the likely culprits:
>
> https://github.com/oracle/graal/commit/b63f888b2b078b2117d58f238aae8b0bc1010c56#diff-065f0abcad38ed3f93120782c0f2cec0L70
> https://github.com/oracle/graal/commit/b63f888b2b078b2117d58f238aae8b0bc1010c56#diff-065f0abcad38ed3f93120782c0f2cec0L109
>
> I will submit a PR with a fix.
>
> Thanks,
> Alex
>
> On 10.04.2018 17:50, Aleksandar Prokopec wrote:
>> Hi Andrew,
>>
>> I guess that this behavior depends on the AOTInliningPolicy in the basic Graal. If so, it might be that my recent refactorings there changed something. I am going through the history now to figure it out.
>>
>> Thanks,
>> Alex
>>
>> On 10.04.2018 17:46, Andrew Haley wrote:
>>> With inlining that looks like this. I'm pretty sure that it's nothing I've done.
>>>
>>> The net result is that it still works, it just compiles very, very slowly,
>>> so the tests still run.
>>>
>>> 0x000003ff6d61f710: add x16, xzr, x16, lsl #3 ; ImmutableOopMap{c_rarg4=Oop c_rarg7=Oop r12=Oop r16=Oop [112]=Oop [168]=Oop [272]=Oop [336]=Oop [360]=Oop [416]=Oop [440]=Oop [448]=Oop [472]=Oop [480]=Oop [504]=Oop [512]=Oop [536]=Oop [544]=Oop [576]=Oop [600]=Oop [624]=Oop [648]=Oop [672]=Oop [696]=Oop [712]=Oop [728]=Oop [744]=Oop [792]=Oop [808]=Oop [840]=Oop [864]=Oop [872]=Oop [896]=Oop [920]=Oop [928]=Oop }
>>> ;*iload_0 {reexecute=1 rethrow=0 return_oop=0}
>>> ; - java.lang.StringUTF16::getChars at 22 (line 1212)
>>> ; - java.lang.StringUTF16::getChars at 9 (line 1034)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.util.Arrays::copyOfRange at 29 (line 4029)
>>> ; - java.lang.StringLatin1::newString at 9 (line 549)
>>> ; - java.lang.StringBuilder::toString at 16 (line 415)
>>> ; - java.util.Arrays::copyOfRange at 32 (line 4029)
>>> ; - java.lang.StringUTF16::newString at 42 (line 848)
>>> ; - java.lang.StringBuilder::toString at 31 (line 416)
>>> ; - java.lang.String::checkBoundsOffCount at 53 (line 3092)
>>> ; - java.lang.StringUTF16::checkBoundsOffCount at 6 (line 1305)
>>> ; - java.lang.StringUTF16::compress at 4 (line 192)
>>> ; - java.lang.StringUTF16::compress at 9 (line 166)
>>> ; - java.lang.StringUTF16::newString at 9 (line 842)
>>> ; - java.lang.StringBuilder::toString at 31 (line 416)
>>> ; - java.util.Arrays::copyOfRange at 32 (line 4029)
>>> ; - java.lang.StringLatin1::newString at 9 (line 549)
>>> ; - java.lang.StringBuilder::toString at 16 (line 415)
>>> ; - java.util.Arrays::copyOfRange at 32 (line 4029)
>>> ; - java.lang.StringLatin1::newString at 9 (line 549)
>>> ; - java.lang.StringBuilder::toString at 16 (line 415)
>>> ; - java.util.Arrays::copyOfRange at 32 (line 4029)
>>> ; - java.lang.StringLatin1::newString at 9 (line 549)
>>> ; - java.lang.StringBuilder::toString at 16 (line 415)
>>> ; - java.lang.String::checkBoundsBeginEnd at 52 (line 3107)
>>> ; - java.lang.StringUTF16::checkBoundsBeginEnd at 6 (line 1301)
>>> ; - java.lang.StringUTF16::getChars at 3 (line 1033)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.lang.String::checkBoundsBeginEnd at 31 (line 3107)
>>> ; - java.lang.StringUTF16::checkBoundsBeginEnd at 6 (line 1301)
>>> ; - java.lang.StringUTF16::getChars at 3 (line 1033)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.lang.String::checkBoundsBeginEnd at 31 (line 3107)
>>> ; - java.lang.StringUTF16::checkBoundsBeginEnd at 6 (line 1301)
>>> ; - java.lang.StringUTF16::getChars at 3 (line 1033)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.lang.String::checkBoundsBeginEnd at 31 (line 3107)
>>> ; - java.lang.StringUTF16::checkBoundsBeginEnd at 6 (line 1301)
>>> ; - java.lang.StringUTF16::getChars at 3 (line 1033)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.lang.String::checkBoundsBeginEnd at 31 (line 3107)
>>> ; - java.lang.StringUTF16::checkBoundsBeginEnd at 6 (line 1301)
>>> ; - java.lang.StringUTF16::getChars at 3 (line 1033)
>>> ; - java.lang.AbstractStringBuilder::append at 44 (line 753)
>>> ; - java.lang.StringBuilder::append at 2 (line 215)
>>> ; - java.lang.StringUTF16::newBytesFor at 35 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.StringUTF16::newBytesFor at 31 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.StringUTF16::newBytesFor at 31 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.StringUTF16::newBytesFor at 31 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.StringUTF16::newBytesFor at 31 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.StringUTF16::newBytesFor at 31 (line 46)
>>> ; - java.lang.AbstractStringBuilder::inflate at 13 (line 202)
>>> ; - java.lang.AbstractStringBuilder::putStringAt at 12 (line 1639)
>>> ; - java.lang.AbstractStringBuilder::append at 30 (line 513)
>>> ; - java.lang.StringBuilder::append at 2 (line 141)
>>> ; - java.lang.String::checkBoundsBeginEnd at 27 (line 3107)
>>> ; - java.lang.String::getChars at 6 (line 853)
>>> ; - java.io.BufferedWriter::write at 63 (line 229)
>>> ; - java.io.Writer::write at 7 (line 162)
>>> ; - java.io.PrintStream::write at 13 (line 604)
>>> ; - java.io.PrintStream::print at 5 (line 745)
>>> ; - java.io.PrintStream::println at 6 (line 882)
>>> ; - Hello::main at 5 (line 4)
>>
>
More information about the graal-dev
mailing list