Graal inlining and AOT
Aleksandar Prokopec
aleksandar.prokopec at oracle.com
Tue Apr 10 15:52:55 UTC 2018
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