Graal inlining and AOT

Andrew Haley aph at redhat.com
Tue Apr 10 15:46:59 UTC 2018


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)
-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the graal-dev mailing list