From vladimir.x.ivanov at oracle.com Wed Mar 1 13:41:53 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 1 Mar 2017 16:41:53 +0300 Subject: RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: <8ce63447-0a60-51b9-5a91-918fb58dd806@redhat.com> References: <58fe8377-ee6d-9c80-2254-944e7b8f5ffc@redhat.com> <34ab3925-b838-703e-447b-3aa03d7ece94@oracle.com> <8a4ce928-a260-0b16-0d9a-c9d3dfabff03@redhat.com> <1dc5e254-d1c7-3ef9-1eb5-9236c9b51777@oracle.com> <795c55a9-e5b5-d423-c1be-abef5d2338b0@oracle.com> <871d76fc-f9b1-e1b9-095b-573e0da694a7@redhat.com> <385ce51d-c43b-8e8c-3db1-d26c25010589@oracle.com> <8ce63447-0a60-51b9-5a91-918fb58dd806@redhat.com> Message-ID: <4d554486-53a5-e7ca-3536-2651b84b3d64@oracle.com> Pushed: http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 Best regards, Vladimir Ivanov On 3/1/17 12:01 AM, Aleksey Shipilev wrote: > On 02/28/2017 10:01 PM, Vladimir Ivanov wrote: >> >>>> http://cr.openjdk.java.net/~vlivanov/shade/8175887/ >>> >>> The cleanup look good, but are you sure AssertionError would get reported from >>> the thread, and it would not silently die? The original test exited hard to >>> handle this. >> >> Good point. Reverted that part. (Updated the webrev in place.) > > Thumbs up. Thanks for handling this! > > -Aleksey > From christian.haeubl at oracle.com Thu Mar 2 15:47:01 2017 From: christian.haeubl at oracle.com (Christian Haeubl) Date: Thu, 2 Mar 2017 16:47:01 +0100 Subject: Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains In-Reply-To: References: Message-ID: <81364ff9-26c0-b17f-8a69-b016e7b1b4db@oracle.com> Hi, Please review the following patch for https://bugs.openjdk.java.net/browse/JDK-8175917: http://cr.openjdk.java.net/~never/8175917/webrev.001/ Bug description: When Truffle uses JMVCI and Graal for compiling a guest language (e.g. JavaScript), Graal heavily uses partial escape analysis. In such cases, the JVMCI method "installCode" uses lots of local JNI references when generating the corresponding debug information so that the thread's top-level JNI handle buffer will have a large size. This unnecessarily increases the footprint and significantly decreases the performance (as long as https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed). Fix: Around the JVMCI method "installCode", we do something similar to JNI's PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is released when the method exits and the thread's top-level JNI handle buffer is not getting enlarged. Tests: The changes were tested locally by executing JVMCI bootstrapping and parts of Graal / Truffle. Thanks, Christian -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Thu Mar 2 16:06:28 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 2 Mar 2017 08:06:28 -0800 Subject: Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains In-Reply-To: <81364ff9-26c0-b17f-8a69-b016e7b1b4db@oracle.com> References: <81364ff9-26c0-b17f-8a69-b016e7b1b4db@oracle.com> Message-ID: Looks good. Who with OpenJDK id reviewed it in Labs? I need to list them in changeset. Thanks, Vladimir On 3/2/17 7:47 AM, Christian Haeubl wrote: > Hi, > > Please review the following patch for > https://bugs.openjdk.java.net/browse/JDK-8175917: > http://cr.openjdk.java.net/~never/8175917/webrev.001/ > > Bug description: > When Truffle uses JMVCI and Graal for compiling a guest language (e.g. > JavaScript), Graal heavily uses partial escape analysis. In such cases, > the JVMCI method "installCode" uses lots of local JNI references when > generating the corresponding debug information so that the thread's > top-level JNI handle buffer will have a large size. This unnecessarily > increases the footprint and significantly decreases the performance (as > long as https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed). > > Fix: > Around the JVMCI method "installCode", we do something similar to JNI's > PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is > released when the method exits and the thread's top-level JNI handle > buffer is not getting enlarged. > > Tests: > The changes were tested locally by executing JVMCI bootstrapping and > parts of Graal / Truffle. > > Thanks, > Christian From christian.haeubl at oracle.com Thu Mar 2 16:12:20 2017 From: christian.haeubl at oracle.com (Christian Haeubl) Date: Thu, 2 Mar 2017 17:12:20 +0100 Subject: Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains In-Reply-To: References: <81364ff9-26c0-b17f-8a69-b016e7b1b4db@oracle.com> Message-ID: <2d219ce5-750a-2a9d-e587-59ca6d2f5414@oracle.com> Only Tom Rodriguez (never) - Christian Am 02.03.2017 um 17:06 schrieb Vladimir Kozlov: > Looks good. Who with OpenJDK id reviewed it in Labs? I need to list > them in changeset. > > Thanks, > Vladimir > > On 3/2/17 7:47 AM, Christian Haeubl wrote: >> Hi, >> >> Please review the following patch for >> https://bugs.openjdk.java.net/browse/JDK-8175917: >> http://cr.openjdk.java.net/~never/8175917/webrev.001/ >> >> Bug description: >> When Truffle uses JMVCI and Graal for compiling a guest language (e.g. >> JavaScript), Graal heavily uses partial escape analysis. In such cases, >> the JVMCI method "installCode" uses lots of local JNI references when >> generating the corresponding debug information so that the thread's >> top-level JNI handle buffer will have a large size. This unnecessarily >> increases the footprint and significantly decreases the performance (as >> long as https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed). >> >> Fix: >> Around the JVMCI method "installCode", we do something similar to JNI's >> PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is >> released when the method exits and the thread's top-level JNI handle >> buffer is not getting enlarged. >> >> Tests: >> The changes were tested locally by executing JVMCI bootstrapping and >> parts of Graal / Truffle. >> >> Thanks, >> Christian From lutz.schmidt at sap.com Thu Mar 2 16:22:21 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Thu, 2 Mar 2017 16:22:21 +0000 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: <37470f1c5ee14fcdaeab40dff379efa1@sap.com> References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: Hi all, I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ I believe I still need one more review. Furthermore: any volunteer to sponsor my change? Thanks, Lutz On 28.02.17, 17:07, "Doerr, Martin" wrote: Hi Lutz, thanks for implementing my suggestions and for the explanations. The change looks good to me. Best regards, Martin -----Original Message----- From: Schmidt, Lutz Sent: Dienstag, 28. Februar 2017 15:28 To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C Hi Martin, Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. Best regards, Lutz On 28.02.17, 11:57, "Doerr, Martin" wrote: Hi Lutz, thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. I only have some minor suggestions: c1_LIRGenerator_s390.cpp load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. macroAssembler_s390.cpp The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. stubGenerator_s390.cpp The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." stubRoutines_s390.cpp I didn't review all numbers :-), but I guess you have tested well enough? It'd be nice if you could share some performance numbers. Thanks and best regards, Martin -----Original Message----- From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Montag, 27. Februar 2017 22:33 To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C Thank you, Vladimir, for looking at this. Regards, Lutz On 27.02.17, 22:30, "Vladimir Kozlov" wrote: Shared changes are good. I assume s390 code will be reviewed by experts. Thanks, Vladimir On 2/27/17 9:34 AM, Schmidt, Lutz wrote: > Hi all, > > > > the webrev URL below was incorrect. It displayed the correct location, > but pointed elsewhere. The issue is fixed now and the URLs are correct. > > > > Thank you! > > Lutz > > > > *From: *Lutz Schmidt > *Date: *Montag, 27. Februar 2017 um 15:55 > *To: *"hotspot-compiler-dev at openjdk.java.net" > > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for > CRC32C > > > > Hi all, > > > > may I kindly request reviews for my medium enhancement? Further down the > road, I would need a sponsor, too. > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ > > > > Description: > > This intrinsic implementation provides some performance benefit over the > standard Java implementation. It uses only well-known ?standard? > instructions, available on all supported IBM System z hardware. Being > very similar to the CRC32 intrinsics, it was tried to share as much code > as possible between these two. > > > > Performance may be expected to increase up to 2.0x, compared to a run > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of > the byte array fed into CRC32C and, to some extent, on the H/W > generation the test runs on. > > > > Thanks, > > Lutz > > > From lutz.schmidt at sap.com Thu Mar 2 16:24:09 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Thu, 2 Mar 2017 16:24:09 +0000 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C Message-ID: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> Hi all, may I kindly request reviews for my medium size enhancement? Further down the road, I would need a sponsor, too. Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ Description: This intrinsic implementation provides some performance benefit over the standard Java implementation. It uses only well-known ?standard? instructions, available on all supported POWER cpus. Being very similar to the CRC32 intrinsics, it was tried to share as much code as possible between these two. Performance was observed to increase up to 2.0x, depending on the length of the byte array fed into CRC32C. Short byte arrays benefit more. That is due to the fact that the Java implementation of CRC32C is well inlined and optimized by the JIT, at least with my simple micro benchmarks. Thanks, Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From rwestrel at redhat.com Thu Mar 2 16:35:34 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 02 Mar 2017 17:35:34 +0100 Subject: [8u] request for approval: 8174164 & 8175097: SafePointNode::_replaced_nodes breaks with irreducible loops In-Reply-To: <5f99874c-8f2e-735c-315e-bd9c454435e6@oracle.com> References: <5f99874c-8f2e-735c-315e-bd9c454435e6@oracle.com> Message-ID: > 8u changes looks good. Thanks Vladimir. Can I get approval from the jdk 8u gatekeepers for this and a sponsor? Thanks, Roland. From shade at redhat.com Thu Mar 2 20:08:18 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 2 Mar 2017 21:08:18 +0100 Subject: RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: <4d554486-53a5-e7ca-3536-2651b84b3d64@oracle.com> References: <58fe8377-ee6d-9c80-2254-944e7b8f5ffc@redhat.com> <34ab3925-b838-703e-447b-3aa03d7ece94@oracle.com> <8a4ce928-a260-0b16-0d9a-c9d3dfabff03@redhat.com> <1dc5e254-d1c7-3ef9-1eb5-9236c9b51777@oracle.com> <795c55a9-e5b5-d423-c1be-abef5d2338b0@oracle.com> <871d76fc-f9b1-e1b9-095b-573e0da694a7@redhat.com> <385ce51d-c43b-8e8c-3db1-d26c25010589@oracle.com> <8ce63447-0a60-51b9-5a91-918fb58dd806@redhat.com> <4d554486-53a5-e7ca-3536-2651b84b3d64@oracle.com> Message-ID: Hi again, If you see no troubles in nightly runs, can you propose this to 8u? I can propose myself, if you want. -Aleksey On 03/01/2017 02:41 PM, Vladimir Ivanov wrote: > Pushed: > http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 > > Best regards, > Vladimir Ivanov > > On 3/1/17 12:01 AM, Aleksey Shipilev wrote: >> On 02/28/2017 10:01 PM, Vladimir Ivanov wrote: >>> >>>>> http://cr.openjdk.java.net/~vlivanov/shade/8175887/ >>>> >>>> The cleanup look good, but are you sure AssertionError would get reported from >>>> the thread, and it would not silently die? The original test exited hard to >>>> handle this. >>> >>> Good point. Reverted that part. (Updated the webrev in place.) >> >> Thumbs up. Thanks for handling this! >> >> -Aleksey >> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: From vladimir.x.ivanov at oracle.com Thu Mar 2 20:57:29 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 2 Mar 2017 23:57:29 +0300 Subject: RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: References: <58fe8377-ee6d-9c80-2254-944e7b8f5ffc@redhat.com> <34ab3925-b838-703e-447b-3aa03d7ece94@oracle.com> <8a4ce928-a260-0b16-0d9a-c9d3dfabff03@redhat.com> <1dc5e254-d1c7-3ef9-1eb5-9236c9b51777@oracle.com> <795c55a9-e5b5-d423-c1be-abef5d2338b0@oracle.com> <871d76fc-f9b1-e1b9-095b-573e0da694a7@redhat.com> <385ce51d-c43b-8e8c-3db1-d26c25010589@oracle.com> <8ce63447-0a60-51b9-5a91-918fb58dd806@redhat.com> <4d554486-53a5-e7ca-3536-2651b84b3d64@oracle.com> Message-ID: Feel free to send approval request. Nightlies look clean. Best regards, Vladimir Ivanov On 3/2/17 11:08 PM, Aleksey Shipilev wrote: > Hi again, > > If you see no troubles in nightly runs, can you propose this to 8u? > I can propose myself, if you want. > > -Aleksey > > On 03/01/2017 02:41 PM, Vladimir Ivanov wrote: >> Pushed: >> http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 >> >> Best regards, >> Vladimir Ivanov >> >> On 3/1/17 12:01 AM, Aleksey Shipilev wrote: >>> On 02/28/2017 10:01 PM, Vladimir Ivanov wrote: >>>> >>>>>> http://cr.openjdk.java.net/~vlivanov/shade/8175887/ >>>>> >>>>> The cleanup look good, but are you sure AssertionError would get reported from >>>>> the thread, and it would not silently die? The original test exited hard to >>>>> handle this. >>>> >>>> Good point. Reverted that part. (Updated the webrev in place.) >>> >>> Thumbs up. Thanks for handling this! >>> >>> -Aleksey >>> > From christian.haeubl at oracle.com Wed Mar 1 12:19:11 2017 From: christian.haeubl at oracle.com (Christian Haeubl) Date: Wed, 1 Mar 2017 13:19:11 +0100 Subject: RFR: 8175917: [JVMCI] Avoid long JNI handle chains Message-ID: Hi, Please review the following patch for https://bugs.openjdk.java.net/browse/JDK-8175917: http://cr.openjdk.java.net/~never/8175917/webrev.001/ Bug description: When Truffle uses JMVCI and Graal for compiling a guest language (e.g. JavaScript), Graal heavily uses partial escape analysis. In such cases, the JVMCI method "installCode" uses lots of local JNI references when generating the corresponding debug information so that the thread's top-level JNI handle buffer will have a large size. This unnecessarily increases the footprint and significantly decreases the performance (as long as https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed). Fix: Around the JVMCI method "installCode", we do something similar to JNI's PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is released when the method exits and the thread's top-level JNI handle buffer is not getting enlarged. Tests: The changes were tested locally by executing JVMCI bootstrapping and parts of Graal / Truffle. Thanks, Christian -------------- next part -------------- An HTML attachment was scrubbed... URL: From christian.haeubl at oracle.com Fri Mar 3 14:22:37 2017 From: christian.haeubl at oracle.com (Christian Haeubl) Date: Fri, 3 Mar 2017 15:22:37 +0100 Subject: RFR: 8175917: [JVMCI] Avoid long JNI handle chains In-Reply-To: References: Message-ID: Hi, The message below is just a duplicated message that was stuck in moderation. It can be ignored as the issue is already fixed. - Christian Am 01.03.2017 um 13:19 schrieb Christian Haeubl: > > Hi, > > Please review the following patch for > https://bugs.openjdk.java.net/browse/JDK-8175917: > http://cr.openjdk.java.net/~never/8175917/webrev.001/ > > Bug description: > When Truffle uses JMVCI and Graal for compiling a guest language (e.g. > JavaScript), Graal heavily uses partial escape analysis. In such > cases, the JVMCI method "installCode" uses lots of local JNI > references when generating the corresponding debug information so that > the thread's top-level JNI handle buffer will have a large size. This > unnecessarily increases the footprint and significantly decreases the > performance (as long as > https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed). > > Fix: > Around the JVMCI method "installCode", we do something similar to > JNI's PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is > released when the method exits and the thread's top-level JNI handle > buffer is not getting enlarged. > > Tests: > The changes were tested locally by executing JVMCI bootstrapping and > parts of Graal / Truffle. > > Thanks, > Christian -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin.doerr at sap.com Fri Mar 3 16:33:37 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Fri, 3 Mar 2017 16:33:37 +0000 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> Message-ID: Hi Lutz, thank you very much for implementing it for PPC64, too. Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with other changes). But it should be easy to fix. The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any more (same is true for s390 webrev). In addition, the PPC64 change was not build on top of the s390 one. The shared code change in c1_Compiler.cpp needs to be adapted in this change and pushed after the s390 one. As the change is very similar to what you?ve done on s390, it already contains what I had requested in the other review. I only have a comment on the macroAssembler part: I didn't review kernel_crc32_2word as it is no longer used and should get removed sooner or later (not necessarily with this change). kernel_crc32_1word contains an s390 comment "ahgi". Besides that, it looks good to me. Thanks and best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Donnerstag, 2. M?rz 2017 17:24 To: hotspot-compiler-dev at openjdk.java.net Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C Hi all, may I kindly request reviews for my medium size enhancement? Further down the road, I would need a sponsor, too. Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ Description: This intrinsic implementation provides some performance benefit over the standard Java implementation. It uses only well-known ?standard? instructions, available on all supported POWER cpus. Being very similar to the CRC32 intrinsics, it was tried to share as much code as possible between these two. Performance was observed to increase up to 2.0x, depending on the length of the byte array fed into CRC32C. Short byte arrays benefit more. That is due to the fact that the Java implementation of CRC32C is well inlined and optimized by the JIT, at least with my simple micro benchmarks. Thanks, Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.ignatyev at oracle.com Sat Mar 4 05:37:11 2017 From: igor.ignatyev at oracle.com (Igor Ignatyev) Date: Fri, 3 Mar 2017 21:37:11 -0800 Subject: RFR(XS) : 8172457: JarDirTest.java fails after recent change Message-ID: <65756CD2-06B9-4AE3-AA8E-B387D163C35D@oracle.com> Hi all, Could you please review this small fix? The test passes an asterisk symbol to a new spawn jvm process via ProcessTools. On windows, an asterisk is expand to files in a directory, but the test expects that the spawn jvm gets the symbol as is. The problem is fixed by escaping asterisk symbol on windows. JBS: https://bugs.openjdk.java.net/browse/JDK-8172457 Webrev: http://cr.openjdk.java.net/~iignatyev/8172457/webrev.01 Testing: affected tests on windows and non windows platform Thanks, ? Igor From igor.veresov at oracle.com Sun Mar 5 21:11:50 2017 From: igor.veresov at oracle.com (Igor Veresov) Date: Sun, 5 Mar 2017 13:11:50 -0800 Subject: RFR(XS) : 8172457: JarDirTest.java fails after recent change In-Reply-To: <65756CD2-06B9-4AE3-AA8E-B387D163C35D@oracle.com> References: <65756CD2-06B9-4AE3-AA8E-B387D163C35D@oracle.com> Message-ID: <21D49B49-9269-4625-8C1B-4D0DE625EE72@oracle.com> Looks good. igor > On Mar 3, 2017, at 9:37 PM, Igor Ignatyev wrote: > > Hi all, > > Could you please review this small fix? > > The test passes an asterisk symbol to a new spawn jvm process via ProcessTools. On windows, an asterisk is expand to files in a directory, but the test expects that the spawn jvm gets the symbol as is. > The problem is fixed by escaping asterisk symbol on windows. > > JBS: https://bugs.openjdk.java.net/browse/JDK-8172457 > Webrev: http://cr.openjdk.java.net/~iignatyev/8172457/webrev.01 > Testing: affected tests on windows and non windows platform > > Thanks, > ? Igor From nils.eliasson at oracle.com Mon Mar 6 14:15:14 2017 From: nils.eliasson at oracle.com (Nils Eliasson) Date: Mon, 6 Mar 2017 15:15:14 +0100 Subject: [9] RFR (S): 8164954: split_if creates empty phi and region nodes Message-ID: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> Hi, Please review. The test runtime/Metaspace/FragmentMetaspace.java triggered an assert (assert(i < _max) failed: oob: i=1, _max=1) when Node::dominates reads in[] out of bounds on a empty region node. The empty region node is created by split_if. Split_if tries to simplify compares on a constant and a phi, where the phi has at least one constant on an in edge. In this case the opportunity for optimization is identified, and a phi and accompanying region node is created for all remaining in-edges that aren't matching the constant. But here all the in-edges to the phi matches the constant, and no edge will be split out, leaving the new nodes without in-edges. Much later in the optimization phase the empty region node will trigger the assert. Solution: Abort split_if when all in-edges are the same constant - this is already the desired state. It will be folded later. https://bugs.openjdk.java.net/browse/JDK-8164954 http://cr.openjdk.java.net/~neliasso/8164954/webrev/ A big thank you to Richard B?ckman that helped me track this bug down. Regards, Nils -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.x.ivanov at oracle.com Mon Mar 6 14:58:05 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Mon, 6 Mar 2017 17:58:05 +0300 Subject: [9] RFR (S): 8164954: split_if creates empty phi and region nodes In-Reply-To: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> References: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> Message-ID: Looks good. Best regards, Vladimir Ivanov On 3/6/17 5:15 PM, Nils Eliasson wrote: > Hi, > > Please review. > > The test runtime/Metaspace/FragmentMetaspace.java triggered an assert > (assert(i < _max) failed: oob: i=1, _max=1) when Node::dominates reads > in[] out of bounds on a empty region node. > > The empty region node is created by split_if. Split_if tries to simplify > compares on a constant and a phi, where the phi has at least one > constant on an in edge. In this case the opportunity for optimization is > identified, and a phi and accompanying region node is created for all > remaining in-edges that aren't matching the constant. But here all the > in-edges to the phi matches the constant, and no edge will be split out, > leaving the new nodes without in-edges. Much later in the optimization > phase the empty region node will trigger the assert. > > Solution: > Abort split_if when all in-edges are the same constant - this is already > the desired state. It will be folded later. > > https://bugs.openjdk.java.net/browse/JDK-8164954 > http://cr.openjdk.java.net/~neliasso/8164954/webrev/ > > A big thank you to Richard B?ckman that helped me track this bug down. > > Regards, > Nils From vladimir.kozlov at oracle.com Mon Mar 6 17:52:44 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 6 Mar 2017 09:52:44 -0800 Subject: [9] RFR (S): 8164954: split_if creates empty phi and region nodes In-Reply-To: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> References: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> Message-ID: <8c21d336-b074-44be-4bd5-8ce460174b1a@oracle.com> Good. Thanks, Vladimir K On 3/6/17 6:15 AM, Nils Eliasson wrote: > Hi, > > Please review. > > The test runtime/Metaspace/FragmentMetaspace.java triggered an assert > (assert(i < _max) failed: oob: i=1, _max=1) when Node::dominates reads > in[] out of bounds on a empty region node. > > The empty region node is created by split_if. Split_if tries to simplify > compares on a constant and a phi, where the phi has at least one > constant on an in edge. In this case the opportunity for optimization is > identified, and a phi and accompanying region node is created for all > remaining in-edges that aren't matching the constant. But here all the > in-edges to the phi matches the constant, and no edge will be split out, > leaving the new nodes without in-edges. Much later in the optimization > phase the empty region node will trigger the assert. > > Solution: > Abort split_if when all in-edges are the same constant - this is already > the desired state. It will be folded later. > > https://bugs.openjdk.java.net/browse/JDK-8164954 > http://cr.openjdk.java.net/~neliasso/8164954/webrev/ > > A big thank you to Richard B?ckman that helped me track this bug down. > > Regards, > Nils From vladimir.kozlov at oracle.com Mon Mar 6 22:31:07 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 6 Mar 2017 14:31:07 -0800 Subject: [9] RFR(XS) 8176238: [AOT] failure to build jdk.vm.compier with --with-jobs=1 configure flag Message-ID: <1618439b-de01-e889-c2cb-43888028a435@oracle.com> https://bugs.openjdk.java.net/browse/JDK-8176238 jdk.internal.vm.compiler build fails when --with-jobs=1 is used by configure. Mandy suggested to add --add-modules jdk.internal.vm.ci to Graal annotation process command line to avoid the problem: diff -r 932b4ec7397f make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk --- a/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk +++ b/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk @@ -81,6 +81,7 @@ PROCESSOR_PATH := $(call PathList, $(PROCESSOR_JARS)) ADD_EXPORTS := \ + --add-modules jdk.internal.vm.ci \ --add-exports jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \ --add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \ --add-exports jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \ It works but I don't know why this happens only with --with-jobs=1. Thanks, Vladimir From vladimir.kozlov at oracle.com Mon Mar 6 22:40:27 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 6 Mar 2017 14:40:27 -0800 Subject: [9] RFR(XS) 8176238: [AOT] failure to build jdk.vm.compier with --with-jobs=1 configure flag In-Reply-To: <1618439b-de01-e889-c2cb-43888028a435@oracle.com> References: <1618439b-de01-e889-c2cb-43888028a435@oracle.com> Message-ID: Webrev: http://cr.openjdk.java.net/~kvn/8176238/webrev/ On 3/6/17 2:31 PM, Vladimir Kozlov wrote: > https://bugs.openjdk.java.net/browse/JDK-8176238 > > jdk.internal.vm.compiler build fails when --with-jobs=1 is used by > configure. Mandy suggested to add --add-modules jdk.internal.vm.ci to > Graal annotation process command line to avoid the problem: > > diff -r 932b4ec7397f make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk > --- a/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk > +++ b/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk > @@ -81,6 +81,7 @@ > PROCESSOR_PATH := $(call PathList, $(PROCESSOR_JARS)) > > ADD_EXPORTS := \ > + --add-modules jdk.internal.vm.ci \ > --add-exports jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \ > --add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \ > --add-exports jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \ > > It works but I don't know why this happens only with --with-jobs=1. > > Thanks, > Vladimir From igor.veresov at oracle.com Mon Mar 6 22:45:33 2017 From: igor.veresov at oracle.com (Igor Veresov) Date: Mon, 6 Mar 2017 14:45:33 -0800 Subject: [9] RFR(XS) 8176238: [AOT] failure to build jdk.vm.compier with --with-jobs=1 configure flag In-Reply-To: References: <1618439b-de01-e889-c2cb-43888028a435@oracle.com> Message-ID: Looks good. igor > On Mar 6, 2017, at 2:40 PM, Vladimir Kozlov wrote: > > Webrev: > http://cr.openjdk.java.net/~kvn/8176238/webrev/ > >> On 3/6/17 2:31 PM, Vladimir Kozlov wrote: >> https://bugs.openjdk.java.net/browse/JDK-8176238 >> >> jdk.internal.vm.compiler build fails when --with-jobs=1 is used by >> configure. Mandy suggested to add --add-modules jdk.internal.vm.ci to >> Graal annotation process command line to avoid the problem: >> >> diff -r 932b4ec7397f make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >> --- a/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >> +++ b/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >> @@ -81,6 +81,7 @@ >> PROCESSOR_PATH := $(call PathList, $(PROCESSOR_JARS)) >> >> ADD_EXPORTS := \ >> + --add-modules jdk.internal.vm.ci \ >> --add-exports jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \ >> --add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \ >> --add-exports jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \ >> >> It works but I don't know why this happens only with --with-jobs=1. >> >> Thanks, >> Vladimir From vladimir.kozlov at oracle.com Mon Mar 6 22:51:08 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 6 Mar 2017 14:51:08 -0800 Subject: [9] RFR(XS) 8176238: [AOT] failure to build jdk.vm.compier with --with-jobs=1 configure flag In-Reply-To: References: <1618439b-de01-e889-c2cb-43888028a435@oracle.com> Message-ID: <39e99afc-d864-a427-e3af-f8e1963244e1@oracle.com> Thank you, Igor Vladimir On 3/6/17 2:45 PM, Igor Veresov wrote: > Looks good. > > igor > >> On Mar 6, 2017, at 2:40 PM, Vladimir Kozlov wrote: >> >> Webrev: >> http://cr.openjdk.java.net/~kvn/8176238/webrev/ >> >>> On 3/6/17 2:31 PM, Vladimir Kozlov wrote: >>> https://bugs.openjdk.java.net/browse/JDK-8176238 >>> >>> jdk.internal.vm.compiler build fails when --with-jobs=1 is used by >>> configure. Mandy suggested to add --add-modules jdk.internal.vm.ci to >>> Graal annotation process command line to avoid the problem: >>> >>> diff -r 932b4ec7397f make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >>> --- a/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >>> +++ b/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk >>> @@ -81,6 +81,7 @@ >>> PROCESSOR_PATH := $(call PathList, $(PROCESSOR_JARS)) >>> >>> ADD_EXPORTS := \ >>> + --add-modules jdk.internal.vm.ci \ >>> --add-exports jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \ >>> --add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \ >>> --add-exports jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \ >>> >>> It works but I don't know why this happens only with --with-jobs=1. >>> >>> Thanks, >>> Vladimir > From nils.eliasson at oracle.com Tue Mar 7 09:10:08 2017 From: nils.eliasson at oracle.com (Nils Eliasson) Date: Tue, 7 Mar 2017 10:10:08 +0100 Subject: [9] RFR (S): 8164954: split_if creates empty phi and region nodes In-Reply-To: References: <77d67645-1047-5865-ce73-9e0fcb8d2c1e@oracle.com> Message-ID: <0db04423-5cbf-890a-a015-320ca48c33bc@oracle.com> Thank you Vladimir and Vladimir! Best regards, Nils On 2017-03-06 15:58, Vladimir Ivanov wrote: > Looks good. > > Best regards, > Vladimir Ivanov > > On 3/6/17 5:15 PM, Nils Eliasson wrote: >> Hi, >> >> Please review. >> >> The test runtime/Metaspace/FragmentMetaspace.java triggered an assert >> (assert(i < _max) failed: oob: i=1, _max=1) when Node::dominates reads >> in[] out of bounds on a empty region node. >> >> The empty region node is created by split_if. Split_if tries to simplify >> compares on a constant and a phi, where the phi has at least one >> constant on an in edge. In this case the opportunity for optimization is >> identified, and a phi and accompanying region node is created for all >> remaining in-edges that aren't matching the constant. But here all the >> in-edges to the phi matches the constant, and no edge will be split out, >> leaving the new nodes without in-edges. Much later in the optimization >> phase the empty region node will trigger the assert. >> >> Solution: >> Abort split_if when all in-edges are the same constant - this is already >> the desired state. It will be folded later. >> >> https://bugs.openjdk.java.net/browse/JDK-8164954 >> http://cr.openjdk.java.net/~neliasso/8164954/webrev/ >> >> A big thank you to Richard B?ckman that helped me track this bug down. >> >> Regards, >> Nils From tobias.hartmann at oracle.com Tue Mar 7 09:41:40 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 7 Mar 2017 10:41:40 +0100 Subject: [8u] request for approval: 8174164 & 8175097: SafePointNode::_replaced_nodes breaks with irreducible loops In-Reply-To: References: <5f99874c-8f2e-735c-315e-bd9c454435e6@oracle.com> Message-ID: <63143c2f-2370-772b-5ca9-99b8a01e5d2c@oracle.com> Hi Roland, On 02.03.2017 17:35, Roland Westrelin wrote: > >> 8u changes looks good. > > Thanks Vladimir. Can I get approval from the jdk 8u gatekeepers for this > and a sponsor? I can do the sponsoring, please send me the 8u changeset. Best regards, Tobias From rahul.v.raghavan at oracle.com Wed Mar 8 06:53:42 2017 From: rahul.v.raghavan at oracle.com (Rahul Raghavan) Date: Tue, 7 Mar 2017 22:53:42 -0800 (PST) Subject: [9] RFR: 8175345: possible null pointer dereference defects Message-ID: Hi, Please review following patch proposal to avoid possible null pointer dereference warnings / errors for internal tests. - http://cr.openjdk.java.net/~rraghavan/8175345/webrev.01/ - internal bug - https://bugs.openjdk.java.net/browse/JDK-8175345 -- Possible null-pointer-deref type issues reported with Internal tests due to the case that "Function MultiNode::proj_out may return constant 'NULL'" Already following type checks are in place - .e.g.: [hotspot/src/share/vm/opto/multnode.cp] bool ProjNode::is_uncommon_trap_if_pattern(Deoptimization::DeoptReason reason) { ProjNode* other_proj = iff->proj_out(1-_con); if (other_proj == NULL) // Should never happen.. return false; So required explicit checks added at following reported locations in , - IfNode::dominated_by - hotspot/src/share/vm/opto/ifnode.cpp - StringConcat::validate_control_flow - hotspot/src/share/vm/opto/stringopts.cpp - PhaseIdealLoop::intrinsify_fill - hotspot/src/share/vm/opto/loopTransform.cpp - CallNode::may_modify - hotspot/src/share/vm/opto/callnode.cpp -- Found all valid reported defects issues with internal tests are indirectly related to above. -- Confirmed no issues with testing - jprt run (-testset hotspot). Thanks, Rahul From tobias.hartmann at oracle.com Wed Mar 8 07:00:59 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 8 Mar 2017 08:00:59 +0100 Subject: [9] RFR: 8175345: possible null pointer dereference defects In-Reply-To: References: Message-ID: <7213cd9f-ae81-8bbb-92a5-8d6743aee06e@oracle.com> Hi Rahul, On 08.03.2017 07:53, Rahul Raghavan wrote: > - http://cr.openjdk.java.net/~rraghavan/8175345/webrev.01/ Looks good to me! > - internal bug - https://bugs.openjdk.java.net/browse/JDK-8175345 Please open up the bug. Thanks, Tobias From rahul.v.raghavan at oracle.com Wed Mar 8 07:51:52 2017 From: rahul.v.raghavan at oracle.com (Rahul Raghavan) Date: Tue, 7 Mar 2017 23:51:52 -0800 (PST) Subject: [9] RFR: 8175345: possible null pointer dereference defects In-Reply-To: <7213cd9f-ae81-8bbb-92a5-8d6743aee06e@oracle.com> References: <7213cd9f-ae81-8bbb-92a5-8d6743aee06e@oracle.com> Message-ID: Hi, Thank you for the review Tobias. > Please open up the bug. Done. Thanks, Rahul > -----Original Message----- > From: Tobias Hartmann > Sent: Wednesday, March 08, 2017 12:31 PM > To: Rahul Raghavan; hotspot-compiler-dev at openjdk.java.net; Vladimir Kozlov; Zoltan Majo > Subject: Re: [9] RFR: 8175345: possible null pointer dereference defects > > Hi Rahul, > > On 08.03.2017 07:53, Rahul Raghavan wrote: > > - http://cr.openjdk.java.net/~rraghavan/8175345/webrev.01/ > > Looks good to me! > > > - internal bug - https://bugs.openjdk.java.net/browse/JDK-8175345 > > Please open up the bug. > > Thanks, > Tobias From zoltan.majo at oracle.com Wed Mar 8 09:57:04 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Wed, 8 Mar 2017 10:57:04 +0100 Subject: [9] RFR (S): 8175340: Possible invalid memory accesses due to ciMethodData::bci_to_data() returning NULL Message-ID: <03e65282-417e-2c63-1d09-ec12d46557da@oracle.com> Hi, please review the fix for 8175340. https://bugs.openjdk.java.net/browse/JDK-8175340 http://cr.openjdk.java.net/~zmajo/8175340/webrev.01/ The method ciMethodData::bci_to_data() can return NULL instead of a valid ciProfileData*. Some users of the ciProfileData returned by bci_to_data() do not check if the returned value is NULL, which can result in an invalid memory accesses. The issue has never happened in practice. While working on the issue, however, I experimented with a VM version that had asserts in Parse::branch_prediction and to Parse::dynamic_branch_prediction checking that bci_to_data() is not NULL. I was able to trigger some of the asserts I added by running the VM with -XX:-ProfileInterpreter -XX:-TieredCompilation. (The asserts are not part of the patch sent out for review.) The fix I propose is simple: Check if bci_to_data() is NULL, if yes, do not use profiling information / generate profiling code. The fix passes JPRT and RBT testing. Thank you! Best regards, Zoltan From shade at redhat.com Wed Mar 8 13:24:36 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 8 Mar 2017 14:24:36 +0100 Subject: RFA (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: <993390c4-88c4-1c65-03af-47314dbdbfa2@redhat.com> References: <77ca2f0e-dddd-8357-f94e-bde773bdab49@redhat.com> <20170303230903.GA3196@vimes> <993390c4-88c4-1c65-03af-47314dbdbfa2@redhat.com> Message-ID: <1f3bb596-8945-2ab5-b0d1-0ef37812a6d2@redhat.com> (should have copied hs-comp-dev@, sorry) Need a sponsor, thanks! 8u changeset, if you need one: http://cr.openjdk.java.net/~shade/8175887/hs-8175887-8u.changeset -Aleksey On 03/06/2017 10:36 AM, Aleksey Shipilev wrote: > Thanks Rob! > > Vladimir Ivanov, could you sponsor this one too, please? > > -Aleksey > > On 03/04/2017 12:09 AM, Rob McKenna wrote: >> Approved, please work with the compiler team to find an appropriate >> sponsor. >> >> -Rob >> >> On 03/03/17 06:48, Aleksey Shipilev wrote: >>> Hi, >>> >>> Please approve the backport of this important bugfix to 8u: >>> >>> Bug: >>> https://bugs.openjdk.java.net/browse/JDK-8175887 >>> >>> JDK 9 changeset: >>> http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 >>> >>> Compiler folks agree with backport, and nightlies seem clean: >>> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2017-March/025767.html >>> >>> JDK 8u webrev: >>> http://cr.openjdk.java.net/~shade/8175887/webrev.04.8u/ >>> >>> Product change applies cleanly, but test needs to change j.i.m.Unsafe to >>> s.m.Unsafe. >>> >>> Testing: Linux x86_64/release hotspot/test/compiler/c1 before/after the fix. >>> >>> Need a sponsor to push. >>> >>> Thanks, >>> -Aleksey >>> > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: From lutz.schmidt at sap.com Wed Mar 8 14:37:54 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Wed, 8 Mar 2017 14:37:54 +0000 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: Hi all, this is yet another update for my RFR. I rebased my changes on the current tip to resolve a clash in templateInterpreterGenerator_s390.cpp ? detected by Martin (mdoerr). Thank you! Furthermore, I removed src/share/vm/c1/c1_compiler.cpp from the changeset. As a result, the CRC32C intrinsics on s390 will not be available in c1. Only later, after 8175369 has been pushed, they will become available. This ?trick? avoids conflicting changes to the same source line by 8175368 and 8175369. Please find the most recent webrev at: http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/ Regards, Lutz On 02.03.17, 17:22, "hotspot-compiler-dev on behalf of Schmidt, Lutz" wrote: Hi all, I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ I believe I still need one more review. Furthermore: any volunteer to sponsor my change? Thanks, Lutz On 28.02.17, 17:07, "Doerr, Martin" wrote: Hi Lutz, thanks for implementing my suggestions and for the explanations. The change looks good to me. Best regards, Martin -----Original Message----- From: Schmidt, Lutz Sent: Dienstag, 28. Februar 2017 15:28 To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C Hi Martin, Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. Best regards, Lutz On 28.02.17, 11:57, "Doerr, Martin" wrote: Hi Lutz, thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. I only have some minor suggestions: c1_LIRGenerator_s390.cpp load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. macroAssembler_s390.cpp The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. stubGenerator_s390.cpp The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." stubRoutines_s390.cpp I didn't review all numbers :-), but I guess you have tested well enough? It'd be nice if you could share some performance numbers. Thanks and best regards, Martin -----Original Message----- From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Montag, 27. Februar 2017 22:33 To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C Thank you, Vladimir, for looking at this. Regards, Lutz On 27.02.17, 22:30, "Vladimir Kozlov" wrote: Shared changes are good. I assume s390 code will be reviewed by experts. Thanks, Vladimir On 2/27/17 9:34 AM, Schmidt, Lutz wrote: > Hi all, > > > > the webrev URL below was incorrect. It displayed the correct location, > but pointed elsewhere. The issue is fixed now and the URLs are correct. > > > > Thank you! > > Lutz > > > > *From: *Lutz Schmidt > *Date: *Montag, 27. Februar 2017 um 15:55 > *To: *"hotspot-compiler-dev at openjdk.java.net" > > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for > CRC32C > > > > Hi all, > > > > may I kindly request reviews for my medium enhancement? Further down the > road, I would need a sponsor, too. > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ > > > > Description: > > This intrinsic implementation provides some performance benefit over the > standard Java implementation. It uses only well-known ?standard? > instructions, available on all supported IBM System z hardware. Being > very similar to the CRC32 intrinsics, it was tried to share as much code > as possible between these two. > > > > Performance may be expected to increase up to 2.0x, compared to a run > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of > the byte array fed into CRC32C and, to some extent, on the H/W > generation the test runs on. > > > > Thanks, > > Lutz > > > From lutz.schmidt at sap.com Wed Mar 8 14:38:17 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Wed, 8 Mar 2017 14:38:17 +0000 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> Message-ID: Martin, thanks for reviewing my change! All, Sorry for the delayed response. I had to take care of some urgent private stuff the last few days. After rebasing, I have updated the comment in kernel_crc32_1word. It was outdated anyway. I would like to postpone the decision about the fate of kernel_crc32_2word. The conflict in share/vm/c1/c1_compiler.cpp is somewhat tricky. I decided to remove the file from my (8175368, s390) webrev and to enable both cpus (ppc and s390) with this change. This ?trick? avoids conflicting changes to the same source code line. Please find the most recent webrev here: http://cr.openjdk.java.net/~lucy/webrevs/8175369.01/ Thank you, Lutz On 03.03.17, 17:33, "Doerr, Martin" > wrote: Hi Lutz, thank you very much for implementing it for PPC64, too. Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with other changes). But it should be easy to fix. The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any more (same is true for s390 webrev). In addition, the PPC64 change was not build on top of the s390 one. The shared code change in c1_Compiler.cpp needs to be adapted in this change and pushed after the s390 one. As the change is very similar to what you?ve done on s390, it already contains what I had requested in the other review. I only have a comment on the macroAssembler part: I didn't review kernel_crc32_2word as it is no longer used and should get removed sooner or later (not necessarily with this change). kernel_crc32_1word contains an s390 comment "ahgi". Besides that, it looks good to me. Thanks and best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Donnerstag, 2. M?rz 2017 17:24 To: hotspot-compiler-dev at openjdk.java.net Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C Hi all, may I kindly request reviews for my medium size enhancement? Further down the road, I would need a sponsor, too. Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ Description: This intrinsic implementation provides some performance benefit over the standard Java implementation. It uses only well-known ?standard? instructions, available on all supported POWER cpus. Being very similar to the CRC32 intrinsics, it was tried to share as much code as possible between these two. Performance was observed to increase up to 2.0x, depending on the length of the byte array fed into CRC32C. Short byte arrays benefit more. That is due to the fact that the Java implementation of CRC32C is well inlined and optimized by the JIT, at least with my simple micro benchmarks. Thanks, Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From volker.simonis at gmail.com Wed Mar 8 15:44:20 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 8 Mar 2017 16:44:20 +0100 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: Hi Lutz, the change looks good! As this is now s390-only, I've pushed it. Regards, Volker On Wed, Mar 8, 2017 at 3:37 PM, Schmidt, Lutz wrote: > Hi all, > > this is yet another update for my RFR. I rebased my changes on the current tip to resolve a clash in templateInterpreterGenerator_s390.cpp ? detected by Martin (mdoerr). Thank you! > > Furthermore, I removed src/share/vm/c1/c1_compiler.cpp from the changeset. As a result, the CRC32C intrinsics on s390 will not be available in c1. Only later, after 8175369 has been pushed, they will become available. This ?trick? avoids conflicting changes to the same source line by 8175368 and 8175369. > > Please find the most recent webrev at: http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/ > > Regards, > Lutz > > > > On 02.03.17, 17:22, "hotspot-compiler-dev on behalf of Schmidt, Lutz" wrote: > > Hi all, > > I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: > http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ > > I believe I still need one more review. Furthermore: any volunteer to sponsor my change? > > Thanks, > Lutz > > > > On 28.02.17, 17:07, "Doerr, Martin" wrote: > > Hi Lutz, > > thanks for implementing my suggestions and for the explanations. The change looks good to me. > > Best regards, > Martin > > > -----Original Message----- > From: Schmidt, Lutz > Sent: Dienstag, 28. Februar 2017 15:28 > To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C > > Hi Martin, > > Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ > > The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. > > Best regards, > Lutz > > > > On 28.02.17, 11:57, "Doerr, Martin" wrote: > > Hi Lutz, > > thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. > I only have some minor suggestions: > > c1_LIRGenerator_s390.cpp > load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. > As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. > The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. > > macroAssembler_s390.cpp > The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. > > stubGenerator_s390.cpp > The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." > > stubRoutines_s390.cpp > I didn't review all numbers :-), but I guess you have tested well enough? > > It'd be nice if you could share some performance numbers. > > Thanks and best regards, > Martin > > > > -----Original Message----- > From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz > Sent: Montag, 27. Februar 2017 22:33 > To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C > > Thank you, Vladimir, for looking at this. > > Regards, Lutz > > > On 27.02.17, 22:30, "Vladimir Kozlov" wrote: > > Shared changes are good. I assume s390 code will be reviewed by experts. > > Thanks, > Vladimir > > On 2/27/17 9:34 AM, Schmidt, Lutz wrote: > > Hi all, > > > > > > > > the webrev URL below was incorrect. It displayed the correct location, > > but pointed elsewhere. The issue is fixed now and the URLs are correct. > > > > > > > > Thank you! > > > > Lutz > > > > > > > > *From: *Lutz Schmidt > > *Date: *Montag, 27. Februar 2017 um 15:55 > > *To: *"hotspot-compiler-dev at openjdk.java.net" > > > > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for > > CRC32C > > > > > > > > Hi all, > > > > > > > > may I kindly request reviews for my medium enhancement? Further down the > > road, I would need a sponsor, too. > > > > > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 > > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ > > > > > > > > Description: > > > > This intrinsic implementation provides some performance benefit over the > > standard Java implementation. It uses only well-known ?standard? > > instructions, available on all supported IBM System z hardware. Being > > very similar to the CRC32 intrinsics, it was tried to share as much code > > as possible between these two. > > > > > > > > Performance may be expected to increase up to 2.0x, compared to a run > > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of > > the byte array fed into CRC32C and, to some extent, on the H/W > > generation the test runs on. > > > > > > > > Thanks, > > > > Lutz > > > > > > > > > > > > > > From volker.simonis at gmail.com Wed Mar 8 16:20:29 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 8 Mar 2017 17:20:29 +0100 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> Message-ID: Hi Lutz, Vladimir, change looks good! Your webrev for the s390 version of the CRC32C intrinsics (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display any shared changes, and that's actually what you apparently wanted to change in the last version (i.e. move the changes to c1_Compiler.cpp into this change). Unfortunately, the patch file from that webrev still contains these shared change. I'm not sure how that could happen? It may be a problem with webrev.ksh in combination with the Mercurial Queues extension and the fact that you had a local change in the repository from which you've created the webrev. So to cut a long story short, I've just pushed Lutz's s390 change (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good faith that it only contains s390 specific changes and unintentionally updated c1_Compiler.cpp. This requires yet another version of this change because it also updates c1_Compiler.cpp: http://cr.openjdk.java.net/~simonis/webrevs/2017/8175369/ @Vladimir (or anybody else from Oracle) - could you please sponsor this reviewed (and besides the tiny change in c1_Compiler.cpp, ppc64 only) change? Thank you and sorry for the confusion, Volker On Wed, Mar 8, 2017 at 3:38 PM, Schmidt, Lutz wrote: > Martin, thanks for reviewing my change! > > > > All, > > Sorry for the delayed response. I had to take care of some urgent private > stuff the last few days. > > > > After rebasing, I have updated the comment in kernel_crc32_1word. It was > outdated anyway. I would like to postpone the decision about the fate of > kernel_crc32_2word. > > > > The conflict in share/vm/c1/c1_compiler.cpp is somewhat tricky. I decided to > remove the file from my (8175368, s390) webrev and to enable both cpus (ppc > and s390) with this change. This ?trick? avoids conflicting changes to the > same source code line. > > > > Please find the most recent webrev here: > http://cr.openjdk.java.net/~lucy/webrevs/8175369.01/ > > > > Thank you, > > Lutz > > > > > > On 03.03.17, 17:33, "Doerr, Martin" wrote: > > > > Hi Lutz, > > > > thank you very much for implementing it for PPC64, too. > > > > Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with > other changes). > > But it should be easy to fix. > > The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any > more (same is true for s390 webrev). > > In addition, the PPC64 change was not build on top of the s390 one. The > shared code change in c1_Compiler.cpp needs to be adapted in this change and > pushed after the s390 one. > > > > As the change is very similar to what you?ve done on s390, it already > contains what I had requested in the other review. > > I only have a comment on the macroAssembler part: > > I didn't review kernel_crc32_2word as it is no longer used and should get > removed sooner or later (not necessarily with this change). > > kernel_crc32_1word contains an s390 comment "ahgi". > > > > Besides that, it looks good to me. > > > > Thanks and best regards, > > Martin > > > > > > From: hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, > Lutz > Sent: Donnerstag, 2. M?rz 2017 17:24 > To: hotspot-compiler-dev at openjdk.java.net > Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C > > > > Hi all, > > > > may I kindly request reviews for my medium size enhancement? Further down > the road, I would need a sponsor, too. > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ > > > > Description: > > This intrinsic implementation provides some performance benefit over the > standard Java implementation. It uses only well-known ?standard? > instructions, available on all supported POWER cpus. Being very similar to > the CRC32 intrinsics, it was tried to share as much code as possible between > these two. > > > > Performance was observed to increase up to 2.0x, depending on the length of > the byte array fed into CRC32C. Short byte arrays benefit more. That is due > to the fact that the Java implementation of CRC32C is well inlined and > optimized by the JIT, at least with my simple micro benchmarks. > > > > Thanks, > > Lutz > > From lutz.schmidt at sap.com Wed Mar 8 16:24:20 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Wed, 8 Mar 2017 16:24:20 +0000 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: <0F730739-1120-4E71-B0E5-2FC395B123BA@sap.com> Hi Volker, thank you for reviewing and pushing my change. Lutz On 08.03.17, 16:44, "Volker Simonis" wrote: Hi Lutz, the change looks good! As this is now s390-only, I've pushed it. Regards, Volker On Wed, Mar 8, 2017 at 3:37 PM, Schmidt, Lutz wrote: > Hi all, > > this is yet another update for my RFR. I rebased my changes on the current tip to resolve a clash in templateInterpreterGenerator_s390.cpp ? detected by Martin (mdoerr). Thank you! > > Furthermore, I removed src/share/vm/c1/c1_compiler.cpp from the changeset. As a result, the CRC32C intrinsics on s390 will not be available in c1. Only later, after 8175369 has been pushed, they will become available. This ?trick? avoids conflicting changes to the same source line by 8175368 and 8175369. > > Please find the most recent webrev at: http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/ > > Regards, > Lutz > > > > On 02.03.17, 17:22, "hotspot-compiler-dev on behalf of Schmidt, Lutz" wrote: > > Hi all, > > I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: > http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ > > I believe I still need one more review. Furthermore: any volunteer to sponsor my change? > > Thanks, > Lutz > > > > On 28.02.17, 17:07, "Doerr, Martin" wrote: > > Hi Lutz, > > thanks for implementing my suggestions and for the explanations. The change looks good to me. > > Best regards, > Martin > > > -----Original Message----- > From: Schmidt, Lutz > Sent: Dienstag, 28. Februar 2017 15:28 > To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C > > Hi Martin, > > Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ > > The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. > > Best regards, > Lutz > > > > On 28.02.17, 11:57, "Doerr, Martin" wrote: > > Hi Lutz, > > thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. > I only have some minor suggestions: > > c1_LIRGenerator_s390.cpp > load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. > As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. > The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. > > macroAssembler_s390.cpp > The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. > > stubGenerator_s390.cpp > The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." > > stubRoutines_s390.cpp > I didn't review all numbers :-), but I guess you have tested well enough? > > It'd be nice if you could share some performance numbers. > > Thanks and best regards, > Martin > > > > -----Original Message----- > From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz > Sent: Montag, 27. Februar 2017 22:33 > To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C > > Thank you, Vladimir, for looking at this. > > Regards, Lutz > > > On 27.02.17, 22:30, "Vladimir Kozlov" wrote: > > Shared changes are good. I assume s390 code will be reviewed by experts. > > Thanks, > Vladimir > > On 2/27/17 9:34 AM, Schmidt, Lutz wrote: > > Hi all, > > > > > > > > the webrev URL below was incorrect. It displayed the correct location, > > but pointed elsewhere. The issue is fixed now and the URLs are correct. > > > > > > > > Thank you! > > > > Lutz > > > > > > > > *From: *Lutz Schmidt > > *Date: *Montag, 27. Februar 2017 um 15:55 > > *To: *"hotspot-compiler-dev at openjdk.java.net" > > > > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for > > CRC32C > > > > > > > > Hi all, > > > > > > > > may I kindly request reviews for my medium enhancement? Further down the > > road, I would need a sponsor, too. > > > > > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 > > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ > > > > > > > > Description: > > > > This intrinsic implementation provides some performance benefit over the > > standard Java implementation. It uses only well-known ?standard? > > instructions, available on all supported IBM System z hardware. Being > > very similar to the CRC32 intrinsics, it was tried to share as much code > > as possible between these two. > > > > > > > > Performance may be expected to increase up to 2.0x, compared to a run > > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of > > the byte array fed into CRC32C and, to some extent, on the H/W > > generation the test runs on. > > > > > > > > Thanks, > > > > Lutz > > > > > > > > > > > > > > From volker.simonis at gmail.com Wed Mar 8 16:24:45 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 8 Mar 2017 17:24:45 +0100 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: Sorry, but I've just realized that I've unintentionally updated the shared file c1_Compiler.cpp with this push which was intended to only touch s390 files. The problem is that the latest webrev (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display any shared changes, and that's actually what Lutz apparently wanted to change in the last version (i.e. move both, this and the ppc64 changes to c1_Compiler.cpp into the ppc64 version of the change). Unfortunately, the patch file from that webrev still contained the shared changes for s390. I'm not sure how that could happen? It may be a problem with webrev.ksh in combination with the Mercurial Queues extension and the fact that Lutz had a local change in the repository from which he created the webrev. So to cut a long story short, I've just pushed Lutz's s390 change (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good faith that it only contains s390 specific changes and unintentionally updated c1_Compiler.cpp. I'm afraid there's nothing I can do now. Sorry, Volker On Wed, Mar 8, 2017 at 4:44 PM, Volker Simonis wrote: > Hi Lutz, > > the change looks good! > > As this is now s390-only, I've pushed it. > > Regards, > Volker > > > On Wed, Mar 8, 2017 at 3:37 PM, Schmidt, Lutz wrote: >> Hi all, >> >> this is yet another update for my RFR. I rebased my changes on the current tip to resolve a clash in templateInterpreterGenerator_s390.cpp ? detected by Martin (mdoerr). Thank you! >> >> Furthermore, I removed src/share/vm/c1/c1_compiler.cpp from the changeset. As a result, the CRC32C intrinsics on s390 will not be available in c1. Only later, after 8175369 has been pushed, they will become available. This ?trick? avoids conflicting changes to the same source line by 8175368 and 8175369. >> >> Please find the most recent webrev at: http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/ >> >> Regards, >> Lutz >> >> >> >> On 02.03.17, 17:22, "hotspot-compiler-dev on behalf of Schmidt, Lutz" wrote: >> >> Hi all, >> >> I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: >> http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ >> >> I believe I still need one more review. Furthermore: any volunteer to sponsor my change? >> >> Thanks, >> Lutz >> >> >> >> On 28.02.17, 17:07, "Doerr, Martin" wrote: >> >> Hi Lutz, >> >> thanks for implementing my suggestions and for the explanations. The change looks good to me. >> >> Best regards, >> Martin >> >> >> -----Original Message----- >> From: Schmidt, Lutz >> Sent: Dienstag, 28. Februar 2017 15:28 >> To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net >> Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C >> >> Hi Martin, >> >> Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ >> >> The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. >> >> Best regards, >> Lutz >> >> >> >> On 28.02.17, 11:57, "Doerr, Martin" wrote: >> >> Hi Lutz, >> >> thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. >> I only have some minor suggestions: >> >> c1_LIRGenerator_s390.cpp >> load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. >> As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. >> The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. >> >> macroAssembler_s390.cpp >> The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. >> >> stubGenerator_s390.cpp >> The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." >> >> stubRoutines_s390.cpp >> I didn't review all numbers :-), but I guess you have tested well enough? >> >> It'd be nice if you could share some performance numbers. >> >> Thanks and best regards, >> Martin >> >> >> >> -----Original Message----- >> From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz >> Sent: Montag, 27. Februar 2017 22:33 >> To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net >> Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C >> >> Thank you, Vladimir, for looking at this. >> >> Regards, Lutz >> >> >> On 27.02.17, 22:30, "Vladimir Kozlov" wrote: >> >> Shared changes are good. I assume s390 code will be reviewed by experts. >> >> Thanks, >> Vladimir >> >> On 2/27/17 9:34 AM, Schmidt, Lutz wrote: >> > Hi all, >> > >> > >> > >> > the webrev URL below was incorrect. It displayed the correct location, >> > but pointed elsewhere. The issue is fixed now and the URLs are correct. >> > >> > >> > >> > Thank you! >> > >> > Lutz >> > >> > >> > >> > *From: *Lutz Schmidt >> > *Date: *Montag, 27. Februar 2017 um 15:55 >> > *To: *"hotspot-compiler-dev at openjdk.java.net" >> > >> > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for >> > CRC32C >> > >> > >> > >> > Hi all, >> > >> > >> > >> > may I kindly request reviews for my medium enhancement? Further down the >> > road, I would need a sponsor, too. >> > >> > >> > >> > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 >> > >> > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ >> > >> > >> > >> > Description: >> > >> > This intrinsic implementation provides some performance benefit over the >> > standard Java implementation. It uses only well-known ?standard? >> > instructions, available on all supported IBM System z hardware. Being >> > very similar to the CRC32 intrinsics, it was tried to share as much code >> > as possible between these two. >> > >> > >> > >> > Performance may be expected to increase up to 2.0x, compared to a run >> > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of >> > the byte array fed into CRC32C and, to some extent, on the H/W >> > generation the test runs on. >> > >> > >> > >> > Thanks, >> > >> > Lutz >> > >> > >> > >> >> >> >> >> >> >> >> From lutz.schmidt at sap.com Wed Mar 8 16:30:18 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Wed, 8 Mar 2017 16:30:18 +0000 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> Message-ID: <884BEDCA-EADF-4CB1-9F8C-CFA82FC73ADE@sap.com> Volker, Vladimir, I guess I have to apologize for this mess! Obviously, I haven?t mastered the tools yet. I will try hard to prevent this from happening again. Besides that, thank you Volker for reviewing my ppc change and for fixing the issue with the s390 change. Regards, Lutz On 08.03.17, 17:20, "Volker Simonis" wrote: Hi Lutz, Vladimir, change looks good! Your webrev for the s390 version of the CRC32C intrinsics (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display any shared changes, and that's actually what you apparently wanted to change in the last version (i.e. move the changes to c1_Compiler.cpp into this change). Unfortunately, the patch file from that webrev still contains these shared change. I'm not sure how that could happen? It may be a problem with webrev.ksh in combination with the Mercurial Queues extension and the fact that you had a local change in the repository from which you've created the webrev. So to cut a long story short, I've just pushed Lutz's s390 change (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good faith that it only contains s390 specific changes and unintentionally updated c1_Compiler.cpp. This requires yet another version of this change because it also updates c1_Compiler.cpp: http://cr.openjdk.java.net/~simonis/webrevs/2017/8175369/ @Vladimir (or anybody else from Oracle) - could you please sponsor this reviewed (and besides the tiny change in c1_Compiler.cpp, ppc64 only) change? Thank you and sorry for the confusion, Volker On Wed, Mar 8, 2017 at 3:38 PM, Schmidt, Lutz wrote: > Martin, thanks for reviewing my change! > > > > All, > > Sorry for the delayed response. I had to take care of some urgent private > stuff the last few days. > > > > After rebasing, I have updated the comment in kernel_crc32_1word. It was > outdated anyway. I would like to postpone the decision about the fate of > kernel_crc32_2word. > > > > The conflict in share/vm/c1/c1_compiler.cpp is somewhat tricky. I decided to > remove the file from my (8175368, s390) webrev and to enable both cpus (ppc > and s390) with this change. This ?trick? avoids conflicting changes to the > same source code line. > > > > Please find the most recent webrev here: > http://cr.openjdk.java.net/~lucy/webrevs/8175369.01/ > > > > Thank you, > > Lutz > > > > > > On 03.03.17, 17:33, "Doerr, Martin" wrote: > > > > Hi Lutz, > > > > thank you very much for implementing it for PPC64, too. > > > > Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with > other changes). > > But it should be easy to fix. > > The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any > more (same is true for s390 webrev). > > In addition, the PPC64 change was not build on top of the s390 one. The > shared code change in c1_Compiler.cpp needs to be adapted in this change and > pushed after the s390 one. > > > > As the change is very similar to what you?ve done on s390, it already > contains what I had requested in the other review. > > I only have a comment on the macroAssembler part: > > I didn't review kernel_crc32_2word as it is no longer used and should get > removed sooner or later (not necessarily with this change). > > kernel_crc32_1word contains an s390 comment "ahgi". > > > > Besides that, it looks good to me. > > > > Thanks and best regards, > > Martin > > > > > > From: hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, > Lutz > Sent: Donnerstag, 2. M?rz 2017 17:24 > To: hotspot-compiler-dev at openjdk.java.net > Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C > > > > Hi all, > > > > may I kindly request reviews for my medium size enhancement? Further down > the road, I would need a sponsor, too. > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ > > > > Description: > > This intrinsic implementation provides some performance benefit over the > standard Java implementation. It uses only well-known ?standard? > instructions, available on all supported POWER cpus. Being very similar to > the CRC32 intrinsics, it was tried to share as much code as possible between > these two. > > > > Performance was observed to increase up to 2.0x, depending on the length of > the byte array fed into CRC32C. Short byte arrays benefit more. That is due > to the fact that the Java implementation of CRC32C is well inlined and > optimized by the JIT, at least with my simple micro benchmarks. > > > > Thanks, > > Lutz > > From vladimir.kozlov at oracle.com Thu Mar 9 00:32:51 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 8 Mar 2017 16:32:51 -0800 Subject: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C In-Reply-To: References: <63ff237e-2682-d91a-85f2-67e7a008d9ea@oracle.com> <5e2830119227429b9e6a37ab4d3e6d35@sap.com> <91A198C0-58B3-49B8-9E1E-734AA9129E7E@sap.com> <37470f1c5ee14fcdaeab40dff379efa1@sap.com> Message-ID: <1bad1612-655f-579e-fb78-d8ba8fa09380@oracle.com> No problem. File a bug. Undo changes you don't want and I will review and sponsor it (running through JPRT to make sure everything works). Thanks, Vladimir On 3/8/17 8:24 AM, Volker Simonis wrote: > Sorry, but I've just realized that I've unintentionally updated the > shared file c1_Compiler.cpp with this push which was intended to only > touch s390 files. > > The problem is that the latest webrev > (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display > any shared changes, and that's actually what Lutz apparently wanted to > change in the last version (i.e. move both, this and the ppc64 changes > to c1_Compiler.cpp into the ppc64 version of the change). > Unfortunately, the patch file from that webrev still contained the > shared changes for s390. > > I'm not sure how that could happen? It may be a problem with > webrev.ksh in combination with the Mercurial Queues extension and the > fact that Lutz had a local change in the repository from which he > created the webrev. > > So to cut a long story short, I've just pushed Lutz's s390 change > (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good > faith that it only contains s390 specific changes and unintentionally > updated c1_Compiler.cpp. > > I'm afraid there's nothing I can do now. > Sorry, > Volker > > > On Wed, Mar 8, 2017 at 4:44 PM, Volker Simonis wrote: >> Hi Lutz, >> >> the change looks good! >> >> As this is now s390-only, I've pushed it. >> >> Regards, >> Volker >> >> >> On Wed, Mar 8, 2017 at 3:37 PM, Schmidt, Lutz wrote: >>> Hi all, >>> >>> this is yet another update for my RFR. I rebased my changes on the current tip to resolve a clash in templateInterpreterGenerator_s390.cpp ? detected by Martin (mdoerr). Thank you! >>> >>> Furthermore, I removed src/share/vm/c1/c1_compiler.cpp from the changeset. As a result, the CRC32C intrinsics on s390 will not be available in c1. Only later, after 8175369 has been pushed, they will become available. This ?trick? avoids conflicting changes to the same source line by 8175368 and 8175369. >>> >>> Please find the most recent webrev at: http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/ >>> >>> Regards, >>> Lutz >>> >>> >>> >>> On 02.03.17, 17:22, "hotspot-compiler-dev on behalf of Schmidt, Lutz" wrote: >>> >>> Hi all, >>> >>> I have fixed a tiny little bug (copy result to result register) in c1_LIRAssembler_s390.cpp and created a new webrev: >>> http://cr.openjdk.java.net/~lucy/webrevs/8175368.02/ >>> >>> I believe I still need one more review. Furthermore: any volunteer to sponsor my change? >>> >>> Thanks, >>> Lutz >>> >>> >>> >>> On 28.02.17, 17:07, "Doerr, Martin" wrote: >>> >>> Hi Lutz, >>> >>> thanks for implementing my suggestions and for the explanations. The change looks good to me. >>> >>> Best regards, >>> Martin >>> >>> >>> -----Original Message----- >>> From: Schmidt, Lutz >>> Sent: Dienstag, 28. Februar 2017 15:28 >>> To: Doerr, Martin ; Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net >>> Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C >>> >>> Hi Martin, >>> >>> Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/ >>> >>> The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect. >>> >>> Best regards, >>> Lutz >>> >>> >>> >>> On 28.02.17, 11:57, "Doerr, Martin" wrote: >>> >>> Hi Lutz, >>> >>> thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C. >>> I only have some minor suggestions: >>> >>> c1_LIRGenerator_s390.cpp >>> load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters. >>> As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too. >>> The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely. >>> >>> macroAssembler_s390.cpp >>> The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem. >>> >>> stubGenerator_s390.cpp >>> The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..." >>> >>> stubRoutines_s390.cpp >>> I didn't review all numbers :-), but I guess you have tested well enough? >>> >>> It'd be nice if you could share some performance numbers. >>> >>> Thanks and best regards, >>> Martin >>> >>> >>> >>> -----Original Message----- >>> From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz >>> Sent: Montag, 27. Februar 2017 22:33 >>> To: Vladimir Kozlov ; hotspot-compiler-dev at openjdk.java.net >>> Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C >>> >>> Thank you, Vladimir, for looking at this. >>> >>> Regards, Lutz >>> >>> >>> On 27.02.17, 22:30, "Vladimir Kozlov" wrote: >>> >>> Shared changes are good. I assume s390 code will be reviewed by experts. >>> >>> Thanks, >>> Vladimir >>> >>> On 2/27/17 9:34 AM, Schmidt, Lutz wrote: >>> > Hi all, >>> > >>> > >>> > >>> > the webrev URL below was incorrect. It displayed the correct location, >>> > but pointed elsewhere. The issue is fixed now and the URLs are correct. >>> > >>> > >>> > >>> > Thank you! >>> > >>> > Lutz >>> > >>> > >>> > >>> > *From: *Lutz Schmidt >>> > *Date: *Montag, 27. Februar 2017 um 15:55 >>> > *To: *"hotspot-compiler-dev at openjdk.java.net" >>> > >>> > *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for >>> > CRC32C >>> > >>> > >>> > >>> > Hi all, >>> > >>> > >>> > >>> > may I kindly request reviews for my medium enhancement? Further down the >>> > road, I would need a sponsor, too. >>> > >>> > >>> > >>> > Bug: https://bugs.openjdk.java.net/browse/JDK-8175368 >>> > >>> > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/ >>> > >>> > >>> > >>> > Description: >>> > >>> > This intrinsic implementation provides some performance benefit over the >>> > standard Java implementation. It uses only well-known ?standard? >>> > instructions, available on all supported IBM System z hardware. Being >>> > very similar to the CRC32 intrinsics, it was tried to share as much code >>> > as possible between these two. >>> > >>> > >>> > >>> > Performance may be expected to increase up to 2.0x, compared to a run >>> > with ?XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of >>> > the byte array fed into CRC32C and, to some extent, on the H/W >>> > generation the test runs on. >>> > >>> > >>> > >>> > Thanks, >>> > >>> > Lutz >>> > >>> > >>> > >>> >>> >>> >>> >>> >>> >>> >>> From vladimir.kozlov at oracle.com Thu Mar 9 00:39:55 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 8 Mar 2017 16:39:55 -0800 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: <884BEDCA-EADF-4CB1-9F8C-CFA82FC73ADE@sap.com> References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> <884BEDCA-EADF-4CB1-9F8C-CFA82FC73ADE@sap.com> Message-ID: <5d50632f-77d1-82ca-0d0a-834ddf7ea5ad@oracle.com> I read 8175368 thread first so I thought we need additional bug to remove shared changes. But since this 8175369 changes have update for c1_Compiler.cpp we can use it to sort everything out. Changes to c1_Compiler.cpp are very simple so they are fine to me. I will sponsor and resolve conflict. Thanks, Vladimir On 3/8/17 8:30 AM, Schmidt, Lutz wrote: > Volker, Vladimir, > > I guess I have to apologize for this mess! Obviously, I haven?t mastered the tools yet. I will try hard to prevent this from happening again. > > Besides that, thank you Volker for reviewing my ppc change and for fixing the issue with the s390 change. > > Regards, > Lutz > > > > On 08.03.17, 17:20, "Volker Simonis" wrote: > > Hi Lutz, Vladimir, > > change looks good! > > Your webrev for the s390 version of the CRC32C intrinsics > (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display > any shared changes, and that's actually what you apparently wanted to > change in the last version (i.e. move the changes to c1_Compiler.cpp > into this change). Unfortunately, the patch file from that webrev > still contains these shared change. > > I'm not sure how that could happen? It may be a problem with > webrev.ksh in combination with the Mercurial Queues extension and the > fact that you had a local change in the repository from which you've > created the webrev. > > So to cut a long story short, I've just pushed Lutz's s390 change > (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good > faith that it only contains s390 specific changes and unintentionally > updated c1_Compiler.cpp. This requires yet another version of this > change because it also updates c1_Compiler.cpp: > > http://cr.openjdk.java.net/~simonis/webrevs/2017/8175369/ > > > @Vladimir (or anybody else from Oracle) - could you please sponsor > this reviewed (and besides the tiny change in c1_Compiler.cpp, ppc64 > only) change? > > Thank you and sorry for the confusion, > Volker > > > On Wed, Mar 8, 2017 at 3:38 PM, Schmidt, Lutz wrote: > > Martin, thanks for reviewing my change! > > > > > > > > All, > > > > Sorry for the delayed response. I had to take care of some urgent private > > stuff the last few days. > > > > > > > > After rebasing, I have updated the comment in kernel_crc32_1word. It was > > outdated anyway. I would like to postpone the decision about the fate of > > kernel_crc32_2word. > > > > > > > > The conflict in share/vm/c1/c1_compiler.cpp is somewhat tricky. I decided to > > remove the file from my (8175368, s390) webrev and to enable both cpus (ppc > > and s390) with this change. This ?trick? avoids conflicting changes to the > > same source code line. > > > > > > > > Please find the most recent webrev here: > > http://cr.openjdk.java.net/~lucy/webrevs/8175369.01/ > > > > > > > > Thank you, > > > > Lutz > > > > > > > > > > > > On 03.03.17, 17:33, "Doerr, Martin" wrote: > > > > > > > > Hi Lutz, > > > > > > > > thank you very much for implementing it for PPC64, too. > > > > > > > > Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with > > other changes). > > > > But it should be easy to fix. > > > > The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any > > more (same is true for s390 webrev). > > > > In addition, the PPC64 change was not build on top of the s390 one. The > > shared code change in c1_Compiler.cpp needs to be adapted in this change and > > pushed after the s390 one. > > > > > > > > As the change is very similar to what you?ve done on s390, it already > > contains what I had requested in the other review. > > > > I only have a comment on the macroAssembler part: > > > > I didn't review kernel_crc32_2word as it is no longer used and should get > > removed sooner or later (not necessarily with this change). > > > > kernel_crc32_1word contains an s390 comment "ahgi". > > > > > > > > Besides that, it looks good to me. > > > > > > > > Thanks and best regards, > > > > Martin > > > > > > > > > > > > From: hotspot-compiler-dev > > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, > > Lutz > > Sent: Donnerstag, 2. M?rz 2017 17:24 > > To: hotspot-compiler-dev at openjdk.java.net > > Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C > > > > > > > > Hi all, > > > > > > > > may I kindly request reviews for my medium size enhancement? Further down > > the road, I would need a sponsor, too. > > > > > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 > > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ > > > > > > > > Description: > > > > This intrinsic implementation provides some performance benefit over the > > standard Java implementation. It uses only well-known ?standard? > > instructions, available on all supported POWER cpus. Being very similar to > > the CRC32 intrinsics, it was tried to share as much code as possible between > > these two. > > > > > > > > Performance was observed to increase up to 2.0x, depending on the length of > > the byte array fed into CRC32C. Short byte arrays benefit more. That is due > > to the fact that the Java implementation of CRC32C is well inlined and > > optimized by the JIT, at least with my simple micro benchmarks. > > > > > > > > Thanks, > > > > Lutz > > > > > > From vladimir.kozlov at oracle.com Thu Mar 9 01:24:05 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 8 Mar 2017 17:24:05 -0800 Subject: [9] RFR: 8175345: possible null pointer dereference defects In-Reply-To: References: Message-ID: <0b5098e3-1415-72f2-0e55-c1424506ac96@oracle.com> callnode.cpp - proj_out() is expensive. I would suggest to check returns_pointer() first: Node* proj = returns_pointer() ? proj_out(TypeFunc::Parms) : NULL; if (proj != NULL) { const TypeInstPtr* inst_t = phase->type(proj)->isa_instptr(); Other files changes are fine. thanks, Vladimir On 3/7/17 10:53 PM, Rahul Raghavan wrote: > Hi, > > Please review following patch proposal to avoid > possible null pointer dereference warnings / errors for internal tests. > > - http://cr.openjdk.java.net/~rraghavan/8175345/webrev.01/ > > > - internal bug - https://bugs.openjdk.java.net/browse/JDK-8175345 > > -- Possible null-pointer-deref type issues reported with Internal tests > due to the case that "Function MultiNode::proj_out may return constant 'NULL'" > > Already following type checks are in place - > .e.g.: [hotspot/src/share/vm/opto/multnode.cp] > bool ProjNode::is_uncommon_trap_if_pattern(Deoptimization::DeoptReason reason) { > > ProjNode* other_proj = iff->proj_out(1-_con); > if (other_proj == NULL) // Should never happen.. > return false; > > So required explicit checks added at following reported locations in , > - IfNode::dominated_by - hotspot/src/share/vm/opto/ifnode.cpp > - StringConcat::validate_control_flow - hotspot/src/share/vm/opto/stringopts.cpp > - PhaseIdealLoop::intrinsify_fill - hotspot/src/share/vm/opto/loopTransform.cpp > - CallNode::may_modify - hotspot/src/share/vm/opto/callnode.cpp > > -- Found all valid reported defects issues with internal tests are indirectly related to above. > -- Confirmed no issues with testing - jprt run (-testset hotspot). > > > Thanks, > Rahul > From vladimir.kozlov at oracle.com Thu Mar 9 01:37:54 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 8 Mar 2017 17:37:54 -0800 Subject: [9] RFR (S): 8175340: Possible invalid memory accesses due to ciMethodData::bci_to_data() returning NULL In-Reply-To: <03e65282-417e-2c63-1d09-ec12d46557da@oracle.com> References: <03e65282-417e-2c63-1d09-ec12d46557da@oracle.com> Message-ID: Looks good. thanks, Vladimir On 3/8/17 1:57 AM, Zolt?n Maj? wrote: > Hi, > > > please review the fix for 8175340. > > https://bugs.openjdk.java.net/browse/JDK-8175340 > http://cr.openjdk.java.net/~zmajo/8175340/webrev.01/ > > The method ciMethodData::bci_to_data() can return NULL instead of a valid ciProfileData*. Some users of the ciProfileData returned by bci_to_data() do not check if the returned value is NULL, which > can result in an invalid memory accesses. > > The issue has never happened in practice. While working on the issue, however, I experimented with a VM version that had asserts in Parse::branch_prediction and to Parse::dynamic_branch_prediction > checking that bci_to_data() is not NULL. I was able to trigger some of the asserts I added by running the VM with -XX:-ProfileInterpreter -XX:-TieredCompilation. (The asserts are not part of the patch > sent out for review.) > > The fix I propose is simple: Check if bci_to_data() is NULL, if yes, do not use profiling information / generate profiling code. > > The fix passes JPRT and RBT testing. > > Thank you! > > Best regards, > > > Zoltan > From rahul.v.raghavan at oracle.com Thu Mar 9 06:58:12 2017 From: rahul.v.raghavan at oracle.com (Rahul Raghavan) Date: Wed, 8 Mar 2017 22:58:12 -0800 (PST) Subject: [9] RFR: 8175345: possible null pointer dereference defects In-Reply-To: <0b5098e3-1415-72f2-0e55-c1424506ac96@oracle.com> References: <0b5098e3-1415-72f2-0e55-c1424506ac96@oracle.com> Message-ID: <8480550b-d884-4bb4-9921-d8b1e5b5f3d6@default> Hi, Thank you Vladimir for review comments. Yes agree with the proposed change in callnode.cpp. Please find the revised - http://cr.openjdk.java.net/~rraghavan/8175345/webrev.02/ Thanks, Rahul > -----Original Message----- > From: Vladimir Kozlov > Sent: Thursday, March 09, 2017 6:54 AM > To: Rahul Raghavan; hotspot-compiler-dev at openjdk.java.net > Subject: Re: [9] RFR: 8175345: possible null pointer dereference defects > > callnode.cpp - proj_out() is expensive. I would suggest to check returns_pointer() first: > > Node* proj = returns_pointer() ? proj_out(TypeFunc::Parms) : NULL; > if (proj != NULL) { > const TypeInstPtr* inst_t = phase->type(proj)->isa_instptr(); > > Other files changes are fine. > > thanks, > Vladimir > From vladimir.kozlov at oracle.com Thu Mar 9 07:32:51 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 8 Mar 2017 23:32:51 -0800 Subject: [9] RFR: 8175345: possible null pointer dereference defects In-Reply-To: <8480550b-d884-4bb4-9921-d8b1e5b5f3d6@default> References: <0b5098e3-1415-72f2-0e55-c1424506ac96@oracle.com> <8480550b-d884-4bb4-9921-d8b1e5b5f3d6@default> Message-ID: Good. Thanks, Vladimir On 3/8/17 10:58 PM, Rahul Raghavan wrote: > Hi, > > Thank you Vladimir for review comments. > Yes agree with the proposed change in callnode.cpp. > > Please find the revised - > http://cr.openjdk.java.net/~rraghavan/8175345/webrev.02/ > > Thanks, > Rahul > >> -----Original Message----- >> From: Vladimir Kozlov >> Sent: Thursday, March 09, 2017 6:54 AM >> To: Rahul Raghavan; hotspot-compiler-dev at openjdk.java.net >> Subject: Re: [9] RFR: 8175345: possible null pointer dereference defects >> >> callnode.cpp - proj_out() is expensive. I would suggest to check returns_pointer() first: >> >> Node* proj = returns_pointer() ? proj_out(TypeFunc::Parms) : NULL; >> if (proj != NULL) { >> const TypeInstPtr* inst_t = phase->type(proj)->isa_instptr(); >> >> Other files changes are fine. >> >> thanks, >> Vladimir >> From lutz.schmidt at sap.com Thu Mar 9 08:41:47 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Thu, 9 Mar 2017 08:41:47 +0000 Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C In-Reply-To: <5d50632f-77d1-82ca-0d0a-834ddf7ea5ad@oracle.com> References: <50C6CF83-625E-4E92-BB6D-C83D7270186E@sap.com> <884BEDCA-EADF-4CB1-9F8C-CFA82FC73ADE@sap.com> <5d50632f-77d1-82ca-0d0a-834ddf7ea5ad@oracle.com> Message-ID: Thank you, Vladimir! Regards, Lutz On 09.03.17, 01:39, "Vladimir Kozlov" wrote: I read 8175368 thread first so I thought we need additional bug to remove shared changes. But since this 8175369 changes have update for c1_Compiler.cpp we can use it to sort everything out. Changes to c1_Compiler.cpp are very simple so they are fine to me. I will sponsor and resolve conflict. Thanks, Vladimir On 3/8/17 8:30 AM, Schmidt, Lutz wrote: > Volker, Vladimir, > > I guess I have to apologize for this mess! Obviously, I haven?t mastered the tools yet. I will try hard to prevent this from happening again. > > Besides that, thank you Volker for reviewing my ppc change and for fixing the issue with the s390 change. > > Regards, > Lutz > > > > On 08.03.17, 17:20, "Volker Simonis" wrote: > > Hi Lutz, Vladimir, > > change looks good! > > Your webrev for the s390 version of the CRC32C intrinsics > (http://cr.openjdk.java.net/~lucy/webrevs/8175368.03/) doesn't display > any shared changes, and that's actually what you apparently wanted to > change in the last version (i.e. move the changes to c1_Compiler.cpp > into this change). Unfortunately, the patch file from that webrev > still contains these shared change. > > I'm not sure how that could happen? It may be a problem with > webrev.ksh in combination with the Mercurial Queues extension and the > fact that you had a local change in the repository from which you've > created the webrev. > > So to cut a long story short, I've just pushed Lutz's s390 change > (http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/18ace35ee108) in good > faith that it only contains s390 specific changes and unintentionally > updated c1_Compiler.cpp. This requires yet another version of this > change because it also updates c1_Compiler.cpp: > > http://cr.openjdk.java.net/~simonis/webrevs/2017/8175369/ > > > @Vladimir (or anybody else from Oracle) - could you please sponsor > this reviewed (and besides the tiny change in c1_Compiler.cpp, ppc64 > only) change? > > Thank you and sorry for the confusion, > Volker > > > On Wed, Mar 8, 2017 at 3:38 PM, Schmidt, Lutz wrote: > > Martin, thanks for reviewing my change! > > > > > > > > All, > > > > Sorry for the delayed response. I had to take care of some urgent private > > stuff the last few days. > > > > > > > > After rebasing, I have updated the comment in kernel_crc32_1word. It was > > outdated anyway. I would like to postpone the decision about the fate of > > kernel_crc32_2word. > > > > > > > > The conflict in share/vm/c1/c1_compiler.cpp is somewhat tricky. I decided to > > remove the file from my (8175368, s390) webrev and to enable both cpus (ppc > > and s390) with this change. This ?trick? avoids conflicting changes to the > > same source code line. > > > > > > > > Please find the most recent webrev here: > > http://cr.openjdk.java.net/~lucy/webrevs/8175369.01/ > > > > > > > > Thank you, > > > > Lutz > > > > > > > > > > > > On 03.03.17, 17:33, "Doerr, Martin" wrote: > > > > > > > > Hi Lutz, > > > > > > > > thank you very much for implementing it for PPC64, too. > > > > > > > > Unfortunately, the patch doesn?t apply cleanly any more (due to clashes with > > other changes). > > > > But it should be easy to fix. > > > > The copyright change of templateInterpreterGenerator_ppc.cpp doesn?t fit any > > more (same is true for s390 webrev). > > > > In addition, the PPC64 change was not build on top of the s390 one. The > > shared code change in c1_Compiler.cpp needs to be adapted in this change and > > pushed after the s390 one. > > > > > > > > As the change is very similar to what you?ve done on s390, it already > > contains what I had requested in the other review. > > > > I only have a comment on the macroAssembler part: > > > > I didn't review kernel_crc32_2word as it is no longer used and should get > > removed sooner or later (not necessarily with this change). > > > > kernel_crc32_1word contains an s390 comment "ahgi". > > > > > > > > Besides that, it looks good to me. > > > > > > > > Thanks and best regards, > > > > Martin > > > > > > > > > > > > From: hotspot-compiler-dev > > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, > > Lutz > > Sent: Donnerstag, 2. M?rz 2017 17:24 > > To: hotspot-compiler-dev at openjdk.java.net > > Subject: RFR (M) 8175369: [ppc] Provide intrinsic implementation for CRC32C > > > > > > > > Hi all, > > > > > > > > may I kindly request reviews for my medium size enhancement? Further down > > the road, I would need a sponsor, too. > > > > > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8175369 > > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175369/ > > > > > > > > Description: > > > > This intrinsic implementation provides some performance benefit over the > > standard Java implementation. It uses only well-known ?standard? > > instructions, available on all supported POWER cpus. Being very similar to > > the CRC32 intrinsics, it was tried to share as much code as possible between > > these two. > > > > > > > > Performance was observed to increase up to 2.0x, depending on the length of > > the byte array fed into CRC32C. Short byte arrays benefit more. That is due > > to the fact that the Java implementation of CRC32C is well inlined and > > optimized by the JIT, at least with my simple micro benchmarks. > > > > > > > > Thanks, > > > > Lutz > > > > > > From zoltan.majo at oracle.com Thu Mar 9 13:24:10 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Thu, 9 Mar 2017 14:24:10 +0100 Subject: [9] RFR (S): 8175340: Possible invalid memory accesses due to ciMethodData::bci_to_data() returning NULL In-Reply-To: References: <03e65282-417e-2c63-1d09-ec12d46557da@oracle.com> Message-ID: <43cf4dc0-2a72-4d66-f8a4-daa0a0dd8ad5@oracle.com> Thank you for the review, Vladimir! Best regards, Zoltan On 03/09/2017 02:37 AM, Vladimir Kozlov wrote: > Looks good. > > thanks, > Vladimir > > On 3/8/17 1:57 AM, Zolt?n Maj? wrote: >> Hi, >> >> >> please review the fix for 8175340. >> >> https://bugs.openjdk.java.net/browse/JDK-8175340 >> http://cr.openjdk.java.net/~zmajo/8175340/webrev.01/ >> >> The method ciMethodData::bci_to_data() can return NULL instead of a >> valid ciProfileData*. Some users of the ciProfileData returned by >> bci_to_data() do not check if the returned value is NULL, which >> can result in an invalid memory accesses. >> >> The issue has never happened in practice. While working on the issue, >> however, I experimented with a VM version that had asserts in >> Parse::branch_prediction and to Parse::dynamic_branch_prediction >> checking that bci_to_data() is not NULL. I was able to trigger some >> of the asserts I added by running the VM with -XX:-ProfileInterpreter >> -XX:-TieredCompilation. (The asserts are not part of the patch >> sent out for review.) >> >> The fix I propose is simple: Check if bci_to_data() is NULL, if yes, >> do not use profiling information / generate profiling code. >> >> The fix passes JPRT and RBT testing. >> >> Thank you! >> >> Best regards, >> >> >> Zoltan >> From tobias.hartmann at oracle.com Thu Mar 9 13:56:23 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 9 Mar 2017 14:56:23 +0100 Subject: [10] RFR(XS): 8176441: assert(false) failed: modified node was not processed by IGVN.transform_old() Message-ID: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> Hi, please review the following patch: https://bugs.openjdk.java.net/browse/JDK-8176441 http://cr.openjdk.java.net/~thartmann/8176441/webrev.00/ The shiftNode needs to be added to the IGVN worklist after being modified. This was introduced by [1]. Tested with replay compilation and RBT (running). Thanks, Tobias [1] https://bugs.openjdk.java.net/browse/JDK-8173470 From vladimir.x.ivanov at oracle.com Thu Mar 9 15:08:47 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 9 Mar 2017 18:08:47 +0300 Subject: [10] RFR(XS): 8176441: assert(false) failed: modified node was not processed by IGVN.transform_old() In-Reply-To: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> References: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> Message-ID: Looks good. Best regards, Vladimir Ivanov On 3/9/17 4:56 PM, Tobias Hartmann wrote: > Hi, > > please review the following patch: > https://bugs.openjdk.java.net/browse/JDK-8176441 > http://cr.openjdk.java.net/~thartmann/8176441/webrev.00/ > > The shiftNode needs to be added to the IGVN worklist after being modified. This was introduced by [1]. > > Tested with replay compilation and RBT (running). > > Thanks, > Tobias > > [1] https://bugs.openjdk.java.net/browse/JDK-8173470 > From tobias.hartmann at oracle.com Thu Mar 9 15:10:25 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 9 Mar 2017 16:10:25 +0100 Subject: [10] RFR(XS): 8176441: assert(false) failed: modified node was not processed by IGVN.transform_old() In-Reply-To: References: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> Message-ID: Thanks, Vladimir! Best regards, Tobias On 09.03.2017 16:08, Vladimir Ivanov wrote: > Looks good. > > Best regards, > Vladimir Ivanov > > On 3/9/17 4:56 PM, Tobias Hartmann wrote: >> Hi, >> >> please review the following patch: >> https://bugs.openjdk.java.net/browse/JDK-8176441 >> http://cr.openjdk.java.net/~thartmann/8176441/webrev.00/ >> >> The shiftNode needs to be added to the IGVN worklist after being modified. This was introduced by [1]. >> >> Tested with replay compilation and RBT (running). >> >> Thanks, >> Tobias >> >> [1] https://bugs.openjdk.java.net/browse/JDK-8173470 >> From vladimir.x.ivanov at oracle.com Thu Mar 9 16:50:53 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 9 Mar 2017 19:50:53 +0300 Subject: RFA (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: <1f3bb596-8945-2ab5-b0d1-0ef37812a6d2@redhat.com> References: <77ca2f0e-dddd-8357-f94e-bde773bdab49@redhat.com> <20170303230903.GA3196@vimes> <993390c4-88c4-1c65-03af-47314dbdbfa2@redhat.com> <1f3bb596-8945-2ab5-b0d1-0ef37812a6d2@redhat.com> Message-ID: <4e9ea6e7-5bb6-1e33-c657-013d0f9d93cf@oracle.com> Pushed: http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/0e53cdb9fc2a Best regards, Vladimir Ivanov On 3/8/17 4:24 PM, Aleksey Shipilev wrote: > (should have copied hs-comp-dev@, sorry) > > Need a sponsor, thanks! > > 8u changeset, if you need one: > http://cr.openjdk.java.net/~shade/8175887/hs-8175887-8u.changeset > > -Aleksey > > On 03/06/2017 10:36 AM, Aleksey Shipilev wrote: >> Thanks Rob! >> >> Vladimir Ivanov, could you sponsor this one too, please? >> >> -Aleksey >> >> On 03/04/2017 12:09 AM, Rob McKenna wrote: >>> Approved, please work with the compiler team to find an appropriate >>> sponsor. >>> >>> -Rob >>> >>> On 03/03/17 06:48, Aleksey Shipilev wrote: >>>> Hi, >>>> >>>> Please approve the backport of this important bugfix to 8u: >>>> >>>> Bug: >>>> https://bugs.openjdk.java.net/browse/JDK-8175887 >>>> >>>> JDK 9 changeset: >>>> http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 >>>> >>>> Compiler folks agree with backport, and nightlies seem clean: >>>> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2017-March/025767.html >>>> >>>> JDK 8u webrev: >>>> http://cr.openjdk.java.net/~shade/8175887/webrev.04.8u/ >>>> >>>> Product change applies cleanly, but test needs to change j.i.m.Unsafe to >>>> s.m.Unsafe. >>>> >>>> Testing: Linux x86_64/release hotspot/test/compiler/c1 before/after the fix. >>>> >>>> Need a sponsor to push. >>>> >>>> Thanks, >>>> -Aleksey >>>> >> > From shade at redhat.com Thu Mar 9 16:52:40 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 9 Mar 2017 17:52:40 +0100 Subject: RFA (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect In-Reply-To: <4e9ea6e7-5bb6-1e33-c657-013d0f9d93cf@oracle.com> References: <77ca2f0e-dddd-8357-f94e-bde773bdab49@redhat.com> <20170303230903.GA3196@vimes> <993390c4-88c4-1c65-03af-47314dbdbfa2@redhat.com> <1f3bb596-8945-2ab5-b0d1-0ef37812a6d2@redhat.com> <4e9ea6e7-5bb6-1e33-c657-013d0f9d93cf@oracle.com> Message-ID: Thank you! -Aleksey On 03/09/2017 05:50 PM, Vladimir Ivanov wrote: > Pushed: http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/0e53cdb9fc2a > > Best regards, > Vladimir Ivanov > > On 3/8/17 4:24 PM, Aleksey Shipilev wrote: >> (should have copied hs-comp-dev@, sorry) >> >> Need a sponsor, thanks! >> >> 8u changeset, if you need one: >> http://cr.openjdk.java.net/~shade/8175887/hs-8175887-8u.changeset >> >> -Aleksey >> >> On 03/06/2017 10:36 AM, Aleksey Shipilev wrote: >>> Thanks Rob! >>> >>> Vladimir Ivanov, could you sponsor this one too, please? >>> >>> -Aleksey >>> >>> On 03/04/2017 12:09 AM, Rob McKenna wrote: >>>> Approved, please work with the compiler team to find an appropriate >>>> sponsor. >>>> >>>> -Rob >>>> >>>> On 03/03/17 06:48, Aleksey Shipilev wrote: >>>>> Hi, >>>>> >>>>> Please approve the backport of this important bugfix to 8u: >>>>> >>>>> Bug: >>>>> https://bugs.openjdk.java.net/browse/JDK-8175887 >>>>> >>>>> JDK 9 changeset: >>>>> http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/2ff05d967fb2 >>>>> >>>>> Compiler folks agree with backport, and nightlies seem clean: >>>>> >>>>> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2017-March/025767.html >>>>> >>>>> >>>>> JDK 8u webrev: >>>>> http://cr.openjdk.java.net/~shade/8175887/webrev.04.8u/ >>>>> >>>>> Product change applies cleanly, but test needs to change j.i.m.Unsafe to >>>>> s.m.Unsafe. >>>>> >>>>> Testing: Linux x86_64/release hotspot/test/compiler/c1 before/after the fix. >>>>> >>>>> Need a sponsor to push. >>>>> >>>>> Thanks, >>>>> -Aleksey >>>>> >>> >> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: From vladimir.kozlov at oracle.com Thu Mar 9 17:37:17 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 9 Mar 2017 09:37:17 -0800 Subject: [10] RFR(XS): 8176441: assert(false) failed: modified node was not processed by IGVN.transform_old() In-Reply-To: References: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> Message-ID: +1 Vladimir K On 3/9/17 7:08 AM, Vladimir Ivanov wrote: > Looks good. > > Best regards, > Vladimir Ivanov > > On 3/9/17 4:56 PM, Tobias Hartmann wrote: >> Hi, >> >> please review the following patch: >> https://bugs.openjdk.java.net/browse/JDK-8176441 >> http://cr.openjdk.java.net/~thartmann/8176441/webrev.00/ >> >> The shiftNode needs to be added to the IGVN worklist after being modified. This was introduced by [1]. >> >> Tested with replay compilation and RBT (running). >> >> Thanks, >> Tobias >> >> [1] https://bugs.openjdk.java.net/browse/JDK-8173470 >> From tobias.hartmann at oracle.com Fri Mar 10 07:09:27 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Fri, 10 Mar 2017 08:09:27 +0100 Subject: [10] RFR(XS): 8176441: assert(false) failed: modified node was not processed by IGVN.transform_old() In-Reply-To: References: <944a1970-a261-f542-3b0e-f5215d175a7f@oracle.com> Message-ID: Thanks, Vladimir! Best regards, Tobias On 09.03.2017 18:37, Vladimir Kozlov wrote: > +1 > > Vladimir K > > On 3/9/17 7:08 AM, Vladimir Ivanov wrote: >> Looks good. >> >> Best regards, >> Vladimir Ivanov >> >> On 3/9/17 4:56 PM, Tobias Hartmann wrote: >>> Hi, >>> >>> please review the following patch: >>> https://bugs.openjdk.java.net/browse/JDK-8176441 >>> http://cr.openjdk.java.net/~thartmann/8176441/webrev.00/ >>> >>> The shiftNode needs to be added to the IGVN worklist after being modified. This was introduced by [1]. >>> >>> Tested with replay compilation and RBT (running). >>> >>> Thanks, >>> Tobias >>> >>> [1] https://bugs.openjdk.java.net/browse/JDK-8173470 >>> From zoltan.majo at oracle.com Fri Mar 10 13:55:56 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Fri, 10 Mar 2017 14:55:56 +0100 Subject: [10] RFR (XS): 8159734: Consistency check fails with -XX:-ProfileInterpreter Message-ID: Hi, please review the fix for 8159734. https://bugs.openjdk.java.net/browse/JDK-8159734 http://cr.openjdk.java.net/~zmajo/8159734/webrev.00/ If run with -XX:-ProfileInterpreter, the VM crashes due to the failure of the assert at [1]. The reason for the failure is that the operations ensuring the consistency of profiling data [2] are performed only with interpreter profiling enabled. Even if interpreter profiling is disabled, there can be one recorded type for a call instruction (morphism == 1) with count > 0. The reason is that the C1 compiler not only records the type but also increments the counter (e.g., see LIR_Assembler::emit_profile_call()). The fix ensures that the consistency of profiling data is performed also with -XX:-ProfileInterpreter. Fix tested with JPRT, RBT testing is in progress. Thank you! Best regards, Zoltan [1] http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l540 [2] http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l507 From volker.simonis at gmail.com Fri Mar 10 13:58:20 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Fri, 10 Mar 2017 14:58:20 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp Message-ID: Hi, first of all I think this isn't really a high prio bug because the assertion is wrong and there's no impact for product builds. On the other hand I think a lot of test running on debug builds may fail because of this issue so probably better to fix this in 9 as well (I actually wonder that you haven't seen this issue until now :) http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505/ https://bugs.openjdk.java.net/browse/JDK-8176505 Here are the gory details: the following assertion in arraycopynode.cpp is wrong because src_type can be a plain Object: const TypeAryPtr* ary_src = src_type->isa_aryptr(); assert(ary_src != NULL, "should be an array copy/clone"); This can be easily demonstrated with the following trivial test program: public class ArraySrcType { public static boolean crash(Object src) { String[] dst = new String[1]; System.arraycopy(src, 0, dst, 0, 1); return dst[0] == null; } public static void main(String[] args) { String[] sa = new String[1]; for (int i = 0; i < 20_000; i++) { crash(sa); } } } Running it with a slow- or fastdebug build results in the following crash: # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/work/d046063/OpenJDK/jdk10-hs/hotspot/src/share/vm/opto/arraycopynode.cpp:228), pid=34335, tid=34410 # assert(ary_src != __null) failed: should be an array copy/clone # Notice that the assertion is unnecessary anyway, because some lines later int he code we explicitely check for ary_src being NULL and bail out if that 's the case: if (ary_src == NULL || ary_src->klass() == NULL || ary_dest == NULL || ary_dest->klass() == NULL) { // We don't know if arguments are arrays return false; } Unfortunately, I still need a sponsor :( Thank you and best regards, Volker From rwestrel at redhat.com Fri Mar 10 14:05:00 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 10 Mar 2017 15:05:00 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: References: Message-ID: Hi Volker, > Here are the gory details: the following assertion in > arraycopynode.cpp is wrong because src_type can be a plain Object: > > const TypeAryPtr* ary_src = src_type->isa_aryptr(); > assert(ary_src != NULL, "should be an array copy/clone"); Shouldn't it be moved in the else branch where ary_src is used? Roland. From tobias.hartmann at oracle.com Fri Mar 10 14:13:03 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Fri, 10 Mar 2017 15:13:03 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: References: Message-ID: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> Hi Volker, thanks for fixing this issue! I added this assert with JDK-8156760 which was about Object.clone(). I agree with Roland that the assert should be moved into the else branch which handles clonebasic. Could you add the regression test to your changeset? Thanks, Tobias On 10.03.2017 14:58, Volker Simonis wrote: > Hi, > > first of all I think this isn't really a high prio bug because the > assertion is wrong and there's no impact for product builds. On the > other hand I think a lot of test running on debug builds may fail > because of this issue so probably better to fix this in 9 as well (I > actually wonder that you haven't seen this issue until now :) > > http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505/ > https://bugs.openjdk.java.net/browse/JDK-8176505 > > Here are the gory details: the following assertion in > arraycopynode.cpp is wrong because src_type can be a plain Object: > > const TypeAryPtr* ary_src = src_type->isa_aryptr(); > assert(ary_src != NULL, "should be an array copy/clone"); > > This can be easily demonstrated with the following trivial test program: > > public class ArraySrcType { > public static boolean crash(Object src) { > String[] dst = new String[1]; > System.arraycopy(src, 0, dst, 0, 1); > return dst[0] == null; > } > public static void main(String[] args) { > String[] sa = new String[1]; > for (int i = 0; i < 20_000; i++) { > crash(sa); > } > } > } > > Running it with a slow- or fastdebug build results in the following crash: > > # To suppress the following error report, specify this argument > # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error > (/usr/work/d046063/OpenJDK/jdk10-hs/hotspot/src/share/vm/opto/arraycopynode.cpp:228), > pid=34335, tid=34410 > # assert(ary_src != __null) failed: should be an array copy/clone > # > > Notice that the assertion is unnecessary anyway, because some lines > later int he code we explicitely check for ary_src being NULL and bail > out if that 's the case: > > if (ary_src == NULL || ary_src->klass() == NULL || > ary_dest == NULL || ary_dest->klass() == NULL) { > // We don't know if arguments are arrays > return false; > } > > Unfortunately, I still need a sponsor :( > > Thank you and best regards, > Volker > From volker.simonis at gmail.com Fri Mar 10 16:34:48 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Fri, 10 Mar 2017 17:34:48 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> References: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> Message-ID: Hi Roland, Tobias, thanks for looking at my fix! You're both right, the assertion should be moved into the else branch instead of being removed. I've done that and also updated the assertion message because in the else branch the array copy node can only be a clone: http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v1/ I've also added my small test as regression test. But I'm currently at a loss with it. Without my fix, running it obviously crashes the VM, but JTreg still reports the test as passed: #section:main ----------messages:(4/206)---------- command: main compiler.arraycopy.TestObjectArrayCopy reason: User specified action: run main/othervm compiler.arraycopy.TestObjectArrayCopy Mode: othervm [/othervm specified] elapsed time (seconds): 1.731 ----------configuration:(0/0)---------- ----------System.out:(23/1256)---------- # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/work/d046063/OpenJDK/jdk9-dev/hotspot/src/share/vm/opto/arraycopynode.cpp:228), pid=12359, tid=12441 # assert(ary_src != __null) failed: should be an array copy/clone ... # Current thread is 12441 Dumping core ... ----------System.err:(1/15)---------- STATUS:Passed. Can you please check if you see the same behavior with your version of JTreg? Or am I doing something fundamentally wrong? I'm pretty sure that a crashing VM should lead to test failure and I'm also pretty sure that it worked that way in the past. Regards, Volker On Fri, Mar 10, 2017 at 3:13 PM, Tobias Hartmann wrote: > Hi Volker, > > thanks for fixing this issue! > > I added this assert with JDK-8156760 which was about Object.clone(). I agree with Roland that the assert should be moved into the else branch which handles clonebasic. > > Could you add the regression test to your changeset? > > Thanks, > Tobias > > On 10.03.2017 14:58, Volker Simonis wrote: >> Hi, >> >> first of all I think this isn't really a high prio bug because the >> assertion is wrong and there's no impact for product builds. On the >> other hand I think a lot of test running on debug builds may fail >> because of this issue so probably better to fix this in 9 as well (I >> actually wonder that you haven't seen this issue until now :) >> >> http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505/ >> https://bugs.openjdk.java.net/browse/JDK-8176505 >> >> Here are the gory details: the following assertion in >> arraycopynode.cpp is wrong because src_type can be a plain Object: >> >> const TypeAryPtr* ary_src = src_type->isa_aryptr(); >> assert(ary_src != NULL, "should be an array copy/clone"); >> >> This can be easily demonstrated with the following trivial test program: >> >> public class ArraySrcType { >> public static boolean crash(Object src) { >> String[] dst = new String[1]; >> System.arraycopy(src, 0, dst, 0, 1); >> return dst[0] == null; >> } >> public static void main(String[] args) { >> String[] sa = new String[1]; >> for (int i = 0; i < 20_000; i++) { >> crash(sa); >> } >> } >> } >> >> Running it with a slow- or fastdebug build results in the following crash: >> >> # To suppress the following error report, specify this argument >> # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # Internal Error >> (/usr/work/d046063/OpenJDK/jdk10-hs/hotspot/src/share/vm/opto/arraycopynode.cpp:228), >> pid=34335, tid=34410 >> # assert(ary_src != __null) failed: should be an array copy/clone >> # >> >> Notice that the assertion is unnecessary anyway, because some lines >> later int he code we explicitely check for ary_src being NULL and bail >> out if that 's the case: >> >> if (ary_src == NULL || ary_src->klass() == NULL || >> ary_dest == NULL || ary_dest->klass() == NULL) { >> // We don't know if arguments are arrays >> return false; >> } >> >> Unfortunately, I still need a sponsor :( >> >> Thank you and best regards, >> Volker >> From martin.doerr at sap.com Fri Mar 10 17:49:00 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Fri, 10 Mar 2017 17:49:00 +0000 Subject: RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base Message-ID: <4c042cb1458b44eaa1c92226829ebc74@sap.com> Hi, we have observed that C2 generates implicit null checks for write accesses to the heap base even though it was not protected (narrow_oop_use_implicit_null_checks = false). The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. ReservedHeapSpace::establish_noaccess_prefix protects the base area on almost all platforms, but not on AIX (in some case). PhaseCFG::implicit_null_check needs to skip the transformation in this case. The problem can be reproduced by the simple test program below under [1]. The null pointer exception is just missing when running with the given parameters. The problem can be prevented by applying this patch: http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ Especially, the case "base->is_Mach() && base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure if this is allowed at that place. Maybe something went wrong before. The node "base" is a storeI and "addr"="base" is a decodeN node (the "index" retrieved by mach->memory_inputs is NULL). The patch helps, but is there a better way to fix the problem? Thanks and best regards, Martin [1] Reproduction case: /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation -Xbatch TestWriteNPE public class TestWriteNPE{ TestWriteNPE instance = null; int i = 0; public void bogus_test(int value) { instance.i = value; } static final int loop_cnt=100000; public static void main(String args[]){ TestWriteNPE xyz=new TestWriteNPE(); xyz.instance = xyz; long duration = System.nanoTime(); for (int x=0; x From vladimir.kozlov at oracle.com Fri Mar 10 18:05:37 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 10 Mar 2017 10:05:37 -0800 Subject: [10] RFR (XS): 8159734: Consistency check fails with -XX:-ProfileInterpreter In-Reply-To: References: Message-ID: Looks good. To all. I think we need to track all deferred (and new) bugs we fixed only in jdk 10 to remember to backport (if needed) them into 9 update. May be listing 9 in 'Affected version' is enough? Thanks, Vladimir On 3/10/17 5:55 AM, Zolt?n Maj? wrote: > Hi, > > > please review the fix for 8159734. > > https://bugs.openjdk.java.net/browse/JDK-8159734 > http://cr.openjdk.java.net/~zmajo/8159734/webrev.00/ > > If run with -XX:-ProfileInterpreter, the VM crashes due to the failure of the assert at [1]. The reason for the failure > is that the operations ensuring the consistency of profiling data [2] are performed only with interpreter profiling > enabled. > > Even if interpreter profiling is disabled, there can be one recorded type for a call instruction (morphism == 1) with > count > 0. The reason is that the C1 compiler not only records the type but also increments the counter (e.g., see > LIR_Assembler::emit_profile_call()). > > The fix ensures that the consistency of profiling data is performed also with -XX:-ProfileInterpreter. > > Fix tested with JPRT, RBT testing is in progress. > > Thank you! > > Best regards, > > > Zoltan > > [1] http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l540 > [2] http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l507 From tobias.hartmann at oracle.com Mon Mar 13 08:22:32 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Mon, 13 Mar 2017 09:22:32 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: References: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> Message-ID: <11763ca5-a041-cf11-8dd5-27164e7f4472@oracle.com> Hi Volker, On 10.03.2017 17:34, Volker Simonis wrote: > Hi Roland, Tobias, > > thanks for looking at my fix! You're both right, the assertion should > be moved into the else branch instead of being removed. I've done that > and also updated the assertion message because in the else branch the > array copy node can only be a clone: > > http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v1/ > > I've also added my small test as regression test. But I'm currently at > a loss with it. Without my fix, running it obviously crashes the VM, > but JTreg still reports the test as passed: > > #section:main > ----------messages:(4/206)---------- > command: main compiler.arraycopy.TestObjectArrayCopy > reason: User specified action: run main/othervm > compiler.arraycopy.TestObjectArrayCopy > Mode: othervm [/othervm specified] > elapsed time (seconds): 1.731 > ----------configuration:(0/0)---------- > ----------System.out:(23/1256)---------- > # To suppress the following error report, specify this argument > # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error > (/usr/work/d046063/OpenJDK/jdk9-dev/hotspot/src/share/vm/opto/arraycopynode.cpp:228), > pid=12359, tid=12441 > # assert(ary_src != __null) failed: should be an array copy/clone > ... > # > Current thread is 12441 > Dumping core ... > ----------System.err:(1/15)---------- > STATUS:Passed. > > Can you please check if you see the same behavior with your version of > JTreg? Or am I doing something fundamentally wrong? I'm pretty sure > that a crashing VM should lead to test failure and I'm also pretty > sure that it worked that way in the past. I can confirm the same behavior on my system (though it's very intermittent). I think it's because 20.000 loop iterations are just enough to trigger the C2 compilation but when the compilation fails, the test is done and jtreg is already shutting down without recognizing that the VM crashed. I would suggest to either user -Xbatch or increase the number of loop iterations (40.000 works on my system). Thanks, Tobias > On Fri, Mar 10, 2017 at 3:13 PM, Tobias Hartmann > wrote: >> Hi Volker, >> >> thanks for fixing this issue! >> >> I added this assert with JDK-8156760 which was about Object.clone(). I agree with Roland that the assert should be moved into the else branch which handles clonebasic. >> >> Could you add the regression test to your changeset? >> >> Thanks, >> Tobias >> >> On 10.03.2017 14:58, Volker Simonis wrote: >>> Hi, >>> >>> first of all I think this isn't really a high prio bug because the >>> assertion is wrong and there's no impact for product builds. On the >>> other hand I think a lot of test running on debug builds may fail >>> because of this issue so probably better to fix this in 9 as well (I >>> actually wonder that you haven't seen this issue until now :) >>> >>> http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505/ >>> https://bugs.openjdk.java.net/browse/JDK-8176505 >>> >>> Here are the gory details: the following assertion in >>> arraycopynode.cpp is wrong because src_type can be a plain Object: >>> >>> const TypeAryPtr* ary_src = src_type->isa_aryptr(); >>> assert(ary_src != NULL, "should be an array copy/clone"); >>> >>> This can be easily demonstrated with the following trivial test program: >>> >>> public class ArraySrcType { >>> public static boolean crash(Object src) { >>> String[] dst = new String[1]; >>> System.arraycopy(src, 0, dst, 0, 1); >>> return dst[0] == null; >>> } >>> public static void main(String[] args) { >>> String[] sa = new String[1]; >>> for (int i = 0; i < 20_000; i++) { >>> crash(sa); >>> } >>> } >>> } >>> >>> Running it with a slow- or fastdebug build results in the following crash: >>> >>> # To suppress the following error report, specify this argument >>> # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 >>> # >>> # A fatal error has been detected by the Java Runtime Environment: >>> # >>> # Internal Error >>> (/usr/work/d046063/OpenJDK/jdk10-hs/hotspot/src/share/vm/opto/arraycopynode.cpp:228), >>> pid=34335, tid=34410 >>> # assert(ary_src != __null) failed: should be an array copy/clone >>> # >>> >>> Notice that the assertion is unnecessary anyway, because some lines >>> later int he code we explicitely check for ary_src being NULL and bail >>> out if that 's the case: >>> >>> if (ary_src == NULL || ary_src->klass() == NULL || >>> ary_dest == NULL || ary_dest->klass() == NULL) { >>> // We don't know if arguments are arrays >>> return false; >>> } >>> >>> Unfortunately, I still need a sponsor :( >>> >>> Thank you and best regards, >>> Volker >>> From tobias.hartmann at oracle.com Mon Mar 13 08:26:20 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Mon, 13 Mar 2017 09:26:20 +0100 Subject: [10] RFR (XS): 8159734: Consistency check fails with -XX:-ProfileInterpreter In-Reply-To: References: Message-ID: <87ca7a34-c7ae-3b52-0d67-559ba3f1990f@oracle.com> Hi Vladimir, On 10.03.2017 19:05, Vladimir Kozlov wrote: > To all. I think we need to track all deferred (and new) bugs we fixed only in jdk 10 to remember to backport (if needed) them into 9 update. May be listing 9 in 'Affected version' is enough? Yes, we should list 9 as affected version and maybe also add the '9-bp' label if we think that a backport is necessary. Thanks, Tobias From rwestrel at redhat.com Mon Mar 13 09:35:57 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 13 Mar 2017 10:35:57 +0100 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash Message-ID: http://cr.openjdk.java.net/~roland/8176506/webrev.00/ In test1: 1) the call to test_helper is inlined and the checkcast first checks whether o is null or not with both branches possibly taken. 2) the compiler can't tell whether the unsafe access is off heap or not. It assumes it's on heap and compiles it as a load from an oop (address type is a TypeOopPtr). 3) the loop is unswitched using the null check from the checkcast. One of the loop copies is for the case where o is null. The memory access for that copy of the loop is a load from a null object and that causes a crash in C2. The fix I'm proposing is that for every unsafe access for which we can't tell whether the access is on heap or off heap we default to using raw memory instead of assuming it is on heap. This way we stop abusing the c2 type system by pretending something is an oop when we don't know and then crash when the assumption that that something is an oop becomes false. In the patch, I CheckCastPP the Object base to raw memory and makes sure we have one CheckCastPP per unsafe access so an address possibly computed from an oop is not live at a safepoint. This has drawbacks: we have an address computation per unsafe access, if the object becomes a constant or a stable array during optimizations we can't optimize the memory access anymore etc. but we already restrict optimizations a lot in the case where we do not know whether the access is off heap or not by putting membars around the memory access. There are cases where we actually implicitly know that the base is not null. test2 is such a case. The offset is small, so the object input can only be non null. Another example is an object field access which doesn't make sense off heap. In those cases, I suggest, c2 assumes the base is non null and uses a CastPP to cast it to non null. The problem is that the CastPP alone is not sufficient. In test2, if we cast the base to non null after loop unswitching we have a cast to non null with a null input in one branch. That data path dies but that branch of the if doesn't: that causes c2 to crash. So we actually need a proper null check that the CastPP depends on but, ideally, we wouldn't want to pay the price of the check at runtime. The trick I suggest is to have c2 add a null check with a null branch that goes to a Halt node. The If node input is a new opaque node with 2 inputs: input 1 is the null comparison, input 2 is the actual value of the null check (we know it never fails). After loop optimizations, the opaque node is replaced by its second input, the If goes away and there's no overhead at runtime. That new opaque node allows constant folding: if during optimizations input 1 of the opaque node becomes true or false, the opaque node is replaced by true or false. In the case of test2, the final code is the check for null from the checkcast with 2 branches: an impossible branch that ends up in an halt and the "good" branch where the unswitched loop is. Note that there are other intrinsics where we know from the context that a null object is impossible, so skip a null check. So for those intrinsics, we might need to cast to non null as well and need to have a null check that the cast depends on for consistency. Roland. From zoltan.majo at oracle.com Mon Mar 13 10:31:03 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Mon, 13 Mar 2017 11:31:03 +0100 Subject: [10] RFR (XS): 8159734: Consistency check fails with -XX:-ProfileInterpreter In-Reply-To: References: Message-ID: <181d242a-173c-7146-d66a-dcb17853501a@oracle.com> Thank you for the review, Vladimir! Best regards, Zoltan On 03/10/2017 07:05 PM, Vladimir Kozlov wrote: > Looks good. > > To all. I think we need to track all deferred (and new) bugs we fixed > only in jdk 10 to remember to backport (if needed) them into 9 update. > May be listing 9 in 'Affected version' is enough? > > Thanks, > Vladimir > > On 3/10/17 5:55 AM, Zolt?n Maj? wrote: >> Hi, >> >> >> please review the fix for 8159734. >> >> https://bugs.openjdk.java.net/browse/JDK-8159734 >> http://cr.openjdk.java.net/~zmajo/8159734/webrev.00/ >> >> If run with -XX:-ProfileInterpreter, the VM crashes due to the >> failure of the assert at [1]. The reason for the failure >> is that the operations ensuring the consistency of profiling data [2] >> are performed only with interpreter profiling >> enabled. >> >> Even if interpreter profiling is disabled, there can be one recorded >> type for a call instruction (morphism == 1) with >> count > 0. The reason is that the C1 compiler not only records the >> type but also increments the counter (e.g., see >> LIR_Assembler::emit_profile_call()). >> >> The fix ensures that the consistency of profiling data is performed >> also with -XX:-ProfileInterpreter. >> >> Fix tested with JPRT, RBT testing is in progress. >> >> Thank you! >> >> Best regards, >> >> >> Zoltan >> >> [1] >> http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l540 >> [2] >> http://hg.openjdk.java.net/jdk10/hs/hotspot/file/5e709f10c2a4/src/share/vm/ci/ciMethod.cpp#l507 From volker.simonis at gmail.com Mon Mar 13 15:20:59 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Mon, 13 Mar 2017 16:20:59 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: <11763ca5-a041-cf11-8dd5-27164e7f4472@oracle.com> References: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> <11763ca5-a041-cf11-8dd5-27164e7f4472@oracle.com> Message-ID: On Mon, Mar 13, 2017 at 9:22 AM, Tobias Hartmann wrote: > Hi Volker, > > On 10.03.2017 17:34, Volker Simonis wrote: >> Hi Roland, Tobias, >> >> thanks for looking at my fix! You're both right, the assertion should >> be moved into the else branch instead of being removed. I've done that >> and also updated the assertion message because in the else branch the >> array copy node can only be a clone: >> >> http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v1/ >> >> I've also added my small test as regression test. But I'm currently at >> a loss with it. Without my fix, running it obviously crashes the VM, >> but JTreg still reports the test as passed: >> >> #section:main >> ----------messages:(4/206)---------- >> command: main compiler.arraycopy.TestObjectArrayCopy >> reason: User specified action: run main/othervm >> compiler.arraycopy.TestObjectArrayCopy >> Mode: othervm [/othervm specified] >> elapsed time (seconds): 1.731 >> ----------configuration:(0/0)---------- >> ----------System.out:(23/1256)---------- >> # To suppress the following error report, specify this argument >> # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # Internal Error >> (/usr/work/d046063/OpenJDK/jdk9-dev/hotspot/src/share/vm/opto/arraycopynode.cpp:228), >> pid=12359, tid=12441 >> # assert(ary_src != __null) failed: should be an array copy/clone >> ... >> # >> Current thread is 12441 >> Dumping core ... >> ----------System.err:(1/15)---------- >> STATUS:Passed. >> >> Can you please check if you see the same behavior with your version of >> JTreg? Or am I doing something fundamentally wrong? I'm pretty sure >> that a crashing VM should lead to test failure and I'm also pretty >> sure that it worked that way in the past. > > I can confirm the same behavior on my system (though it's very intermittent). I think it's because 20.000 loop iterations are just enough to trigger the C2 compilation but when the compilation fails, the test is done and jtreg is already shutting down without recognizing that the VM crashed. > Thanks! > I would suggest to either user -Xbatch or increase the number of loop iterations (40.000 works on my system). > You're right. It's probably a race between the main and the compiler thread. Just strange that I always get an error exit code when executing the test on the command line and always a zero exit code if executed within JTreg (altough I can see that the full hs_err file gets written). But that's another problem :) For this change I've just added -Xbatch as you proposed (and also -XX:-UseOnStackRepelacement). So the test should work reliable now: http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v2/ Thank you and best regards, Volker > Thanks, > Tobias > >> On Fri, Mar 10, 2017 at 3:13 PM, Tobias Hartmann >> wrote: >>> Hi Volker, >>> >>> thanks for fixing this issue! >>> >>> I added this assert with JDK-8156760 which was about Object.clone(). I agree with Roland that the assert should be moved into the else branch which handles clonebasic. >>> >>> Could you add the regression test to your changeset? >>> >>> Thanks, >>> Tobias >>> >>> On 10.03.2017 14:58, Volker Simonis wrote: >>>> Hi, >>>> >>>> first of all I think this isn't really a high prio bug because the >>>> assertion is wrong and there's no impact for product builds. On the >>>> other hand I think a lot of test running on debug builds may fail >>>> because of this issue so probably better to fix this in 9 as well (I >>>> actually wonder that you haven't seen this issue until now :) >>>> >>>> http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505/ >>>> https://bugs.openjdk.java.net/browse/JDK-8176505 >>>> >>>> Here are the gory details: the following assertion in >>>> arraycopynode.cpp is wrong because src_type can be a plain Object: >>>> >>>> const TypeAryPtr* ary_src = src_type->isa_aryptr(); >>>> assert(ary_src != NULL, "should be an array copy/clone"); >>>> >>>> This can be easily demonstrated with the following trivial test program: >>>> >>>> public class ArraySrcType { >>>> public static boolean crash(Object src) { >>>> String[] dst = new String[1]; >>>> System.arraycopy(src, 0, dst, 0, 1); >>>> return dst[0] == null; >>>> } >>>> public static void main(String[] args) { >>>> String[] sa = new String[1]; >>>> for (int i = 0; i < 20_000; i++) { >>>> crash(sa); >>>> } >>>> } >>>> } >>>> >>>> Running it with a slow- or fastdebug build results in the following crash: >>>> >>>> # To suppress the following error report, specify this argument >>>> # after -XX: or in .hotspotrc: SuppressErrorAt=/arraycopynode.cpp:228 >>>> # >>>> # A fatal error has been detected by the Java Runtime Environment: >>>> # >>>> # Internal Error >>>> (/usr/work/d046063/OpenJDK/jdk10-hs/hotspot/src/share/vm/opto/arraycopynode.cpp:228), >>>> pid=34335, tid=34410 >>>> # assert(ary_src != __null) failed: should be an array copy/clone >>>> # >>>> >>>> Notice that the assertion is unnecessary anyway, because some lines >>>> later int he code we explicitely check for ary_src being NULL and bail >>>> out if that 's the case: >>>> >>>> if (ary_src == NULL || ary_src->klass() == NULL || >>>> ary_dest == NULL || ary_dest->klass() == NULL) { >>>> // We don't know if arguments are arrays >>>> return false; >>>> } >>>> >>>> Unfortunately, I still need a sponsor :( >>>> >>>> Thank you and best regards, >>>> Volker >>>> From tobias.hartmann at oracle.com Mon Mar 13 15:22:30 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Mon, 13 Mar 2017 16:22:30 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: References: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> <11763ca5-a041-cf11-8dd5-27164e7f4472@oracle.com> Message-ID: <457f27c2-d58d-ff9a-cdd4-d67cc8b5a80d@oracle.com> Hi Volker, On 13.03.2017 16:20, Volker Simonis wrote: >>> http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v1/ Looks good to me! I can do the sponsoring. Best regards, Tobias From rwestrel at redhat.com Mon Mar 13 15:24:48 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 13 Mar 2017 16:24:48 +0100 Subject: RFR(XXS): 8176505: Wrong assertion 'should be an array copy/clone' in arraycopynode.cpp In-Reply-To: References: <913913ad-0378-8b0c-c5df-aeff13bd422a@oracle.com> <11763ca5-a041-cf11-8dd5-27164e7f4472@oracle.com> Message-ID: > http://cr.openjdk.java.net/~simonis/webrevs/2017/8176505.v2/ That looks good to me too. Roland. From jamsheed.c.m at oracle.com Mon Mar 13 18:16:12 2017 From: jamsheed.c.m at oracle.com (Jamsheed C m) Date: Mon, 13 Mar 2017 23:46:12 +0530 Subject: RFR: 8176573: Do not use FLAG_SET_ERGO to update MaxRAM for emulated client Message-ID: Hi, Request for review for a small change: Issue: setting MaxRAM using FLAG_SET_ERGO doesn't work well with set_heap_size based on available physical memory[1] Fix: use FLAG_SET_DEFAULT to update MaxRAM. bug: https://bugs.openjdk.java.net/browse/JDK-8176573 webrev: http://cr.openjdk.java.net/~jcm/8176573/webrev.00/ testing: jprt Best Regards, Jamsheed [1] void Arguments::set_heap_size() { julong phys_mem = FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM) : (julong)MaxRAM; From vladimir.kozlov at oracle.com Tue Mar 14 01:41:54 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 13 Mar 2017 18:41:54 -0700 Subject: RFR: 8176573: Do not use FLAG_SET_ERGO to update MaxRAM for emulated client In-Reply-To: References: Message-ID: Good. Thanks, Vladimir On 3/13/17 11:16 AM, Jamsheed C m wrote: > Hi, > > Request for review for a small change: > > Issue: setting MaxRAM using FLAG_SET_ERGO doesn't work well with set_heap_size based on available physical memory[1] > > Fix: use FLAG_SET_DEFAULT to update MaxRAM. > > bug: https://bugs.openjdk.java.net/browse/JDK-8176573 > > webrev: http://cr.openjdk.java.net/~jcm/8176573/webrev.00/ > > testing: jprt > > Best Regards, > > Jamsheed > > [1] > > void Arguments::set_heap_size() { > julong phys_mem = > FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM) > : (julong)MaxRAM; > > From jamsheed.c.m at oracle.com Tue Mar 14 06:04:18 2017 From: jamsheed.c.m at oracle.com (Jamsheed C m) Date: Tue, 14 Mar 2017 11:34:18 +0530 Subject: RFR: 8176573: Do not use FLAG_SET_ERGO to update MaxRAM for emulated client In-Reply-To: References: Message-ID: <1e63c47f-dd34-7a89-6bfa-55306c69563a@oracle.com> Thank you, Vladimir Best Regards, Jamsheed On 3/14/2017 7:11 AM, Vladimir Kozlov wrote: > Good. > > Thanks, > Vladimir > > On 3/13/17 11:16 AM, Jamsheed C m wrote: >> Hi, >> >> Request for review for a small change: >> >> Issue: setting MaxRAM using FLAG_SET_ERGO doesn't work well with >> set_heap_size based on available physical memory[1] >> >> Fix: use FLAG_SET_DEFAULT to update MaxRAM. >> >> bug: https://bugs.openjdk.java.net/browse/JDK-8176573 >> >> webrev: http://cr.openjdk.java.net/~jcm/8176573/webrev.00/ >> >> testing: jprt >> >> Best Regards, >> >> Jamsheed >> >> [1] >> >> void Arguments::set_heap_size() { >> julong phys_mem = >> FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), >> (julong)MaxRAM) >> : (julong)MaxRAM; >> >> From lutz.schmidt at sap.com Tue Mar 14 08:16:21 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Tue, 14 Mar 2017 08:16:21 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Message-ID: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Dear all, may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Almost two weeks ago, I had contributed CRC32C intrinsic implementations for ppc and s390. The arguments passed to the intrinsics differ slightly from those passed to the CRC32 intrinsics. Instead of passing the byte array length directly, it has to be calculated from the offset and the end index values. This difference was not accounted for in templateInterpreterGenerator_{ppc|s390}.cpp as well as in c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing subtraction, and adjusts some comments. For the bug to become visible, it is necessary to calculate a CRC32C checksum from a byte array being accessed with a non-zero offset. The call to the intrinsic has to originate from the interpreter or from a c1-compiled method. This change is ?platform only?. No changes to shared code. Thank you! Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From zoltan.majo at oracle.com Tue Mar 14 08:19:58 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Tue, 14 Mar 2017 09:19:58 +0100 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Message-ID: Hi Lutz, I can sponsor the change once it's reviewed. Best regards, Zoltan On 03/14/2017 09:16 AM, Schmidt, Lutz wrote: > > Dear all, > > may I kindly request reviews for my small bugfix? And somebody > volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ > > > Almost two weeks ago, I had contributed CRC32C intrinsic > implementations for ppc and s390. The arguments passed to the > intrinsics differ slightly from those passed to the CRC32 intrinsics. > Instead of passing the byte array length directly, it has to be > calculated from the offset and the end index values. > > This difference was not accounted for in > templateInterpreterGenerator_{ppc|s390}.cpp as well as in > c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing > subtraction, and adjusts some comments. For the bug to become visible, > it is necessary to calculate a CRC32C checksum from a byte array being > accessed with a non-zero offset. The call to the intrinsic has to > originate from the interpreter or from a c1-compiled method. > > This change is ?platform only?. No changes to shared code. > > Thank you! > > Lutz > From lutz.schmidt at sap.com Tue Mar 14 08:24:25 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Tue, 14 Mar 2017 08:24:25 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Message-ID: <50596619-32AF-4497-8F60-BAE289E386FD@sap.com> Thank you, Zoltan! I expect reviews from the experts in my close vicinity in the near future. Regards, Lutz Dr. Lutz Schmidt | SAP JVM | PI SAP CP Core (SAP JVM) | T: +49 (6227) 7-42834 On 14.03.17, 09:19, "Zolt?n Maj?" wrote: Hi Lutz, I can sponsor the change once it's reviewed. Best regards, Zoltan On 03/14/2017 09:16 AM, Schmidt, Lutz wrote: > > Dear all, > > may I kindly request reviews for my small bugfix? And somebody > volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ > > > Almost two weeks ago, I had contributed CRC32C intrinsic > implementations for ppc and s390. The arguments passed to the > intrinsics differ slightly from those passed to the CRC32 intrinsics. > Instead of passing the byte array length directly, it has to be > calculated from the offset and the end index values. > > This difference was not accounted for in > templateInterpreterGenerator_{ppc|s390}.cpp as well as in > c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing > subtraction, and adjusts some comments. For the bug to become visible, > it is necessary to calculate a CRC32C checksum from a byte array being > accessed with a non-zero offset. The call to the intrinsic has to > originate from the interpreter or from a c1-compiled method. > > This change is ?platform only?. No changes to shared code. > > Thank you! > > Lutz > From martin.doerr at sap.com Tue Mar 14 09:30:38 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Tue, 14 Mar 2017 09:30:38 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Message-ID: <73f9286d81f94de183b1e2869f4a2d8c@sap.com> Hi Lutz, thanks for fixing it. I only have minor comments. c1_LIRGenerator_ppc/s390 I think that one temp register and the 2 moves are not needed, but you can keep them if you want to keep the code closer to the SPARC implementation. templateInterpreterGenerator_s390.cpp I don?t really like that the following instructions access the same memory location but look differently (one of them uses an Address object, but not the other one): __ z_agf(data, 2*wordSize, argP); // Add byte buffer offset. ? __ z_sgf(dataLen, Address(argP, 2*wordSize)); // (end_index - offset) Readability would be better if it was consistent. Functionally, the change looks good to me. As the change only touches ppc/s390 files and targets jdk10, there?s no need for JPRT and could also be pushed by us. But Zoltan already volunteered to do so. Thanks, Zoltan. Best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Dienstag, 14. M?rz 2017 09:16 To: hotspot-compiler-dev at openjdk.java.net Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Dear all, may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Almost two weeks ago, I had contributed CRC32C intrinsic implementations for ppc and s390. The arguments passed to the intrinsics differ slightly from those passed to the CRC32 intrinsics. Instead of passing the byte array length directly, it has to be calculated from the offset and the end index values. This difference was not accounted for in templateInterpreterGenerator_{ppc|s390}.cpp as well as in c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing subtraction, and adjusts some comments. For the bug to become visible, it is necessary to calculate a CRC32C checksum from a byte array being accessed with a non-zero offset. The call to the intrinsic has to originate from the interpreter or from a c1-compiled method. This change is ?platform only?. No changes to shared code. Thank you! Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From aph at redhat.com Tue Mar 14 10:16:51 2017 From: aph at redhat.com (Andrew Haley) Date: Tue, 14 Mar 2017 10:16:51 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Message-ID: On 14/03/17 08:16, Schmidt, Lutz wrote: > may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Is there any addition to the test suite needed for this? Andrew. From lutz.schmidt at sap.com Tue Mar 14 13:12:53 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Tue, 14 Mar 2017 13:12:53 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> Message-ID: <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> Hi Andrew, this is a very good question indeed. My answer is two-fold: No, for this particular bug it?s not worth to create a separate test. There already exists at least one in the Java9 JCK suite: api/java_util/zip/CRC32C/td.html#TestAsChecksum Yes, one might think of running a test suite subset multiple times with different parameters. In this case, -Xint and/or ?Xcomp were helpful. Forcing tests to run fully interpreted or fully compiled helps in cases where a certain function, e.g. an intrinsic, is invoked via distinct code paths. Regards, Lutz On 14.03.17, 11:16, "Andrew Haley" wrote: On 14/03/17 08:16, Schmidt, Lutz wrote: > may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Is there any addition to the test suite needed for this? Andrew. From lutz.schmidt at sap.com Tue Mar 14 13:30:49 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Tue, 14 Mar 2017 13:30:49 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <73f9286d81f94de183b1e2869f4a2d8c@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <73f9286d81f94de183b1e2869f4a2d8c@sap.com> Message-ID: Thank you, Martin, for your comments. c1_LIRGenerator*.cpp ================== Yes, I intentionally kept the code close to the SPARC implementation ? the only existing implementation so far. templateInterpreterGenerator_s390.cpp ================================= The reason for the difference is simple. There does not exist a ?shortcut emitter? for z_sgf as it does for z_agf. As you know, an address specification consists of three components on s390: offset(indexReg, baseReg). The shortcut emitters are pure convenience. They pass a dummy value to the real emitters. I did not implement the missing shortcut emitter because I wanted to keep the change minimal. If ?the community? weighs readable over minimal, I am happy to expand my fix. Best regards, Lutz On 14.03.17, 10:30, "Doerr, Martin" > wrote: Hi Lutz, thanks for fixing it. I only have minor comments. c1_LIRGenerator_ppc/s390 I think that one temp register and the 2 moves are not needed, but you can keep them if you want to keep the code closer to the SPARC implementation. templateInterpreterGenerator_s390.cpp I don?t really like that the following instructions access the same memory location but look differently (one of them uses an Address object, but not the other one): __ z_agf(data, 2*wordSize, argP); // Add byte buffer offset. ? __ z_sgf(dataLen, Address(argP, 2*wordSize)); // (end_index - offset) Readability would be better if it was consistent. Functionally, the change looks good to me. As the change only touches ppc/s390 files and targets jdk10, there?s no need for JPRT and could also be pushed by us. But Zoltan already volunteered to do so. Thanks, Zoltan. Best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Dienstag, 14. M?rz 2017 09:16 To: hotspot-compiler-dev at openjdk.java.net Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Dear all, may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Almost two weeks ago, I had contributed CRC32C intrinsic implementations for ppc and s390. The arguments passed to the intrinsics differ slightly from those passed to the CRC32 intrinsics. Instead of passing the byte array length directly, it has to be calculated from the offset and the end index values. This difference was not accounted for in templateInterpreterGenerator_{ppc|s390}.cpp as well as in c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing subtraction, and adjusts some comments. For the bug to become visible, it is necessary to calculate a CRC32C checksum from a byte array being accessed with a non-zero offset. The call to the intrinsic has to originate from the interpreter or from a c1-compiled method. This change is ?platform only?. No changes to shared code. Thank you! Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin.doerr at sap.com Tue Mar 14 13:35:21 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Tue, 14 Mar 2017 13:35:21 +0000 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: <4c042cb1458b44eaa1c92226829ebc74@sap.com> References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> Message-ID: Hi, I have experimented on x86 and I get a very similar graph when using -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into operands) in addition to the flags below under [1]. If -XX:+UseLargePages (which is used to skip the heap base protection) is supported on Windows, the problem exists there as well. As the graph pattern on PPC64 is the same as on x86, I believe that there's nothing wrong except the missing check for narrow_oop_use_implicit_null_checks(), which is added by the webrev below. The remaining question is if there's a better test than "base->as_Mach()->ideal_Opcode() == Op_DecodeN". I will also need a sponsor for this change, please. Thanks and best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Doerr, Martin Sent: Freitag, 10. M?rz 2017 18:49 To: 'hotspot-compiler-dev at openjdk.java.net' Subject: RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base Hi, we have observed that C2 generates implicit null checks for write accesses to the heap base even though it was not protected (narrow_oop_use_implicit_null_checks = false). The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. ReservedHeapSpace::establish_noaccess_prefix protects the base area on almost all platforms, but not on AIX (in some case). PhaseCFG::implicit_null_check needs to skip the transformation in this case. The problem can be reproduced by the simple test program below under [1]. The null pointer exception is just missing when running with the given parameters. The problem can be prevented by applying this patch: http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ Especially, the case "base->is_Mach() && base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure if this is allowed at that place. Maybe something went wrong before. The node "base" is a storeI and "addr"="base" is a decodeN node (the "index" retrieved by mach->memory_inputs is NULL). The patch helps, but is there a better way to fix the problem? Thanks and best regards, Martin [1] Reproduction case: /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation -Xbatch TestWriteNPE public class TestWriteNPE{ TestWriteNPE instance = null; int i = 0; public void bogus_test(int value) { instance.i = value; } static final int loop_cnt=100000; public static void main(String args[]){ TestWriteNPE xyz=new TestWriteNPE(); xyz.instance = xyz; long duration = System.nanoTime(); for (int x=0; x From martin.doerr at sap.com Tue Mar 14 13:57:51 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Tue, 14 Mar 2017 13:57:51 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <73f9286d81f94de183b1e2869f4a2d8c@sap.com> Message-ID: Hi, thanks for the explanation. I don?t want to delay getting the bug fixed, so I?m ok with pushing it as it is. My comments address only cleanup which could be done separately as well. @Zoltan: As it is an obvious fix for Lutz? recently submitted change, I think you can just add me as additional reviewer and push it. If you prefer that we push it, just let me know. Thanks. Best regards, Martin From: Schmidt, Lutz Sent: Dienstag, 14. M?rz 2017 14:31 To: Doerr, Martin ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Thank you, Martin, for your comments. c1_LIRGenerator*.cpp ================== Yes, I intentionally kept the code close to the SPARC implementation ? the only existing implementation so far. templateInterpreterGenerator_s390.cpp ================================= The reason for the difference is simple. There does not exist a ?shortcut emitter? for z_sgf as it does for z_agf. As you know, an address specification consists of three components on s390: offset(indexReg, baseReg). The shortcut emitters are pure convenience. They pass a dummy value to the real emitters. I did not implement the missing shortcut emitter because I wanted to keep the change minimal. If ?the community? weighs readable over minimal, I am happy to expand my fix. Best regards, Lutz On 14.03.17, 10:30, "Doerr, Martin" > wrote: Hi Lutz, thanks for fixing it. I only have minor comments. c1_LIRGenerator_ppc/s390 I think that one temp register and the 2 moves are not needed, but you can keep them if you want to keep the code closer to the SPARC implementation. templateInterpreterGenerator_s390.cpp I don?t really like that the following instructions access the same memory location but look differently (one of them uses an Address object, but not the other one): __ z_agf(data, 2*wordSize, argP); // Add byte buffer offset. ? __ z_sgf(dataLen, Address(argP, 2*wordSize)); // (end_index - offset) Readability would be better if it was consistent. Functionally, the change looks good to me. As the change only touches ppc/s390 files and targets jdk10, there?s no need for JPRT and could also be pushed by us. But Zoltan already volunteered to do so. Thanks, Zoltan. Best regards, Martin From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz Sent: Dienstag, 14. M?rz 2017 09:16 To: hotspot-compiler-dev at openjdk.java.net Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Dear all, may I kindly request reviews for my small bugfix? And somebody volunteering as a sponsor would be welcome as well. Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ Almost two weeks ago, I had contributed CRC32C intrinsic implementations for ppc and s390. The arguments passed to the intrinsics differ slightly from those passed to the CRC32 intrinsics. Instead of passing the byte array length directly, it has to be calculated from the offset and the end index values. This difference was not accounted for in templateInterpreterGenerator_{ppc|s390}.cpp as well as in c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing subtraction, and adjusts some comments. For the bug to become visible, it is necessary to calculate a CRC32C checksum from a byte array being accessed with a non-zero offset. The call to the intrinsic has to originate from the interpreter or from a c1-compiled method. This change is ?platform only?. No changes to shared code. Thank you! Lutz -------------- next part -------------- An HTML attachment was scrubbed... URL: From zoltan.majo at oracle.com Tue Mar 14 14:02:04 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Tue, 14 Mar 2017 15:02:04 +0100 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <73f9286d81f94de183b1e2869f4a2d8c@sap.com> Message-ID: Hi Martin, Hi Lutz, On 03/14/2017 02:57 PM, Doerr, Martin wrote: > > Hi, > > thanks for the explanation. I don?t want to delay getting the bug > fixed, so I?m ok with pushing it as it is. > > My comments address only cleanup which could be done separately as well. > > @Zoltan: As it is an obvious fix for Lutz? recently submitted change, > I think you can just add me as additional reviewer and push it. If you > prefer that we push it, just let me know. Thanks. > I agree with you, this fix does not need to go through JPRT. So could you please go ahead an push it? Thank you! Best regards, Zoltan > Best regards, > > Martin > > *From:*Schmidt, Lutz > *Sent:* Dienstag, 14. M?rz 2017 14:31 > *To:* Doerr, Martin ; > hotspot-compiler-dev at openjdk.java.net > *Subject:* Re: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum > result in some cases > > Thank you, Martin, for your comments. > > c1_LIRGenerator*.cpp > > ================== > > Yes, I intentionally kept the code close to the SPARC implementation ? > the only existing implementation so far. > > templateInterpreterGenerator_s390.cpp > > ================================= > > The reason for the difference is simple. There does not exist a > ?shortcut emitter? for z_sgf as it does for z_agf. As you know, an > address specification consists of three components on s390: > offset(indexReg, baseReg). The shortcut emitters are pure convenience. > They pass a dummy value to the real emitters. > > I did not implement the missing shortcut emitter because I wanted to > keep the change minimal. If ?the community? weighs readable over > minimal, I am happy to expand my fix. > > Best regards, > > Lutz > > On 14.03.17, 10:30, "Doerr, Martin" > wrote: > > Hi Lutz, > > thanks for fixing it. > > I only have minor comments. > > c1_LIRGenerator_ppc/s390 > > I think that one temp register and the 2 moves are not needed, but you > can keep them if you want to keep the code closer to the SPARC > implementation. > > templateInterpreterGenerator_s390.cpp > > I don?t really like that the following instructions access the same > memory location but look differently (one of them uses an Address > object, but not the other one): > > __ z_agf(data, 2*wordSize, argP); // Add byte buffer offset. > > ? > > __ z_sgf(dataLen, Address(argP, 2*wordSize)); // (end_index - offset) > > Readability would be better if it was consistent. > > Functionally, the change looks good to me. > > As the change only touches ppc/s390 files and targets jdk10, there?s > no need for JPRT and could also be pushed by us. > > But Zoltan already volunteered to do so. Thanks, Zoltan. > > Best regards, > > Martin > > *From:*hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of > *Schmidt, Lutz > *Sent:* Dienstag, 14. M?rz 2017 09:16 > *To:*hotspot-compiler-dev at openjdk.java.net > > *Subject:* RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result > in some cases > > Dear all, > > may I kindly request reviews for my small bugfix? And somebody > volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ > > > Almost two weeks ago, I had contributed CRC32C intrinsic > implementations for ppc and s390. The arguments passed to the > intrinsics differ slightly from those passed to the CRC32 intrinsics. > Instead of passing the byte array length directly, it has to be > calculated from the offset and the end index values. > > This difference was not accounted for in > templateInterpreterGenerator_{ppc|s390}.cpp as well as in > c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing > subtraction, and adjusts some comments. For the bug to become visible, > it is necessary to calculate a CRC32C checksum from a byte array being > accessed with a non-zero offset. The call to the intrinsic has to > originate from the interpreter or from a c1-compiled method. > > This change is ?platform only?. No changes to shared code. > > Thank you! > > Lutz > From martin.doerr at sap.com Tue Mar 14 17:08:18 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Tue, 14 Mar 2017 17:08:18 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <73f9286d81f94de183b1e2869f4a2d8c@sap.com> Message-ID: Thanks, we plan to push it tomorrow. -----Original Message----- From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] Sent: Dienstag, 14. M?rz 2017 15:02 To: Doerr, Martin ; Schmidt, Lutz ; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases Hi Martin, Hi Lutz, On 03/14/2017 02:57 PM, Doerr, Martin wrote: > > Hi, > > thanks for the explanation. I don?t want to delay getting the bug > fixed, so I?m ok with pushing it as it is. > > My comments address only cleanup which could be done separately as well. > > @Zoltan: As it is an obvious fix for Lutz? recently submitted change, > I think you can just add me as additional reviewer and push it. If you > prefer that we push it, just let me know. Thanks. > I agree with you, this fix does not need to go through JPRT. So could you please go ahead an push it? Thank you! Best regards, Zoltan > Best regards, > > Martin > > *From:*Schmidt, Lutz > *Sent:* Dienstag, 14. M?rz 2017 14:31 > *To:* Doerr, Martin ; > hotspot-compiler-dev at openjdk.java.net > *Subject:* Re: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum > result in some cases > > Thank you, Martin, for your comments. > > c1_LIRGenerator*.cpp > > ================== > > Yes, I intentionally kept the code close to the SPARC implementation ? > the only existing implementation so far. > > templateInterpreterGenerator_s390.cpp > > ================================= > > The reason for the difference is simple. There does not exist a > ?shortcut emitter? for z_sgf as it does for z_agf. As you know, an > address specification consists of three components on s390: > offset(indexReg, baseReg). The shortcut emitters are pure convenience. > They pass a dummy value to the real emitters. > > I did not implement the missing shortcut emitter because I wanted to > keep the change minimal. If ?the community? weighs readable over > minimal, I am happy to expand my fix. > > Best regards, > > Lutz > > On 14.03.17, 10:30, "Doerr, Martin" > wrote: > > Hi Lutz, > > thanks for fixing it. > > I only have minor comments. > > c1_LIRGenerator_ppc/s390 > > I think that one temp register and the 2 moves are not needed, but you > can keep them if you want to keep the code closer to the SPARC > implementation. > > templateInterpreterGenerator_s390.cpp > > I don?t really like that the following instructions access the same > memory location but look differently (one of them uses an Address > object, but not the other one): > > __ z_agf(data, 2*wordSize, argP); // Add byte buffer offset. > > ? > > __ z_sgf(dataLen, Address(argP, 2*wordSize)); // (end_index - offset) > > Readability would be better if it was consistent. > > Functionally, the change looks good to me. > > As the change only touches ppc/s390 files and targets jdk10, there?s > no need for JPRT and could also be pushed by us. > > But Zoltan already volunteered to do so. Thanks, Zoltan. > > Best regards, > > Martin > > *From:*hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of > *Schmidt, Lutz > *Sent:* Dienstag, 14. M?rz 2017 09:16 > *To:*hotspot-compiler-dev at openjdk.java.net > > *Subject:* RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result > in some cases > > Dear all, > > may I kindly request reviews for my small bugfix? And somebody > volunteering as a sponsor would be welcome as well. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8176580 > > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580/ > > > Almost two weeks ago, I had contributed CRC32C intrinsic > implementations for ppc and s390. The arguments passed to the > intrinsics differ slightly from those passed to the CRC32 intrinsics. > Instead of passing the byte array length directly, it has to be > calculated from the offset and the end index values. > > This difference was not accounted for in > templateInterpreterGenerator_{ppc|s390}.cpp as well as in > c1_LIRGenerator_{ppc|s390}.cpp. The fix just adds the missing > subtraction, and adjusts some comments. For the bug to become visible, > it is necessary to calculate a CRC32C checksum from a byte array being > accessed with a non-zero offset. The call to the intrinsic has to > originate from the interpreter or from a c1-compiled method. > > This change is ?platform only?. No changes to shared code. > > Thank you! > > Lutz > From vladimir.x.ivanov at oracle.com Tue Mar 14 17:15:01 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 14 Mar 2017 20:15:01 +0300 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: References: Message-ID: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> Roland, I find it problematic to decide whether an unsafe access is always on-heap or not during parsing. Considering we plan to remove membars around suspicious accesses (as a fix for JDK-8176513), I would like to avoid conservatively treating them as raw. Can we just disable loop unswitching when it produces raw accesses? How risky would it be? There are cases when C2 already skips some optimizations when the base is NULL (e.g., LoadNode::split_through_phi or MemNode::Ideal_common). FTR I faced a similar problem before (JDK-8155635 [1]) and initially experimented with a different approach: convert null-based oop pointers to raw pointers [2], but after additional discussions decided to abandon it. Best regards, Vladimir Ivanov [1] https://bugs.openjdk.java.net/browse/JDK-8155635 [2] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-April/022743.html On 3/13/17 12:35 PM, Roland Westrelin wrote: > > http://cr.openjdk.java.net/~roland/8176506/webrev.00/ > > In test1: > > 1) the call to test_helper is inlined and the checkcast first checks > whether o is null or not with both branches possibly taken. > > 2) the compiler can't tell whether the unsafe access is off heap or > not. It assumes it's on heap and compiles it as a load from an oop > (address type is a TypeOopPtr). > > 3) the loop is unswitched using the null check from the checkcast. One > of the loop copies is for the case where o is null. The memory access > for that copy of the loop is a load from a null object and that causes a > crash in C2. > > The fix I'm proposing is that for every unsafe access for which we can't > tell whether the access is on heap or off heap we default to using raw > memory instead of assuming it is on heap. This way we stop abusing the > c2 type system by pretending something is an oop when we don't know and > then crash when the assumption that that something is an oop becomes > false. In the patch, I CheckCastPP the Object base to raw memory and > makes sure we have one CheckCastPP per unsafe access so an address > possibly computed from an oop is not live at a safepoint. > > This has drawbacks: we have an address computation per unsafe access, if > the object becomes a constant or a stable array during optimizations we > can't optimize the memory access anymore etc. but we already restrict > optimizations a lot in the case where we do not know whether the access > is off heap or not by putting membars around the memory access. > > There are cases where we actually implicitly know that the base is not > null. test2 is such a case. The offset is small, so the object input can > only be non null. Another example is an object field access which > doesn't make sense off heap. In those cases, I suggest, c2 assumes the > base is non null and uses a CastPP to cast it to non null. > > The problem is that the CastPP alone is not sufficient. In test2, if we > cast the base to non null after loop unswitching we have a cast to non > null with a null input in one branch. That data path dies but that > branch of the if doesn't: that causes c2 to crash. So we actually need a > proper null check that the CastPP depends on but, ideally, we wouldn't > want to pay the price of the check at runtime. The trick I suggest is to > have c2 add a null check with a null branch that goes to a Halt > node. The If node input is a new opaque node with 2 inputs: input 1 is > the null comparison, input 2 is the actual value of the null check (we > know it never fails). After loop optimizations, the opaque node is > replaced by its second input, the If goes away and there's no overhead > at runtime. That new opaque node allows constant folding: if during > optimizations input 1 of the opaque node becomes true or false, the > opaque node is replaced by true or false. In the case of test2, the > final code is the check for null from the checkcast with 2 branches: an > impossible branch that ends up in an halt and the "good" branch where > the unswitched loop is. > > Note that there are other intrinsics where we know from the context that > a null object is impossible, so skip a null check. So for those > intrinsics, we might need to cast to non null as well and need to have a > null check that the cast depends on for consistency. > > Roland. > From vladimir.x.ivanov at oracle.com Tue Mar 14 17:18:48 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 14 Mar 2017 20:18:48 +0300 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> References: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> Message-ID: <5537b092-a499-3f3a-7e63-5190221eefde@oracle.com> > There are cases when C2 already skips some optimizations when the base > is NULL (e.g., LoadNode::split_through_phi or MemNode::Ideal_common). s/is NULL/can be NULL/ Best regards, Vladimir Ivanov > On 3/13/17 12:35 PM, Roland Westrelin wrote: >> >> http://cr.openjdk.java.net/~roland/8176506/webrev.00/ >> >> In test1: >> >> 1) the call to test_helper is inlined and the checkcast first checks >> whether o is null or not with both branches possibly taken. >> >> 2) the compiler can't tell whether the unsafe access is off heap or >> not. It assumes it's on heap and compiles it as a load from an oop >> (address type is a TypeOopPtr). >> >> 3) the loop is unswitched using the null check from the checkcast. One >> of the loop copies is for the case where o is null. The memory access >> for that copy of the loop is a load from a null object and that causes a >> crash in C2. >> >> The fix I'm proposing is that for every unsafe access for which we can't >> tell whether the access is on heap or off heap we default to using raw >> memory instead of assuming it is on heap. This way we stop abusing the >> c2 type system by pretending something is an oop when we don't know and >> then crash when the assumption that that something is an oop becomes >> false. In the patch, I CheckCastPP the Object base to raw memory and >> makes sure we have one CheckCastPP per unsafe access so an address >> possibly computed from an oop is not live at a safepoint. >> >> This has drawbacks: we have an address computation per unsafe access, if >> the object becomes a constant or a stable array during optimizations we >> can't optimize the memory access anymore etc. but we already restrict >> optimizations a lot in the case where we do not know whether the access >> is off heap or not by putting membars around the memory access. >> >> There are cases where we actually implicitly know that the base is not >> null. test2 is such a case. The offset is small, so the object input can >> only be non null. Another example is an object field access which >> doesn't make sense off heap. In those cases, I suggest, c2 assumes the >> base is non null and uses a CastPP to cast it to non null. >> >> The problem is that the CastPP alone is not sufficient. In test2, if we >> cast the base to non null after loop unswitching we have a cast to non >> null with a null input in one branch. That data path dies but that >> branch of the if doesn't: that causes c2 to crash. So we actually need a >> proper null check that the CastPP depends on but, ideally, we wouldn't >> want to pay the price of the check at runtime. The trick I suggest is to >> have c2 add a null check with a null branch that goes to a Halt >> node. The If node input is a new opaque node with 2 inputs: input 1 is >> the null comparison, input 2 is the actual value of the null check (we >> know it never fails). After loop optimizations, the opaque node is >> replaced by its second input, the If goes away and there's no overhead >> at runtime. That new opaque node allows constant folding: if during >> optimizations input 1 of the opaque node becomes true or false, the >> opaque node is replaced by true or false. In the case of test2, the >> final code is the check for null from the checkcast with 2 branches: an >> impossible branch that ends up in an halt and the "good" branch where >> the unswitched loop is. >> >> Note that there are other intrinsics where we know from the context that >> a null object is impossible, so skip a null check. So for those >> intrinsics, we might need to cast to non null as well and need to have a >> null check that the cast depends on for consistency. >> >> Roland. >> From aph at redhat.com Tue Mar 14 18:05:07 2017 From: aph at redhat.com (Andrew Haley) Date: Tue, 14 Mar 2017 18:05:07 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> Message-ID: <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> On 14/03/17 13:12, Schmidt, Lutz wrote: > Yes, one might think of running a test suite subset multiple times > with different parameters. In this case, -Xint and/or ?Xcomp were > helpful. Forcing tests to run fully interpreted or fully compiled > helps in cases where a certain function, e.g. an intrinsic, is > invoked via distinct code paths. Right, so your patch should include that change to the test suite. Andrew. From rwestrel at redhat.com Wed Mar 15 08:32:52 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 09:32:52 +0100 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> References: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> Message-ID: Hi Vladimir, Thanks for looking at this. > I find it problematic to decide whether an unsafe access is always > on-heap or not during parsing. Considering we plan to remove membars > around suspicious accesses (as a fix for JDK-8176513), I would like to > avoid conservatively treating them as raw. Isn't the plan to remove the membars for 9 and put it back in 10? I think it's a problem that we build a broken graph and try to plug the holes as we find them because there will always be holes that we are not yet aware of. That's why my suggestion is to be conservative. I also think we should use arguments profiling and a null check to speculatively cast base to non null when it makes sense. We have the machinery to do that and it's a very simple change. > FTR I faced a similar problem before (JDK-8155635 [1]) and initially > experimented with a different approach: convert null-based oop pointers > to raw pointers [2], but after additional discussions decided to abandon it. I noticed that discussion. When we hit a similar problem with Shenandoah I used a fix similar to the one you suggested. If you read Vladimir K's answer: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-April/022745.html "I think we should track which pointers are really RAW when creating them." which is what the fix I'm proposing now is doing. Roland. From rwestrel at redhat.com Wed Mar 15 09:48:50 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 10:48:50 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers Message-ID: http://cr.openjdk.java.net/~roland/8176513/webrev.01/ This changes relaxes the condition under which MemBarCPUOrder nodes are added around unsafe accesses. If the object being accessed is an array and the access is mismatched, the current code add useless barriers (there's only one memory slice for the entire array so no risk of breaking alias analysis). If the base is not known to be not null, membars are added as well. These membars are not added for arrays in 8u and that hasn't caused any known problem. So in order to keep this change simple, we propose removing that condition (this was suggested by Vladimir Ivanov in the comments for this bug). Roland. From zoltan.majo at oracle.com Wed Mar 15 10:07:04 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Wed, 15 Mar 2017 11:07:04 +0100 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> Message-ID: <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> Hi Martin, thank you for looking into this issue! Your fix looks good to me in general. Here are a few minor comments that you could maybe consider. - Could you please update the comment on line 261 to describe that we skip generating the implicit null check if the heap base is not protected? 260 !Universe::narrow_oop_use_implicit_null_checks())) 261 continue; // Give up if offset is beyond page size - Could you please update the comment on line 279 to be more consistent with other comments in the same code region. Something along the lines "Give up if operation is a DecodeN and the heap base is not protected" could do. I don't see anything wrong with the check of the graph's shape. - Could you please change comment 278 continue; // Give up i*s* reference is beyond 4K page size to 278 continue; // Give up i*f* reference is beyond 4K page size - Could you please add the test case you have to the fix you're proposing? I'm not sure if you need to record the duration of the test's execution. Maybe you can reduce the number of iterations -- 20K could be sufficient. Could you please make the test throw an exception if the NullPointerException is not thrown? And finally, can you force the test to be executed only on AIX/Windows and with the parameters you mentioned in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) I can do the pre-integration testing for the change and then sponsor it. Thank you! Best regards, Zoltan On 03/14/2017 02:35 PM, Doerr, Martin wrote: > > Hi, > > I have experimented on x86 and I get a very similar graph when using > -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into > operands) in addition to the flags below under [1]. > > If -XX:+UseLargePages (which is used to skip the heap base protection) > is supported on Windows, the problem exists there as well. > > As the graph pattern on PPC64 is the same as on x86, I believe that > there?s nothing wrong except the missing check for > narrow_oop_use_implicit_null_checks(), which is added by the webrev below. > > The remaining question is if there?s a better test than > ?base->as_Mach()->ideal_Opcode() == Op_DecodeN?. > > I will also need a sponsor for this change, please. > > Thanks and best regards, > > Martin > > *From:*hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of > *Doerr, Martin > *Sent:* Freitag, 10. M?rz 2017 18:49 > *To:* 'hotspot-compiler-dev at openjdk.java.net' > > *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with > non-protected heap base > > Hi, > > we have observed that C2 generates implicit null checks for write > accesses to the heap base even though it was not protected > (narrow_oop_use_implicit_null_checks = false). > > The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. > ReservedHeapSpace::establish_noaccess_prefix protects the base area on > almost all platforms, but not on AIX (in some case). > > PhaseCFG::implicit_null_check needs to skip the transformation in this > case. > > The problem can be reproduced by the simple test program below under > [1]. The null pointer exception is just missing when running with the > given parameters. > > The problem can be prevented by applying this patch: > > http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ > > > Especially, the case ?base->is_Mach() && > base->as_Mach()->ideal_Opcode() == Op_DecodeN? gets hit. I?m not sure > if this is allowed at that place. Maybe something went wrong before. > > The node ?base? is a storeI and ?addr?=?base? is a decodeN node (the > ?index? retrieved by mach->memory_inputs is NULL). > > The patch helps, but is there a better way to fix the problem? > > Thanks and best regards, > > Martin > > [1] Reproduction case: > > /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation > -Xbatch TestWriteNPE > > *public**class*TestWriteNPE{ > > TestWriteNPE instance = *null*; > > *int*i = 0; > > *public**void*bogus_test(*int*value) { > > instance.i = value; > > } > > *static**final**int*loop_cnt=100000; > > *public**static**void*main(String args[]){ > > TestWriteNPE xyz=*new*TestWriteNPE(); > > xyz.instance = xyz; > > *long*duration = System.nanoTime(); > > *for*(*int*x=0; x > duration = System.nanoTime() - duration; > > System.out.println("value: "+ xyz.i + " (duration: "+ > duration/loop_cnt + ")"); > > xyz.instance = *null*; > > *try*{ > > xyz.bogus_test(0); > > } *catch*(NullPointerException np) { > > System.out.println("Got NPE:"); > > np.printStackTrace(); > > } > > } > > } > From volker.simonis at gmail.com Wed Mar 15 10:50:22 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 15 Mar 2017 11:50:22 +0100 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> Message-ID: On Tue, Mar 14, 2017 at 7:05 PM, Andrew Haley wrote: > On 14/03/17 13:12, Schmidt, Lutz wrote: > >> Yes, one might think of running a test suite subset multiple times >> with different parameters. In this case, -Xint and/or ?Xcomp were >> helpful. Forcing tests to run fully interpreted or fully compiled >> helps in cases where a certain function, e.g. an intrinsic, is >> invoked via distinct code paths. > > Right, so your patch should include that change to the test suite. > Hi Lutz, I agree with Andrew. We should really fix the tests such that they check the correctness of the intrinsics. This may be tricky if all three, the interpreter, the client and the server compiler use the same intrinsic implementation. You could either copy the pure Java implementation into the test so that you can compare the results of the intrinsic operation against it or you can switch them off in the compilers with "-XX:DisableIntrinsic=_updateBytesCRC32C -XX:DisableIntrinsics=_updateDirectByteBufferCRC32C" and compare the results. Not sure which solution is more practical, but I would be really scared if we wouldn't have these test. Regards, Volker > Andrew. > From martin.doerr at sap.com Wed Mar 15 14:27:33 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Wed, 15 Mar 2017 14:27:33 +0000 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> Message-ID: Hi Zoltan, thank you very much for reviewing and for sponsoring. I have updated the comments and added the test. We think it should be fine to run the test on all 64 bit platforms as it is fast and a little more testing in this area is not bad. If you don't agree, I can change it to run only on fewer platforms. Please take a look. New webrev is here: http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ Thanks and best regards, Martin -----Original Message----- From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] Sent: Mittwoch, 15. M?rz 2017 11:07 To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base Hi Martin, thank you for looking into this issue! Your fix looks good to me in general. Here are a few minor comments that you could maybe consider. - Could you please update the comment on line 261 to describe that we skip generating the implicit null check if the heap base is not protected? 260 !Universe::narrow_oop_use_implicit_null_checks())) 261 continue; // Give up if offset is beyond page size - Could you please update the comment on line 279 to be more consistent with other comments in the same code region. Something along the lines "Give up if operation is a DecodeN and the heap base is not protected" could do. I don't see anything wrong with the check of the graph's shape. - Could you please change comment 278 continue; // Give up i*s* reference is beyond 4K page size to 278 continue; // Give up i*f* reference is beyond 4K page size - Could you please add the test case you have to the fix you're proposing? I'm not sure if you need to record the duration of the test's execution. Maybe you can reduce the number of iterations -- 20K could be sufficient. Could you please make the test throw an exception if the NullPointerException is not thrown? And finally, can you force the test to be executed only on AIX/Windows and with the parameters you mentioned in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) I can do the pre-integration testing for the change and then sponsor it. Thank you! Best regards, Zoltan On 03/14/2017 02:35 PM, Doerr, Martin wrote: > > Hi, > > I have experimented on x86 and I get a very similar graph when using > -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into > operands) in addition to the flags below under [1]. > > If -XX:+UseLargePages (which is used to skip the heap base protection) > is supported on Windows, the problem exists there as well. > > As the graph pattern on PPC64 is the same as on x86, I believe that > there's nothing wrong except the missing check for > narrow_oop_use_implicit_null_checks(), which is added by the webrev below. > > The remaining question is if there's a better test than > "base->as_Mach()->ideal_Opcode() == Op_DecodeN". > > I will also need a sponsor for this change, please. > > Thanks and best regards, > > Martin > > *From:*hotspot-compiler-dev > [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of > *Doerr, Martin > *Sent:* Freitag, 10. M?rz 2017 18:49 > *To:* 'hotspot-compiler-dev at openjdk.java.net' > > *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with > non-protected heap base > > Hi, > > we have observed that C2 generates implicit null checks for write > accesses to the heap base even though it was not protected > (narrow_oop_use_implicit_null_checks = false). > > The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. > ReservedHeapSpace::establish_noaccess_prefix protects the base area on > almost all platforms, but not on AIX (in some case). > > PhaseCFG::implicit_null_check needs to skip the transformation in this > case. > > The problem can be reproduced by the simple test program below under > [1]. The null pointer exception is just missing when running with the > given parameters. > > The problem can be prevented by applying this patch: > > http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ > > > Especially, the case "base->is_Mach() && > base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure > if this is allowed at that place. Maybe something went wrong before. > > The node "base" is a storeI and "addr"="base" is a decodeN node (the > "index" retrieved by mach->memory_inputs is NULL). > > The patch helps, but is there a better way to fix the problem? > > Thanks and best regards, > > Martin > > [1] Reproduction case: > > /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation > -Xbatch TestWriteNPE > > *public**class*TestWriteNPE{ > > TestWriteNPE instance = *null*; > > *int*i = 0; > > *public**void*bogus_test(*int*value) { > > instance.i = value; > > } > > *static**final**int*loop_cnt=100000; > > *public**static**void*main(String args[]){ > > TestWriteNPE xyz=*new*TestWriteNPE(); > > xyz.instance = xyz; > > *long*duration = System.nanoTime(); > > *for*(*int*x=0; x > duration = System.nanoTime() - duration; > > System.out.println("value: "+ xyz.i + " (duration: "+ > duration/loop_cnt + ")"); > > xyz.instance = *null*; > > *try*{ > > xyz.bogus_test(0); > > } *catch*(NullPointerException np) { > > System.out.println("Got NPE:"); > > np.printStackTrace(); > > } > > } > > } > From zoltan.majo at oracle.com Wed Mar 15 14:40:21 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Wed, 15 Mar 2017 15:40:21 +0100 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> Message-ID: Hi Martin, On 03/15/2017 03:27 PM, Doerr, Martin wrote: > Hi Zoltan, > > thank you very much for reviewing and for sponsoring. thank you for spending time on this issue. > > I have updated the comments and added the test. > We think it should be fine to run the test on all 64 bit platforms as it is fast and a little more testing in this area is not bad. > If you don't agree, I can change it to run only on fewer platforms. OK, let's run it on all platforms then. > Please take a look. > > New webrev is here: > http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ The updated webrev looks good to me. I'll start pre-integration testing now and (if nothing unexpected happens) push the change afterwards. I'll keep you updated. Thank you! Best regards, Zoltan > > Thanks and best regards, > Martin > > > -----Original Message----- > From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] > Sent: Mittwoch, 15. M?rz 2017 11:07 > To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' > Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base > > Hi Martin, > > > thank you for looking into this issue! Your fix looks good to me in > general. Here are a few minor comments that you could maybe consider. > > - Could you please update the comment on line 261 to describe that we > skip generating the implicit null check if the heap base is not protected? > > 260 !Universe::narrow_oop_use_implicit_null_checks())) > 261 continue; // Give up if offset is beyond > page size > > - Could you please update the comment on line 279 to be more consistent > with other comments in the same code region. Something along the lines > "Give up if operation is a DecodeN and the heap base is not protected" > could do. I don't see anything wrong with the check of the graph's shape. > > - Could you please change comment > > 278 continue; // Give up i*s* reference is > beyond 4K page size > > to > > 278 continue; // Give up i*f* reference is > beyond 4K page size > > - Could you please add the test case you have to the fix you're > proposing? I'm not sure if you need to record the duration of the test's > execution. Maybe you can reduce the number of iterations -- 20K could be > sufficient. Could you please make the test throw an exception if the > NullPointerException is not thrown? And finally, can you force the test > to be executed only on AIX/Windows and with the parameters you mentioned > in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and > -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) > > I can do the pre-integration testing for the change and then sponsor it. > > Thank you! > > Best regards, > > > Zoltan > > On 03/14/2017 02:35 PM, Doerr, Martin wrote: >> Hi, >> >> I have experimented on x86 and I get a very similar graph when using >> -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into >> operands) in addition to the flags below under [1]. >> >> If -XX:+UseLargePages (which is used to skip the heap base protection) >> is supported on Windows, the problem exists there as well. >> >> As the graph pattern on PPC64 is the same as on x86, I believe that >> there's nothing wrong except the missing check for >> narrow_oop_use_implicit_null_checks(), which is added by the webrev below. >> >> The remaining question is if there's a better test than >> "base->as_Mach()->ideal_Opcode() == Op_DecodeN". >> >> I will also need a sponsor for this change, please. >> >> Thanks and best regards, >> >> Martin >> >> *From:*hotspot-compiler-dev >> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of >> *Doerr, Martin >> *Sent:* Freitag, 10. M?rz 2017 18:49 >> *To:* 'hotspot-compiler-dev at openjdk.java.net' >> >> *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >> non-protected heap base >> >> Hi, >> >> we have observed that C2 generates implicit null checks for write >> accesses to the heap base even though it was not protected >> (narrow_oop_use_implicit_null_checks = false). >> >> The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. >> ReservedHeapSpace::establish_noaccess_prefix protects the base area on >> almost all platforms, but not on AIX (in some case). >> >> PhaseCFG::implicit_null_check needs to skip the transformation in this >> case. >> >> The problem can be reproduced by the simple test program below under >> [1]. The null pointer exception is just missing when running with the >> given parameters. >> >> The problem can be prevented by applying this patch: >> >> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ >> >> >> Especially, the case "base->is_Mach() && >> base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure >> if this is allowed at that place. Maybe something went wrong before. >> >> The node "base" is a storeI and "addr"="base" is a decodeN node (the >> "index" retrieved by mach->memory_inputs is NULL). >> >> The patch helps, but is there a better way to fix the problem? >> >> Thanks and best regards, >> >> Martin >> >> [1] Reproduction case: >> >> /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation >> -Xbatch TestWriteNPE >> >> *public**class*TestWriteNPE{ >> >> TestWriteNPE instance = *null*; >> >> *int*i = 0; >> >> *public**void*bogus_test(*int*value) { >> >> instance.i = value; >> >> } >> >> *static**final**int*loop_cnt=100000; >> >> *public**static**void*main(String args[]){ >> >> TestWriteNPE xyz=*new*TestWriteNPE(); >> >> xyz.instance = xyz; >> >> *long*duration = System.nanoTime(); >> >> *for*(*int*x=0; x> >> duration = System.nanoTime() - duration; >> >> System.out.println("value: "+ xyz.i + " (duration: "+ >> duration/loop_cnt + ")"); >> >> xyz.instance = *null*; >> >> *try*{ >> >> xyz.bogus_test(0); >> >> } *catch*(NullPointerException np) { >> >> System.out.println("Got NPE:"); >> >> np.printStackTrace(); >> >> } >> >> } >> >> } >> From vladimir.kozlov at oracle.com Wed Mar 15 15:05:29 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 15 Mar 2017 08:05:29 -0700 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: Good for JDK 9. Since Vladimir I. suggested the fix I assume he reviewer too. Roland, did you get ByteBuffers some performance back? I will need to run pre-integration testing before pushing. Thanks, Vladimir On 3/15/17 2:48 AM, Roland Westrelin wrote: > > http://cr.openjdk.java.net/~roland/8176513/webrev.01/ > > This changes relaxes the condition under which MemBarCPUOrder nodes are > added around unsafe accesses. If the object being accessed is an array > and the access is mismatched, the current code add useless barriers > (there's only one memory slice for the entire array so no risk of > breaking alias analysis). If the base is not known to be not null, > membars are added as well. These membars are not added for arrays in 8u > and that hasn't caused any known problem. So in order to keep this > change simple, we propose removing that condition (this was suggested by > Vladimir Ivanov in the comments for this bug). > > Roland. > From vladimir.x.ivanov at oracle.com Wed Mar 15 15:08:04 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 15 Mar 2017 18:08:04 +0300 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: > Good for JDK 9. Since Vladimir I. suggested the fix I assume he reviewer > too. > > Roland, did you get ByteBuffers some performance back? > > I will need to run pre-integration testing before pushing. FYI I've just submitted the test batch. Slightly adjusted the fix as well: - need_mem_bar = mismatched || can_access_non_heap; + need_mem_bar = mismatched && !adr_type->isa_aryptr(); Best regards, Vladimir Ivanov > On 3/15/17 2:48 AM, Roland Westrelin wrote: >> >> http://cr.openjdk.java.net/~roland/8176513/webrev.01/ >> >> This changes relaxes the condition under which MemBarCPUOrder nodes are >> added around unsafe accesses. If the object being accessed is an array >> and the access is mismatched, the current code add useless barriers >> (there's only one memory slice for the entire array so no risk of >> breaking alias analysis). If the base is not known to be not null, >> membars are added as well. These membars are not added for arrays in 8u >> and that hasn't caused any known problem. So in order to keep this >> change simple, we propose removing that condition (this was suggested by >> Vladimir Ivanov in the comments for this bug). >> >> Roland. >> From vladimir.x.ivanov at oracle.com Wed Mar 15 15:17:14 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 15 Mar 2017 18:17:14 +0300 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> I think alias_type->adr_type() should be used instead, because adr_type->isa_aryptr() is true for pointers into array header as well, but we care about array body here. Alias analysis should flatten them to InstPtr. Best regards, Vladimir Ivanov On 3/15/17 12:48 PM, Roland Westrelin wrote: > > http://cr.openjdk.java.net/~roland/8176513/webrev.01/ > > This changes relaxes the condition under which MemBarCPUOrder nodes are > added around unsafe accesses. If the object being accessed is an array > and the access is mismatched, the current code add useless barriers > (there's only one memory slice for the entire array so no risk of > breaking alias analysis). If the base is not known to be not null, > membars are added as well. These membars are not added for arrays in 8u > and that hasn't caused any known problem. So in order to keep this > change simple, we propose removing that condition (this was suggested by > Vladimir Ivanov in the comments for this bug). > > Roland. > From rwestrel at redhat.com Wed Mar 15 15:33:36 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 16:33:36 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: Thanks for looking at this, Vladimir. > Roland, did you get ByteBuffers some performance back? Code quality does look much better with this. Roland. From rwestrel at redhat.com Wed Mar 15 15:34:00 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 16:34:00 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: > FYI I've just submitted the test batch. > > Slightly adjusted the fix as well: > > - need_mem_bar = mismatched || can_access_non_heap; > + need_mem_bar = mismatched && !adr_type->isa_aryptr(); Thanks for fixing this and taking care of testing. Roland. From rwestrel at redhat.com Wed Mar 15 15:34:29 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 16:34:29 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> References: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> Message-ID: > I think alias_type->adr_type() should be used instead, because > adr_type->isa_aryptr() is true for pointers into array header as well, > but we care about array body here. Alias analysis should flatten them to > InstPtr. Aren't those forbidden anyway? if (alias_type->adr_type() == TypeInstPtr::KLASS || alias_type->adr_type() == TypeAryPtr::RANGE) { return false; // not supported } Roland. From vladimir.x.ivanov at oracle.com Wed Mar 15 15:50:51 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 15 Mar 2017 18:50:51 +0300 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> Message-ID: Good point, Roland. Missed those checks. What is missing is TypeInstPtr::MARK, but I'm fine with fixing that later. Best regards, Vladimir Ivanov On 3/15/17 6:34 PM, Roland Westrelin wrote: > >> I think alias_type->adr_type() should be used instead, because >> adr_type->isa_aryptr() is true for pointers into array header as well, >> but we care about array body here. Alias analysis should flatten them to >> InstPtr. > > Aren't those forbidden anyway? > > if (alias_type->adr_type() == TypeInstPtr::KLASS || > alias_type->adr_type() == TypeAryPtr::RANGE) { > return false; // not supported > } > > Roland. > From vladimir.kozlov at oracle.com Wed Mar 15 16:54:44 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 15 Mar 2017 09:54:44 -0700 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> Message-ID: <2D5899A4-E7A8-4113-A854-F976BB56E73F@oracle.com> So what is final fix looks like? Vladimir K Sent from my iPhone > On Mar 15, 2017, at 8:50 AM, Vladimir Ivanov wrote: > > Good point, Roland. Missed those checks. > > What is missing is TypeInstPtr::MARK, but I'm fine with fixing that later. > > Best regards, > Vladimir Ivanov > >> On 3/15/17 6:34 PM, Roland Westrelin wrote: >> >>> I think alias_type->adr_type() should be used instead, because >>> adr_type->isa_aryptr() is true for pointers into array header as well, >>> but we care about array body here. Alias analysis should flatten them to >>> InstPtr. >> >> Aren't those forbidden anyway? >> >> if (alias_type->adr_type() == TypeInstPtr::KLASS || >> alias_type->adr_type() == TypeAryPtr::RANGE) { >> return false; // not supported >> } >> >> Roland. >> From lutz.schmidt at sap.com Wed Mar 15 16:55:04 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Wed, 15 Mar 2017 16:55:04 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> Message-ID: <69B4433F-72B8-4855-9C42-A89F4AB34F6F@sap.com> Hi Andrew, Volker, What do you think about these test enhancements? Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.01/ Please note: the cpp files in the webrev remained unchanged. I added some improvements (as I believe) to the TestCRC32(C).java files. In some more detail: The test now calculates a ?reference CRC value?, based on a java implementation of the CRC32 algorithm. This reference value is used to verify all other crc values, in particular during initialization and warmup. Three additional test runs check a non-zero offset with ?Xint, -Xcomp -XX:-TieredCompilation (C2 only), -Xcomp -XX:+TieredCompilation (C1 + C2). Best regards, Lutz On 15.03.17, 11:50, "Volker Simonis" wrote: On Tue, Mar 14, 2017 at 7:05 PM, Andrew Haley wrote: > On 14/03/17 13:12, Schmidt, Lutz wrote: > >> Yes, one might think of running a test suite subset multiple times >> with different parameters. In this case, -Xint and/or ?Xcomp were >> helpful. Forcing tests to run fully interpreted or fully compiled >> helps in cases where a certain function, e.g. an intrinsic, is >> invoked via distinct code paths. > > Right, so your patch should include that change to the test suite. > Hi Lutz, I agree with Andrew. We should really fix the tests such that they check the correctness of the intrinsics. This may be tricky if all three, the interpreter, the client and the server compiler use the same intrinsic implementation. You could either copy the pure Java implementation into the test so that you can compare the results of the intrinsic operation against it or you can switch them off in the compilers with "-XX:DisableIntrinsic=_updateBytesCRC32C -XX:DisableIntrinsics=_updateDirectByteBufferCRC32C" and compare the results. Not sure which solution is more practical, but I would be really scared if we wouldn't have these test. Regards, Volker > Andrew. > From john.r.rose at oracle.com Wed Mar 15 16:57:10 2017 From: john.r.rose at oracle.com (John Rose) Date: Wed, 15 Mar 2017 09:57:10 -0700 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: <7E23812C-1E8B-4779-89B2-B74296D8D40E@oracle.com> On Mar 15, 2017, at 2:48 AM, Roland Westrelin wrote: > > This changes relaxes the condition under which MemBarCPUOrder nodes are > added around unsafe accesses. If the object being accessed is an array > and the access is mismatched, the current code add useless barriers > (there's only one memory slice for the entire array so no risk of > breaking alias analysis). This is reasonable. The CPUOrder is intended to prevent an unsafe access from reordering with a nominal (non-unsafe) field access, since it is impossible (in general!) to tell if an unsafe access might alias with a field access. From the JMM point of view, a *single* array element works like a field (both are variables in the heap). Thus, we also don't want to reorder an unsafe access *to a particular array element* with a normal "*aload" or "*astore" access. Reordering accesses between unsafe loads or stores is less of a problem I think, because, well, they are unsafe. User responsibility is to avoid alias issues, and even fix with explicit fences if necessary. There also a possible argument of "user responsibility" for the interaction of unsafe access with normal access; when a bunch of unsafe access code is done, the effects must post correctly to normal access, without reordering. (Same point backwards in time/HB-relation also.) We might say users should put fences around all unsafe code, but they don't (today) so a little more care is appropriate here. I recommend aiming to put implicit CPU order fences between unsafe-access code and "innocent" normal code, when possible. The current overuse of fences conservatively achieves this. > If the base is not known to be not null, > membars are added as well. These are present "just in case" the accessed field was in fact volatile. They are not relevant to normal fields. They are not relevant to array elements (since array variables are never volatile, nor, alas, final). > These membars are not added for arrays in 8u > and that hasn't caused any known problem. So in order to keep this > change simple, we propose removing that condition (this was suggested by > Vladimir Ivanov in the comments for this bug). Thank you for working on this. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.x.ivanov at oracle.com Wed Mar 15 17:00:42 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 15 Mar 2017 20:00:42 +0300 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: <2D5899A4-E7A8-4113-A854-F976BB56E73F@oracle.com> References: <303dafc2-1315-069d-c2a6-a57558f48a57@oracle.com> <2D5899A4-E7A8-4113-A854-F976BB56E73F@oracle.com> Message-ID: <762ae243-ea6f-8734-599a-8221fce8d074@oracle.com> The following one is being tested: diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp --- a/src/share/vm/opto/library_call.cpp +++ b/src/share/vm/opto/library_call.cpp @@ -2375,7 +2375,7 @@ bool need_mem_bar; switch (kind) { case Relaxed: - need_mem_bar = mismatched || can_access_non_heap; + need_mem_bar = mismatched && !adr_type->isa_aryptr(); break; case Opaque: // Opaque uses CPUOrder membars for protection against code movement. Best regards, Vladimir Ivanov On 3/15/17 7:54 PM, Vladimir Kozlov wrote: > So what is final fix looks like? > > Vladimir K > > > Sent from my iPhone >> On Mar 15, 2017, at 8:50 AM, Vladimir Ivanov wrote: >> >> Good point, Roland. Missed those checks. >> >> What is missing is TypeInstPtr::MARK, but I'm fine with fixing that later. >> >> Best regards, >> Vladimir Ivanov >> >>> On 3/15/17 6:34 PM, Roland Westrelin wrote: >>> >>>> I think alias_type->adr_type() should be used instead, because >>>> adr_type->isa_aryptr() is true for pointers into array header as well, >>>> but we care about array body here. Alias analysis should flatten them to >>>> InstPtr. >>> >>> Aren't those forbidden anyway? >>> >>> if (alias_type->adr_type() == TypeInstPtr::KLASS || >>> alias_type->adr_type() == TypeAryPtr::RANGE) { >>> return false; // not supported >>> } >>> >>> Roland. >>> > From rwestrel at redhat.com Wed Mar 15 17:04:20 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 15 Mar 2017 18:04:20 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: <7E23812C-1E8B-4779-89B2-B74296D8D40E@oracle.com> References: <7E23812C-1E8B-4779-89B2-B74296D8D40E@oracle.com> Message-ID: Thanks for looking at this, John. If you get a chance, can you take a look at 8176506 (it's for 10 so not as urgent): http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2017-March/025818.html Roland. From dean.long at oracle.com Wed Mar 15 21:28:51 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Wed, 15 Mar 2017 14:28:51 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 Message-ID: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> https://bugs.openjdk.java.net/browse/JDK-8158168 http://cr.openjdk.java.net/~dlong/8158168/ This crash is caused by missing array bounds checks on compact string intrinsics. It shows up when unsynchronized access to a StringBuilder object causes inconsistent field values. To convince myself that all the necessary bounds checks are being done, I put callers into two groups, trusted and untrusted. Untrusted callers are all directed through StringUTF16 methods, so that bounds checks are done in one place and can be tested easily. Trusted callers bypass the bounds checks, so they must do their own checking. As a safety net, I added asserts around the intrinsic calls, and a try/catch that so any out of bounds exception turns into an assert error as well. Finally, I restored some C2 debug code that was previously removed, and I use it to do bounds checking in debug builds. In a product build C2 will remove all of these. See the bug report for tests run. There are some unavoidable performance regressions on micro benchmarks, because now we are doing bounds checks that we weren't before. dl From david.holmes at oracle.com Thu Mar 16 01:19:49 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 16 Mar 2017 11:19:49 +1000 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> Message-ID: Hi Dean, I fixed the cc from core-libs-dev-request at openjdk.java.net to core-libs-dev at openjdk.java.net On 16/03/2017 7:28 AM, dean.long at oracle.com wrote: > https://bugs.openjdk.java.net/browse/JDK-8158168 > > http://cr.openjdk.java.net/~dlong/8158168/ Not a full review sorry, just a couple of comments. src/share/vm/classfile/javaClasses.hpp Given the the only call to java_lang_String::set_debug_intrinsics is within an ifdef, shouldn't the declaration and definition of the method also be guarded the same way? > This crash is caused by missing array bounds checks on compact string > intrinsics. It shows up when unsynchronized access to a StringBuilder > object causes inconsistent field values. > > To convince myself that all the necessary bounds checks are being done, > I put callers into two groups, trusted and untrusted. Untrusted callers > are all directed through StringUTF16 methods, so that bounds checks are > done in one place and can be tested easily. Trusted callers bypass the > bounds checks, so they must do their own checking. The changes to the JDK core classes are quite extensive. This will need rigorous functional and performance testing and it is very late in the release cycle to make these kinds of changes. But I'll leave that to the core-libs folk to comment on. David ----- > As a safety net, I added asserts around the intrinsic calls, and a > try/catch that so any out of bounds exception turns into an assert error > as well. Finally, I restored some C2 debug code that was previously > removed, and I use it to do bounds checking in debug builds. In a > product build C2 will remove all of these. > > See the bug report for tests run. > > There are some unavoidable performance regressions on micro benchmarks, > because now we are doing bounds checks that we weren't before. > > dl > From rwestrel at redhat.com Thu Mar 16 08:28:22 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 16 Mar 2017 09:28:22 +0100 Subject: [9] RFR(XS): 8176513 Poor code quality for ByteBuffers In-Reply-To: References: Message-ID: I saw it's pushed. Thanks! Roland. From tobias.hartmann at oracle.com Thu Mar 16 09:52:37 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 16 Mar 2017 10:52:37 +0100 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> Message-ID: <6791984c-2e58-2dd6-5c9d-023f2dad5861@oracle.com> Hi Dean, On 15.03.2017 22:28, dean.long at oracle.com wrote: > http://cr.openjdk.java.net/~dlong/8158168/ > > This crash is caused by missing array bounds checks on compact string intrinsics. It shows up when unsynchronized access to a StringBuilder object causes inconsistent field values. > > To convince myself that all the necessary bounds checks are being done, I put callers into two groups, trusted and untrusted. Untrusted callers are all directed through StringUTF16 methods, so that bounds checks are done in one place and can be tested easily. Trusted callers bypass the bounds checks, so they must do their own checking. > > As a safety net, I added asserts around the intrinsic calls, and a try/catch that so any out of bounds exception turns into an assert error as well. So the assert and try/catch are only necessary to catch invalid offsets passed to the C1 intrinsic, right? Interpreted code is safe and the C2 intrinsics have additional guards in debug builds. I'm fine with that but an alternative would be to also have such guards in the C1 intrinsic. For example, one could enable the normal bound checks and add a simple check to Runtime1::throw_range_check_exception() that fails if the throwing method is the C1 intrinsic. Like this, we could avoid the assert, try-catch and DEBUG_INTRINSICS code. > Finally, I restored some C2 debug code that was previously removed, and I use it to do bounds checking in debug builds. In a product build C2 will remove all of these. To clarify: we introduced those bound checks during Compact Strings development for additional verification and removed them before integration: http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/8a7f17b4709f It may make sense re-introduce these checks also for other intrinsics in JDK 10 to catch similar problems. I'll look at it with JDK-8156534. I noticed these unused imports in StringUTF16.java: 38 //import static java.lang.String.checkIndex; 39 //import static java.lang.String.checkOffset; 40 //import static java.lang.String.checkBoundsOffCount; Maybe add a comment to the DEBUG_INTRINSICS declaration. Thanks, Tobias From volker.simonis at gmail.com Thu Mar 16 10:28:29 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Thu, 16 Mar 2017 11:28:29 +0100 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: <69B4433F-72B8-4855-9C42-A89F4AB34F6F@sap.com> References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> <69B4433F-72B8-4855-9C42-A89F4AB34F6F@sap.com> Message-ID: On Wed, Mar 15, 2017 at 5:55 PM, Schmidt, Lutz wrote: > > Hi Andrew, Volker, > > What do you think about these test enhancements? > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.01/ > > Please note: the cpp files in the webrev remained unchanged. > > I added some improvements (as I believe) to the TestCRC32(C).java files. > > In some more detail: > The test now calculates a ?reference CRC value?, based on a java implementation of the CRC32 algorithm. This reference value is used to verify all other crc values, in particular during initialization and warmup. Three additional test runs check a non-zero offset with ?Xint, -Xcomp -XX:-TieredCompilation (C2 only), -Xcomp -XX:+TieredCompilation (C1 + C2). > Hi Lutz, thanks for updating the tests. I've had a closer look at the tests and realized that they actually can never fail! The check() routine just prints an error message but that will not let the test fail. So I would suggest to throw a runtime exception in the check() routine after the error message was printed. I also suggest to do the check during the normal test execution (i.e. in test_multi()) so there's no need for extra test runs. Finally, the current test methodology in test_multi() is broken: - it sets the reference by calling CRC from the interpreter which won't work if the intrinsic is also used in the interpreter. - it only compares the reference against the last computation of CRC in the loop which will be the result of the C2 generated code. This misses errors in C1. I suggest to use your new, pure Java implementation for the computation of the reference result and compare the reference with the result of calling CRC in every iteration of the loop so we really check all possibilities from interpreter trough C1 to C2. Finally, can you please pay attention to not insert trailing whitespace (there was some at line 88 in TestCRC32C.java). You can easily verify this by running jcheck before creating the webrevs. Thanks, Volker > > Best regards, > Lutz > > > On 15.03.17, 11:50, "Volker Simonis" wrote: > > On Tue, Mar 14, 2017 at 7:05 PM, Andrew Haley wrote: > > On 14/03/17 13:12, Schmidt, Lutz wrote: > > > >> Yes, one might think of running a test suite subset multiple times > >> with different parameters. In this case, -Xint and/or ?Xcomp were > >> helpful. Forcing tests to run fully interpreted or fully compiled > >> helps in cases where a certain function, e.g. an intrinsic, is > >> invoked via distinct code paths. > > > > Right, so your patch should include that change to the test suite. > > > > Hi Lutz, > > I agree with Andrew. We should really fix the tests such that they > check the correctness of the intrinsics. > > This may be tricky if all three, the interpreter, the client and the > server compiler use the same intrinsic implementation. You could > either copy the pure Java implementation into the test so that you can > compare the results of the intrinsic operation against it or you can > switch them off in the compilers with > "-XX:DisableIntrinsic=_updateBytesCRC32C > -XX:DisableIntrinsics=_updateDirectByteBufferCRC32C" and compare the > results. Not sure which solution is more practical, but I would be > really scared if we wouldn't have these test. > > Regards, > Volker > > > Andrew. > > > > From martin.doerr at sap.com Thu Mar 16 15:31:14 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Thu, 16 Mar 2017 15:31:14 +0000 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> Message-ID: <5bf237e691374c8f90000bc1d194a214@sap.com> Hi, thanks, Zoltan, for all your support. I have spent some more time for experiments on Windows. UseLargePages only works for users with special privilege "SeLockMemoryPrivilege" which is kind of tricky to get. The good news is that this bug is not problematic on Windows. The function gen_narrow_oop_implicit_null_checks returns false if narrow_oop_use_implicit_null_checks is false (except for AIX), so the null check gets performed after the decode. C2 uses regular decode (0 gets decoded to 0, unlike decode_not_null) in this case, so the implicit null check hits the 0 page which is not accessible and the exception gets thrown. I have tried changing gen_narrow_oop_implicit_null_checks and that allows reproducing the bug on Windows. With the current implementation of gen_narrow_oop_implicit_null_checks, only AIX is exposed to the bug. Best regards, Martin -----Original Message----- From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] Sent: Mittwoch, 15. M?rz 2017 15:40 To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base Hi Martin, On 03/15/2017 03:27 PM, Doerr, Martin wrote: > Hi Zoltan, > > thank you very much for reviewing and for sponsoring. thank you for spending time on this issue. > > I have updated the comments and added the test. > We think it should be fine to run the test on all 64 bit platforms as it is fast and a little more testing in this area is not bad. > If you don't agree, I can change it to run only on fewer platforms. OK, let's run it on all platforms then. > Please take a look. > > New webrev is here: > http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ The updated webrev looks good to me. I'll start pre-integration testing now and (if nothing unexpected happens) push the change afterwards. I'll keep you updated. Thank you! Best regards, Zoltan > > Thanks and best regards, > Martin > > > -----Original Message----- > From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] > Sent: Mittwoch, 15. M?rz 2017 11:07 > To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' > Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base > > Hi Martin, > > > thank you for looking into this issue! Your fix looks good to me in > general. Here are a few minor comments that you could maybe consider. > > - Could you please update the comment on line 261 to describe that we > skip generating the implicit null check if the heap base is not protected? > > 260 !Universe::narrow_oop_use_implicit_null_checks())) > 261 continue; // Give up if offset is beyond > page size > > - Could you please update the comment on line 279 to be more consistent > with other comments in the same code region. Something along the lines > "Give up if operation is a DecodeN and the heap base is not protected" > could do. I don't see anything wrong with the check of the graph's shape. > > - Could you please change comment > > 278 continue; // Give up i*s* reference is > beyond 4K page size > > to > > 278 continue; // Give up i*f* reference is > beyond 4K page size > > - Could you please add the test case you have to the fix you're > proposing? I'm not sure if you need to record the duration of the test's > execution. Maybe you can reduce the number of iterations -- 20K could be > sufficient. Could you please make the test throw an exception if the > NullPointerException is not thrown? And finally, can you force the test > to be executed only on AIX/Windows and with the parameters you mentioned > in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and > -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) > > I can do the pre-integration testing for the change and then sponsor it. > > Thank you! > > Best regards, > > > Zoltan > > On 03/14/2017 02:35 PM, Doerr, Martin wrote: >> Hi, >> >> I have experimented on x86 and I get a very similar graph when using >> -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into >> operands) in addition to the flags below under [1]. >> >> If -XX:+UseLargePages (which is used to skip the heap base protection) >> is supported on Windows, the problem exists there as well. >> >> As the graph pattern on PPC64 is the same as on x86, I believe that >> there's nothing wrong except the missing check for >> narrow_oop_use_implicit_null_checks(), which is added by the webrev below. >> >> The remaining question is if there's a better test than >> "base->as_Mach()->ideal_Opcode() == Op_DecodeN". >> >> I will also need a sponsor for this change, please. >> >> Thanks and best regards, >> >> Martin >> >> *From:*hotspot-compiler-dev >> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of >> *Doerr, Martin >> *Sent:* Freitag, 10. M?rz 2017 18:49 >> *To:* 'hotspot-compiler-dev at openjdk.java.net' >> >> *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >> non-protected heap base >> >> Hi, >> >> we have observed that C2 generates implicit null checks for write >> accesses to the heap base even though it was not protected >> (narrow_oop_use_implicit_null_checks = false). >> >> The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. >> ReservedHeapSpace::establish_noaccess_prefix protects the base area on >> almost all platforms, but not on AIX (in some case). >> >> PhaseCFG::implicit_null_check needs to skip the transformation in this >> case. >> >> The problem can be reproduced by the simple test program below under >> [1]. The null pointer exception is just missing when running with the >> given parameters. >> >> The problem can be prevented by applying this patch: >> >> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ >> >> >> Especially, the case "base->is_Mach() && >> base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure >> if this is allowed at that place. Maybe something went wrong before. >> >> The node "base" is a storeI and "addr"="base" is a decodeN node (the >> "index" retrieved by mach->memory_inputs is NULL). >> >> The patch helps, but is there a better way to fix the problem? >> >> Thanks and best regards, >> >> Martin >> >> [1] Reproduction case: >> >> /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation >> -Xbatch TestWriteNPE >> >> *public**class*TestWriteNPE{ >> >> TestWriteNPE instance = *null*; >> >> *int*i = 0; >> >> *public**void*bogus_test(*int*value) { >> >> instance.i = value; >> >> } >> >> *static**final**int*loop_cnt=100000; >> >> *public**static**void*main(String args[]){ >> >> TestWriteNPE xyz=*new*TestWriteNPE(); >> >> xyz.instance = xyz; >> >> *long*duration = System.nanoTime(); >> >> *for*(*int*x=0; x> >> duration = System.nanoTime() - duration; >> >> System.out.println("value: "+ xyz.i + " (duration: "+ >> duration/loop_cnt + ")"); >> >> xyz.instance = *null*; >> >> *try*{ >> >> xyz.bogus_test(0); >> >> } *catch*(NullPointerException np) { >> >> System.out.println("Got NPE:"); >> >> np.printStackTrace(); >> >> } >> >> } >> >> } >> From vladimir.x.ivanov at oracle.com Thu Mar 16 16:10:55 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 16 Mar 2017 19:10:55 +0300 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: References: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> Message-ID: <1aef21ad-3676-2ffd-069a-c74ef36a668a@oracle.com> >> I find it problematic to decide whether an unsafe access is always >> on-heap or not during parsing. Considering we plan to remove membars >> around suspicious accesses (as a fix for JDK-8176513), I would like to >> avoid conservatively treating them as raw. > > Isn't the plan to remove the membars for 9 and put it back in 10? JDK-8176513 removed membars around (possibly) mixed accesses and the fix we are discussing makes them obsolete. > I think it's a problem that we build a broken graph and try to plug the > holes as we find them because there will always be holes that we are not > yet aware of. That's why my suggestion is to be conservative. I also > think we should use arguments profiling and a null check to > speculatively cast base to non null when it makes sense. We have the > machinery to do that and it's a very simple change. I agree with your concerns and fully support using argument profiling and speculative casts to improve the code w/ unsafe accesses. >> FTR I faced a similar problem before (JDK-8155635 [1]) and initially >> experimented with a different approach: convert null-based oop pointers >> to raw pointers [2], but after additional discussions decided to abandon it. > > I noticed that discussion. When we hit a similar problem with Shenandoah > I used a fix similar to the one you suggested. If you read Vladimir K's > answer: > > http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-April/022745.html > > "I think we should track which pointers are really RAW when creating > them." > > which is what the fix I'm proposing now is doing. Ok, after thinking about it more, I agree with your arguments. My last concern is that by marking possibly mixed accesses as RAW during parsing, we limit what optimizations can be applied later. I thought about allowing rawptr => oopptr conversions for mixed accesses once they become on-heap (+ some cleanups; full patch [1]): http://cr.openjdk.java.net/~vlivanov/roland/8176506/webrev.01_00/ What do you think about it? Also, I think the checks in LoadNode::split_through_phi & MemNode::Ideal_common I mentioned before affect normal accesses as well, so probably the problem with loop unswitching you encountered isn't specific to unsafe accesses. But let's keep it separate. Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~vlivanov/roland/8176506/webrev.01/ From vladimir.x.ivanov at oracle.com Thu Mar 16 18:09:01 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 16 Mar 2017 21:09:01 +0300 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> Message-ID: <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> > The changes to the JDK core classes are quite extensive. This will need > rigorous functional and performance testing and it is very late in the > release cycle to make these kinds of changes. But I'll leave that to the > core-libs folk to comment on. I have the same concern. Can we fix the immediate problem in 9 and integrate verification logic in 10? Best regards, Vladimir Ivanov From dean.long at oracle.com Thu Mar 16 19:41:35 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Thu, 16 Mar 2017 12:41:35 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> Message-ID: On 3/15/17 6:19 PM, David Holmes wrote: > src/share/vm/classfile/javaClasses.hpp > > Given the the only call to java_lang_String::set_debug_intrinsics is > within an ifdef, shouldn't the declaration and definition of the > method also be guarded the same way? OK I'll change it. dl From dean.long at oracle.com Thu Mar 16 20:01:43 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Thu, 16 Mar 2017 13:01:43 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <6791984c-2e58-2dd6-5c9d-023f2dad5861@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <6791984c-2e58-2dd6-5c9d-023f2dad5861@oracle.com> Message-ID: <51a494e9-fe2d-4622-a1a0-1c7e69287ace@oracle.com> On 3/16/17 2:52 AM, Tobias Hartmann wrote: >> As a safety net, I added asserts around the intrinsic calls, and a try/catch that so any out of bounds exception turns into an assert error as well. > So the assert and try/catch are only necessary to catch invalid offsets passed to the C1 intrinsic, right? Interpreted code is safe and the C2 intrinsics have additional guards in debug builds. The try/catch turns an exception into an assert for interpreted and C1 debug, and the assert can be used in product builds. dl -------------- next part -------------- An HTML attachment was scrubbed... URL: From dean.long at oracle.com Thu Mar 16 20:08:10 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Thu, 16 Mar 2017 13:08:10 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> Message-ID: On 3/16/17 2:52 AM, Tobias Hartmann wrote: >> As a safety net, I added asserts around the intrinsic calls, and a try/catch that so any out of bounds exception turns into an assert error as well. > So the assert and try/catch are only necessary to catch invalid offsets passed to the C1 intrinsic, right? Interpreted code is safe and the C2 intrinsics have additional guards in debug builds. > > > I'm fine with that but an alternative would be to also have such guards in the C1 intrinsic. For example, one could enable the normal bound checks and add a simple check to Runtime1::throw_range_check_exception() that fails if the throwing method is the C1 intrinsic. Like this, we could avoid the assert, try-catch and DEBUG_INTRINSICS code. > On 3/16/17 11:09 AM, Vladimir Ivanov wrote: > >> The changes to the JDK core classes are quite extensive. This will need >> rigorous functional and performance testing and it is very late in the >> release cycle to make these kinds of changes. But I'll leave that to the >> core-libs folk to comment on. > > I have the same concern. Can we fix the immediate problem in 9 and > integrate verification logic in 10? > OK, Tobias is suggesting having verification logic only inside the intrinsics. Are you suggesting removing that as well? I'm OK with removing all the verification, but that won't reduce the library changes much. I could undo the renaming to Trusted.getChar, but we would still have the bounds checks moved into StringUTF16. dl > Best regards, > Vladimir Ivanov -------------- next part -------------- An HTML attachment was scrubbed... URL: From zoltan.majo at oracle.com Fri Mar 17 08:50:14 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Fri, 17 Mar 2017 09:50:14 +0100 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: <5bf237e691374c8f90000bc1d194a214@sap.com> References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> <5bf237e691374c8f90000bc1d194a214@sap.com> Message-ID: <4ff75719-16f9-9da2-7266-b0f3eafda20c@oracle.com> Hi Martin, On 03/16/2017 04:31 PM, Doerr, Martin wrote: > Hi, > > thanks, Zoltan, for all your support. > > I have spent some more time for experiments on Windows. thank you for the investigation! > UseLargePages only works for users with special privilege "SeLockMemoryPrivilege" which is kind of tricky to get. > The good news is that this bug is not problematic on Windows. > The function gen_narrow_oop_implicit_null_checks returns false if narrow_oop_use_implicit_null_checks is false (except for AIX), so the null check gets performed after the decode. C2 uses regular decode (0 gets decoded to 0, unlike decode_not_null) in this case, so the implicit null check hits the 0 page which is not accessible and the exception gets thrown. > I have tried changing gen_narrow_oop_implicit_null_checks and that allows reproducing the bug on Windows. > With the current implementation of gen_narrow_oop_implicit_null_checks, only AIX is exposed to the bug. Thank you for explaining. I updated the bug report to match your description. Pre-integration testing is still in progress. I'll push the fix once I have the results. Best regards, Zoltan > > Best regards, > Martin > > > -----Original Message----- > From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] > Sent: Mittwoch, 15. M?rz 2017 15:40 > To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' > Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base > > Hi Martin, > > > On 03/15/2017 03:27 PM, Doerr, Martin wrote: >> Hi Zoltan, >> >> thank you very much for reviewing and for sponsoring. > thank you for spending time on this issue. > >> I have updated the comments and added the test. >> We think it should be fine to run the test on all 64 bit platforms as it is fast and a little more testing in this area is not bad. >> If you don't agree, I can change it to run only on fewer platforms. > OK, let's run it on all platforms then. > >> Please take a look. >> >> New webrev is here: >> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ > The updated webrev looks good to me. I'll start pre-integration testing > now and (if nothing unexpected happens) push the change afterwards. I'll > keep you updated. > > Thank you! > > Best regards, > > > Zoltan > >> Thanks and best regards, >> Martin >> >> >> -----Original Message----- >> From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] >> Sent: Mittwoch, 15. M?rz 2017 11:07 >> To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' >> Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base >> >> Hi Martin, >> >> >> thank you for looking into this issue! Your fix looks good to me in >> general. Here are a few minor comments that you could maybe consider. >> >> - Could you please update the comment on line 261 to describe that we >> skip generating the implicit null check if the heap base is not protected? >> >> 260 !Universe::narrow_oop_use_implicit_null_checks())) >> 261 continue; // Give up if offset is beyond >> page size >> >> - Could you please update the comment on line 279 to be more consistent >> with other comments in the same code region. Something along the lines >> "Give up if operation is a DecodeN and the heap base is not protected" >> could do. I don't see anything wrong with the check of the graph's shape. >> >> - Could you please change comment >> >> 278 continue; // Give up i*s* reference is >> beyond 4K page size >> >> to >> >> 278 continue; // Give up i*f* reference is >> beyond 4K page size >> >> - Could you please add the test case you have to the fix you're >> proposing? I'm not sure if you need to record the duration of the test's >> execution. Maybe you can reduce the number of iterations -- 20K could be >> sufficient. Could you please make the test throw an exception if the >> NullPointerException is not thrown? And finally, can you force the test >> to be executed only on AIX/Windows and with the parameters you mentioned >> in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and >> -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) >> >> I can do the pre-integration testing for the change and then sponsor it. >> >> Thank you! >> >> Best regards, >> >> >> Zoltan >> >> On 03/14/2017 02:35 PM, Doerr, Martin wrote: >>> Hi, >>> >>> I have experimented on x86 and I get a very similar graph when using >>> -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into >>> operands) in addition to the flags below under [1]. >>> >>> If -XX:+UseLargePages (which is used to skip the heap base protection) >>> is supported on Windows, the problem exists there as well. >>> >>> As the graph pattern on PPC64 is the same as on x86, I believe that >>> there's nothing wrong except the missing check for >>> narrow_oop_use_implicit_null_checks(), which is added by the webrev below. >>> >>> The remaining question is if there's a better test than >>> "base->as_Mach()->ideal_Opcode() == Op_DecodeN". >>> >>> I will also need a sponsor for this change, please. >>> >>> Thanks and best regards, >>> >>> Martin >>> >>> *From:*hotspot-compiler-dev >>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of >>> *Doerr, Martin >>> *Sent:* Freitag, 10. M?rz 2017 18:49 >>> *To:* 'hotspot-compiler-dev at openjdk.java.net' >>> >>> *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >>> non-protected heap base >>> >>> Hi, >>> >>> we have observed that C2 generates implicit null checks for write >>> accesses to the heap base even though it was not protected >>> (narrow_oop_use_implicit_null_checks = false). >>> >>> The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. >>> ReservedHeapSpace::establish_noaccess_prefix protects the base area on >>> almost all platforms, but not on AIX (in some case). >>> >>> PhaseCFG::implicit_null_check needs to skip the transformation in this >>> case. >>> >>> The problem can be reproduced by the simple test program below under >>> [1]. The null pointer exception is just missing when running with the >>> given parameters. >>> >>> The problem can be prevented by applying this patch: >>> >>> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ >>> >>> >>> Especially, the case "base->is_Mach() && >>> base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure >>> if this is allowed at that place. Maybe something went wrong before. >>> >>> The node "base" is a storeI and "addr"="base" is a decodeN node (the >>> "index" retrieved by mach->memory_inputs is NULL). >>> >>> The patch helps, but is there a better way to fix the problem? >>> >>> Thanks and best regards, >>> >>> Martin >>> >>> [1] Reproduction case: >>> >>> /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation >>> -Xbatch TestWriteNPE >>> >>> *public**class*TestWriteNPE{ >>> >>> TestWriteNPE instance = *null*; >>> >>> *int*i = 0; >>> >>> *public**void*bogus_test(*int*value) { >>> >>> instance.i = value; >>> >>> } >>> >>> *static**final**int*loop_cnt=100000; >>> >>> *public**static**void*main(String args[]){ >>> >>> TestWriteNPE xyz=*new*TestWriteNPE(); >>> >>> xyz.instance = xyz; >>> >>> *long*duration = System.nanoTime(); >>> >>> *for*(*int*x=0; x>> >>> duration = System.nanoTime() - duration; >>> >>> System.out.println("value: "+ xyz.i + " (duration: "+ >>> duration/loop_cnt + ")"); >>> >>> xyz.instance = *null*; >>> >>> *try*{ >>> >>> xyz.bogus_test(0); >>> >>> } *catch*(NullPointerException np) { >>> >>> System.out.println("Got NPE:"); >>> >>> np.printStackTrace(); >>> >>> } >>> >>> } >>> >>> } >>> From rwestrel at redhat.com Fri Mar 17 09:28:07 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 17 Mar 2017 10:28:07 +0100 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: <1aef21ad-3676-2ffd-069a-c74ef36a668a@oracle.com> References: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> <1aef21ad-3676-2ffd-069a-c74ef36a668a@oracle.com> Message-ID: Hi Vladimir, >> Isn't the plan to remove the membars for 9 and put it back in 10? > > JDK-8176513 removed membars around (possibly) mixed accesses and the fix > we are discussing makes them obsolete. If we use unsafe to access a heap allocated object but it's impossible for the compiler to tell it's heap allocated, then we would compile it as a raw memory access. If we access the same object's field with a regular access in the same method, then there's a chance that access would be reordered with the unsafe access. So we still need the membars? > My last concern is that by marking possibly mixed accesses as RAW during > parsing, we limit what optimizations can be applied later. > > I thought about allowing rawptr => oopptr conversions for mixed accesses > once they become on-heap (+ some cleanups; full patch [1]): > > http://cr.openjdk.java.net/~vlivanov/roland/8176506/webrev.01_00/ > > What do you think about it? Thanks for the cleanup and fixes. Isn't converting rawptr => oopptr a variation of: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-April/022745.html that Vladimir K didn't like? Uses of the AddP records the memory slice they operate on: MemNode::_adr_type, LoadStoreNode::_adr_type. That would need to be fixed if the AddP type changes to avoid inconsistencies. It seems unlikely but if the raw memory type was captured by a node: a Phi that would merge 2 AddPNodes for instance. If the AddPNode types change to oop ptr, then the Phi type wouldn't be oop ptr. I wonder if that could cause problems. If we think the compiler would find more non null bases after some optimizations than it does at parse time, then one solution could be to delay inlining of the unsafe accesses. > Also, I think the checks in LoadNode::split_through_phi & > MemNode::Ideal_common I mentioned before affect normal accesses as well, > so probably the problem with loop unswitching you encountered isn't > specific to unsafe accesses. But let's keep it separate. Can you point to the exact code you're referring to? Roland. From vladimir.x.ivanov at oracle.com Fri Mar 17 12:58:30 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Fri, 17 Mar 2017 15:58:30 +0300 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> Message-ID: <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> >> I have the same concern. Can we fix the immediate problem in 9 and >> integrate verification logic in 10? >> > > OK, Tobias is suggesting having verification logic only inside the > intrinsics. Are you suggesting removing that as well? Yes and put them back in 10. > I'm OK with removing all the verification, but that won't reduce the > library changes much. I could undo the renaming to Trusted.getChar, but > we would still have the bounds checks moved into StringUTF16. I suggest to go with a point fix for 9: just add missing range checks. Is AbstractStringBuilder.append() the only affected method? (Sorry, it's hard to say exactly where the problem is by looking at the diff.) I really like the refactoring you propose on jdk side, but there are pieces I'm not sure about. For example, I spotted a repeated range check: jdk/src/java.base/share/classes/java/lang/AbstractStringBuilder.java: public void setCharAt(int index, char ch) { checkIndex(index, count); if (isLatin1() && StringLatin1.canEncode(ch)) { value[index] = (byte)ch; } else { if (isLatin1()) { inflate(); } StringUTF16.putCharSB(value, index, ch); } } Best regards, Vladimir Ivanov From vladimir.x.ivanov at oracle.com Fri Mar 17 15:37:33 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Fri, 17 Mar 2017 18:37:33 +0300 Subject: [9 or 10?] RFR(M): 8176506: C2: loop unswitching and unsafe accesses cause crash In-Reply-To: References: <6ce634a9-cd51-d98b-8e46-fbe6cb1f3f43@oracle.com> <1aef21ad-3676-2ffd-069a-c74ef36a668a@oracle.com> Message-ID: >>> Isn't the plan to remove the membars for 9 and put it back in 10? >> >> JDK-8176513 removed membars around (possibly) mixed accesses and the fix >> we are discussing makes them obsolete. > > If we use unsafe to access a heap allocated object but it's impossible > for the compiler to tell it's heap allocated, then we would compile it > as a raw memory access. If we access the same object's field with a > regular access in the same method, then there's a chance that access > would be reordered with the unsafe access. So we still need the membars? Yes, my bad. >> My last concern is that by marking possibly mixed accesses as RAW during >> parsing, we limit what optimizations can be applied later. >> >> I thought about allowing rawptr => oopptr conversions for mixed accesses >> once they become on-heap (+ some cleanups; full patch [1]): >> >> http://cr.openjdk.java.net/~vlivanov/roland/8176506/webrev.01_00/ >> >> What do you think about it? > > Thanks for the cleanup and fixes. > Isn't converting rawptr => oopptr a variation of: > > http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-April/022745.html > > that Vladimir K didn't like? > > Uses of the AddP records the memory slice they operate on: > MemNode::_adr_type, LoadStoreNode::_adr_type. That would need to be > fixed if the AddP type changes to avoid inconsistencies. > > It seems unlikely but if the raw memory type was captured by a node: a > Phi that would merge 2 AddPNodes for instance. If the AddPNode types > change to oop ptr, then the Phi type wouldn't be oop ptr. I wonder if > that could cause problems. Good point. I erroneously assumed that the difference between (rawptr => oopptr) and (oopptr => rawptr) conversions is widening vs narrowing types, but it's not the case since rawptr & oopptr types are disjoint. So, the proper type for mixed accesses would be TypePtr::BOTTOM, but it won't make the compiler happy :-) > If we think the compiler would find more non null bases after some > optimizations than it does at parse time, then one solution could be to > delay inlining of the unsafe accesses. Ok, let's leave mixed accesses aside. If it turns out to be an important case, then we can revisit it later. Argument profiling should minimize the chances of on-heap unsafe access to be treated as mixed. >> Also, I think the checks in LoadNode::split_through_phi & >> MemNode::Ideal_common I mentioned before affect normal accesses as well, >> so probably the problem with loop unswitching you encountered isn't >> specific to unsafe accesses. But let's keep it separate. > > Can you point to the exact code you're referring to? http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/78c27c5148a7/src/share/vm/opto/memnode.cpp#l1312 http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/78c27c5148a7/src/share/vm/opto/memnode.cpp#l331 Best regards, Vladimir Ivanov From dean.long at oracle.com Fri Mar 17 20:18:49 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Fri, 17 Mar 2017 13:18:49 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> Message-ID: <81d81016-c9df-efbe-6d11-d2ecd9c02090@oracle.com> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: > >>> I have the same concern. Can we fix the immediate problem in 9 and >>> integrate verification logic in 10? >>> >> >> OK, Tobias is suggesting having verification logic only inside the >> intrinsics. Are you suggesting removing that as well? > > Yes and put them back in 10. OK. > >> I'm OK with removing all the verification, but that won't reduce the >> library changes much. I could undo the renaming to Trusted.getChar, but >> we would still have the bounds checks moved into StringUTF16. > > I suggest to go with a point fix for 9: just add missing range checks. > > Is AbstractStringBuilder.append() the only affected method? (Sorry, > it's hard to say exactly where the problem is by looking at the diff.) > In the failing test, yes, it was append, but when I went to fix the problem I found that it was much more wide spread, and there were several methods that were affected. > I really like the refactoring you propose on jdk side, but there are > pieces I'm not sure about. For example, I spotted a repeated range check: > > jdk/src/java.base/share/classes/java/lang/AbstractStringBuilder.java: > public void setCharAt(int index, char ch) { > checkIndex(index, count); > if (isLatin1() && StringLatin1.canEncode(ch)) { > value[index] = (byte)ch; > } else { > if (isLatin1()) { > inflate(); > } > StringUTF16.putCharSB(value, index, ch); > } > } > OK, I did not look for redundant checks. This check is actually not redundant. The "value" array may be oversized, so "count" is supposed to contain the current maximum. For the safety of the intrinsic array access, we check against the array length, but for the API we need to be stricter and check against the character count. However, the checkIndex() here is a good example of what is wrong. Let's say we were checking against value.length instead of "count". Even if checkIndex() succeeds here, based on the current length of "value", we can't trust it because the object is mutable and "value" can change between the checkIndex() and putCharSB(). dl > Best regards, > Vladimir Ivanov From lutz.schmidt at sap.com Fri Mar 17 21:03:04 2017 From: lutz.schmidt at sap.com (Schmidt, Lutz) Date: Fri, 17 Mar 2017 21:03:04 +0000 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> <69B4433F-72B8-4855-9C42-A89F4AB34F6F@sap.com> Message-ID: Hi Volker, Thanks a lot for your valuable hints. I have worked some time on the Java test files: TestCRC32.java and TestCRC32C.java are now identical as far as possible. They now throw an exception, should any error be detected. The ?reference CRC value? is now used in test_multi() as well. The extra test runs have been removed again. The test methodology is fixed: each result is tested against its reference. The tests now detect the bug introduced with 8175368 and 8175369. No issue is indicated when testing with 8176580. I ran jcheck, and to the best of my ability and knowledge, there is no trailing whitespace. All *.cpp files were left untouched! The next iteration of the webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.02/ Best regards, Lutz Dr. Lutz Schmidt | SAP JVM | PI SAP CP Core | T: +49 (6227) 7-42834 On 16.03.17, 11:28, "Volker Simonis" wrote: On Wed, Mar 15, 2017 at 5:55 PM, Schmidt, Lutz wrote: > > Hi Andrew, Volker, > > What do you think about these test enhancements? > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.01/ > > Please note: the cpp files in the webrev remained unchanged. > > I added some improvements (as I believe) to the TestCRC32(C).java files. > > In some more detail: > The test now calculates a ?reference CRC value?, based on a java implementation of the CRC32 algorithm. This reference value is used to verify all other crc values, in particular during initialization and warmup. Three additional test runs check a non-zero offset with ?Xint, -Xcomp -XX:-TieredCompilation (C2 only), -Xcomp -XX:+TieredCompilation (C1 + C2). > Hi Lutz, thanks for updating the tests. I've had a closer look at the tests and realized that they actually can never fail! The check() routine just prints an error message but that will not let the test fail. So I would suggest to throw a runtime exception in the check() routine after the error message was printed. I also suggest to do the check during the normal test execution (i.e. in test_multi()) so there's no need for extra test runs. Finally, the current test methodology in test_multi() is broken: - it sets the reference by calling CRC from the interpreter which won't work if the intrinsic is also used in the interpreter. - it only compares the reference against the last computation of CRC in the loop which will be the result of the C2 generated code. This misses errors in C1. I suggest to use your new, pure Java implementation for the computation of the reference result and compare the reference with the result of calling CRC in every iteration of the loop so we really check all possibilities from interpreter trough C1 to C2. Finally, can you please pay attention to not insert trailing whitespace (there was some at line 88 in TestCRC32C.java). You can easily verify this by running jcheck before creating the webrevs. Thanks, Volker > > Best regards, > Lutz > > > On 15.03.17, 11:50, "Volker Simonis" wrote: > > On Tue, Mar 14, 2017 at 7:05 PM, Andrew Haley wrote: > > On 14/03/17 13:12, Schmidt, Lutz wrote: > > > >> Yes, one might think of running a test suite subset multiple times > >> with different parameters. In this case, -Xint and/or ?Xcomp were > >> helpful. Forcing tests to run fully interpreted or fully compiled > >> helps in cases where a certain function, e.g. an intrinsic, is > >> invoked via distinct code paths. > > > > Right, so your patch should include that change to the test suite. > > > > Hi Lutz, > > I agree with Andrew. We should really fix the tests such that they > check the correctness of the intrinsics. > > This may be tricky if all three, the interpreter, the client and the > server compiler use the same intrinsic implementation. You could > either copy the pure Java implementation into the test so that you can > compare the results of the intrinsic operation against it or you can > switch them off in the compilers with > "-XX:DisableIntrinsic=_updateBytesCRC32C > -XX:DisableIntrinsics=_updateDirectByteBufferCRC32C" and compare the > results. Not sure which solution is more practical, but I would be > really scared if we wouldn't have these test. > > Regards, > Volker > > > Andrew. > > > > From dean.long at oracle.com Fri Mar 17 22:07:02 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Fri, 17 Mar 2017 15:07:02 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> Message-ID: <3553280e-6955-a574-8154-19cb52409300@oracle.com> I posted two new versions, webrev.1 keeping the Trusted inner class: http://cr.openjdk.java.net/~dlong/8158168/webrev.1/ and webrev.2 with it removed: http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ dl On 3/17/17 5:58 AM, Vladimir Ivanov wrote: > >>> I have the same concern. Can we fix the immediate problem in 9 and >>> integrate verification logic in 10? >>> >> >> OK, Tobias is suggesting having verification logic only inside the >> intrinsics. Are you suggesting removing that as well? > > Yes and put them back in 10. > >> I'm OK with removing all the verification, but that won't reduce the >> library changes much. I could undo the renaming to Trusted.getChar, but >> we would still have the bounds checks moved into StringUTF16. > > I suggest to go with a point fix for 9: just add missing range checks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From zoltan.majo at oracle.com Mon Mar 20 11:47:13 2017 From: zoltan.majo at oracle.com (=?UTF-8?B?Wm9sdMOhbiBNYWrDsw==?=) Date: Mon, 20 Mar 2017 12:47:13 +0100 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: <4ff75719-16f9-9da2-7266-b0f3eafda20c@oracle.com> References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> <5bf237e691374c8f90000bc1d194a214@sap.com> <4ff75719-16f9-9da2-7266-b0f3eafda20c@oracle.com> Message-ID: <779faba6-9b35-f94c-6564-d871ea63f4ec@oracle.com> Hi Martin, On 03/17/2017 09:50 AM, Zolt?n Maj? wrote: > [...] > > Pre-integration testing is still in progress. I'll push the fix once I > have the results. The results of pre-integration testing looked good, so I pushed your fix. Thank you! Best regards, Zoltan > > Best regards, > > > Zoltan > >> >> Best regards, >> Martin >> >> >> -----Original Message----- >> From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] >> Sent: Mittwoch, 15. M?rz 2017 15:40 >> To: Doerr, Martin ; >> 'hotspot-compiler-dev at openjdk.java.net' >> >> Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >> non-protected heap base >> >> Hi Martin, >> >> >> On 03/15/2017 03:27 PM, Doerr, Martin wrote: >>> Hi Zoltan, >>> >>> thank you very much for reviewing and for sponsoring. >> thank you for spending time on this issue. >> >>> I have updated the comments and added the test. >>> We think it should be fine to run the test on all 64 bit platforms >>> as it is fast and a little more testing in this area is not bad. >>> If you don't agree, I can change it to run only on fewer platforms. >> OK, let's run it on all platforms then. >> >>> Please take a look. >>> >>> New webrev is here: >>> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ >> The updated webrev looks good to me. I'll start pre-integration testing >> now and (if nothing unexpected happens) push the change afterwards. I'll >> keep you updated. >> >> Thank you! >> >> Best regards, >> >> >> Zoltan >> >>> Thanks and best regards, >>> Martin >>> >>> >>> -----Original Message----- >>> From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] >>> Sent: Mittwoch, 15. M?rz 2017 11:07 >>> To: Doerr, Martin ; >>> 'hotspot-compiler-dev at openjdk.java.net' >>> >>> Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >>> non-protected heap base >>> >>> Hi Martin, >>> >>> >>> thank you for looking into this issue! Your fix looks good to me in >>> general. Here are a few minor comments that you could maybe consider. >>> >>> - Could you please update the comment on line 261 to describe that we >>> skip generating the implicit null check if the heap base is not >>> protected? >>> >>> 260 !Universe::narrow_oop_use_implicit_null_checks())) >>> 261 continue; // Give up if offset is beyond >>> page size >>> >>> - Could you please update the comment on line 279 to be more consistent >>> with other comments in the same code region. Something along the lines >>> "Give up if operation is a DecodeN and the heap base is not protected" >>> could do. I don't see anything wrong with the check of the graph's >>> shape. >>> >>> - Could you please change comment >>> >>> 278 continue; // Give up i*s* reference is >>> beyond 4K page size >>> >>> to >>> >>> 278 continue; // Give up i*f* reference is >>> beyond 4K page size >>> >>> - Could you please add the test case you have to the fix you're >>> proposing? I'm not sure if you need to record the duration of the >>> test's >>> execution. Maybe you can reduce the number of iterations -- 20K >>> could be >>> sufficient. Could you please make the test throw an exception if the >>> NullPointerException is not thrown? And finally, can you force the test >>> to be executed only on AIX/Windows and with the parameters you >>> mentioned >>> in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and >>> -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) >>> >>> I can do the pre-integration testing for the change and then sponsor >>> it. >>> >>> Thank you! >>> >>> Best regards, >>> >>> >>> Zoltan >>> >>> On 03/14/2017 02:35 PM, Doerr, Martin wrote: >>>> Hi, >>>> >>>> I have experimented on x86 and I get a very similar graph when using >>>> -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into >>>> operands) in addition to the flags below under [1]. >>>> >>>> If -XX:+UseLargePages (which is used to skip the heap base protection) >>>> is supported on Windows, the problem exists there as well. >>>> >>>> As the graph pattern on PPC64 is the same as on x86, I believe that >>>> there's nothing wrong except the missing check for >>>> narrow_oop_use_implicit_null_checks(), which is added by the webrev >>>> below. >>>> >>>> The remaining question is if there's a better test than >>>> "base->as_Mach()->ideal_Opcode() == Op_DecodeN". >>>> >>>> I will also need a sponsor for this change, please. >>>> >>>> Thanks and best regards, >>>> >>>> Martin >>>> >>>> *From:*hotspot-compiler-dev >>>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of >>>> *Doerr, Martin >>>> *Sent:* Freitag, 10. M?rz 2017 18:49 >>>> *To:* 'hotspot-compiler-dev at openjdk.java.net' >>>> >>>> *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >>>> non-protected heap base >>>> >>>> Hi, >>>> >>>> we have observed that C2 generates implicit null checks for write >>>> accesses to the heap base even though it was not protected >>>> (narrow_oop_use_implicit_null_checks = false). >>>> >>>> The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. >>>> ReservedHeapSpace::establish_noaccess_prefix protects the base area on >>>> almost all platforms, but not on AIX (in some case). >>>> >>>> PhaseCFG::implicit_null_check needs to skip the transformation in this >>>> case. >>>> >>>> The problem can be reproduced by the simple test program below under >>>> [1]. The null pointer exception is just missing when running with the >>>> given parameters. >>>> >>>> The problem can be prevented by applying this patch: >>>> >>>> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ >>>> >>>> >>>> Especially, the case "base->is_Mach() && >>>> base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure >>>> if this is allowed at that place. Maybe something went wrong before. >>>> >>>> The node "base" is a storeI and "addr"="base" is a decodeN node (the >>>> "index" retrieved by mach->memory_inputs is NULL). >>>> >>>> The patch helps, but is there a better way to fix the problem? >>>> >>>> Thanks and best regards, >>>> >>>> Martin >>>> >>>> [1] Reproduction case: >>>> >>>> /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation >>>> -Xbatch TestWriteNPE >>>> >>>> *public**class*TestWriteNPE{ >>>> >>>> TestWriteNPE instance = *null*; >>>> >>>> *int*i = 0; >>>> >>>> *public**void*bogus_test(*int*value) { >>>> >>>> instance.i = value; >>>> >>>> } >>>> >>>> *static**final**int*loop_cnt=100000; >>>> >>>> *public**static**void*main(String args[]){ >>>> >>>> TestWriteNPE xyz=*new*TestWriteNPE(); >>>> >>>> xyz.instance = xyz; >>>> >>>> *long*duration = System.nanoTime(); >>>> >>>> *for*(*int*x=0; x>>> >>>> duration = System.nanoTime() - duration; >>>> >>>> System.out.println("value: "+ xyz.i + " (duration: "+ >>>> duration/loop_cnt + ")"); >>>> >>>> xyz.instance = *null*; >>>> >>>> *try*{ >>>> >>>> xyz.bogus_test(0); >>>> >>>> } *catch*(NullPointerException np) { >>>> >>>> System.out.println("Got NPE:"); >>>> >>>> np.printStackTrace(); >>>> >>>> } >>>> >>>> } >>>> >>>> } >>>> > From martin.doerr at sap.com Mon Mar 20 11:48:43 2017 From: martin.doerr at sap.com (Doerr, Martin) Date: Mon, 20 Mar 2017 11:48:43 +0000 Subject: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base In-Reply-To: <779faba6-9b35-f94c-6564-d871ea63f4ec@oracle.com> References: <4c042cb1458b44eaa1c92226829ebc74@sap.com> <22c4a75f-7673-3ec1-a0a6-9e13fe31d862@oracle.com> <5bf237e691374c8f90000bc1d194a214@sap.com> <4ff75719-16f9-9da2-7266-b0f3eafda20c@oracle.com> <779faba6-9b35-f94c-6564-d871ea63f4ec@oracle.com> Message-ID: Hi Zoltan, Great! Thank you very much. Best regards, Martin -----Original Message----- From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] Sent: Montag, 20. M?rz 2017 12:47 To: Doerr, Martin ; 'hotspot-compiler-dev at openjdk.java.net' Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with non-protected heap base Hi Martin, On 03/17/2017 09:50 AM, Zolt?n Maj? wrote: > [...] > > Pre-integration testing is still in progress. I'll push the fix once I > have the results. The results of pre-integration testing looked good, so I pushed your fix. Thank you! Best regards, Zoltan > > Best regards, > > > Zoltan > >> >> Best regards, >> Martin >> >> >> -----Original Message----- >> From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] >> Sent: Mittwoch, 15. M?rz 2017 15:40 >> To: Doerr, Martin ; >> 'hotspot-compiler-dev at openjdk.java.net' >> >> Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >> non-protected heap base >> >> Hi Martin, >> >> >> On 03/15/2017 03:27 PM, Doerr, Martin wrote: >>> Hi Zoltan, >>> >>> thank you very much for reviewing and for sponsoring. >> thank you for spending time on this issue. >> >>> I have updated the comments and added the test. >>> We think it should be fine to run the test on all 64 bit platforms >>> as it is fast and a little more testing in this area is not bad. >>> If you don't agree, I can change it to run only on fewer platforms. >> OK, let's run it on all platforms then. >> >>> Please take a look. >>> >>> New webrev is here: >>> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.01/ >> The updated webrev looks good to me. I'll start pre-integration testing >> now and (if nothing unexpected happens) push the change afterwards. I'll >> keep you updated. >> >> Thank you! >> >> Best regards, >> >> >> Zoltan >> >>> Thanks and best regards, >>> Martin >>> >>> >>> -----Original Message----- >>> From: Zolt?n Maj? [mailto:zoltan.majo at oracle.com] >>> Sent: Mittwoch, 15. M?rz 2017 11:07 >>> To: Doerr, Martin ; >>> 'hotspot-compiler-dev at openjdk.java.net' >>> >>> Subject: Re: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >>> non-protected heap base >>> >>> Hi Martin, >>> >>> >>> thank you for looking into this issue! Your fix looks good to me in >>> general. Here are a few minor comments that you could maybe consider. >>> >>> - Could you please update the comment on line 261 to describe that we >>> skip generating the implicit null check if the heap base is not >>> protected? >>> >>> 260 !Universe::narrow_oop_use_implicit_null_checks())) >>> 261 continue; // Give up if offset is beyond >>> page size >>> >>> - Could you please update the comment on line 279 to be more consistent >>> with other comments in the same code region. Something along the lines >>> "Give up if operation is a DecodeN and the heap base is not protected" >>> could do. I don't see anything wrong with the check of the graph's >>> shape. >>> >>> - Could you please change comment >>> >>> 278 continue; // Give up i*s* reference is >>> beyond 4K page size >>> >>> to >>> >>> 278 continue; // Give up i*f* reference is >>> beyond 4K page size >>> >>> - Could you please add the test case you have to the fix you're >>> proposing? I'm not sure if you need to record the duration of the >>> test's >>> execution. Maybe you can reduce the number of iterations -- 20K >>> could be >>> sufficient. Could you please make the test throw an exception if the >>> NullPointerException is not thrown? And finally, can you force the test >>> to be executed only on AIX/Windows and with the parameters you >>> mentioned >>> in the RFR (i.e., -XX:HeapBaseMinAddress=32g on AIX and >>> -XX:ObjectAlignmentInBytes=16 -XX:+UseLargePages on Windows) >>> >>> I can do the pre-integration testing for the change and then sponsor >>> it. >>> >>> Thank you! >>> >>> Best regards, >>> >>> >>> Zoltan >>> >>> On 03/14/2017 02:35 PM, Doerr, Martin wrote: >>>> Hi, >>>> >>>> I have experimented on x86 and I get a very similar graph when using >>>> -XX:ObjectAlignmentInBytes=16 (prevents oop decoding matched into >>>> operands) in addition to the flags below under [1]. >>>> >>>> If -XX:+UseLargePages (which is used to skip the heap base protection) >>>> is supported on Windows, the problem exists there as well. >>>> >>>> As the graph pattern on PPC64 is the same as on x86, I believe that >>>> there's nothing wrong except the missing check for >>>> narrow_oop_use_implicit_null_checks(), which is added by the webrev >>>> below. >>>> >>>> The remaining question is if there's a better test than >>>> "base->as_Mach()->ideal_Opcode() == Op_DecodeN". >>>> >>>> I will also need a sponsor for this change, please. >>>> >>>> Thanks and best regards, >>>> >>>> Martin >>>> >>>> *From:*hotspot-compiler-dev >>>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of >>>> *Doerr, Martin >>>> *Sent:* Freitag, 10. M?rz 2017 18:49 >>>> *To:* 'hotspot-compiler-dev at openjdk.java.net' >>>> >>>> *Subject:* RFR: (S) 8176518: [9] C2: Invalid ImplicitNullChecks with >>>> non-protected heap base >>>> >>>> Hi, >>>> >>>> we have observed that C2 generates implicit null checks for write >>>> accesses to the heap base even though it was not protected >>>> (narrow_oop_use_implicit_null_checks = false). >>>> >>>> The problem showed up on AIX with -XX:HeapBaseMinAddress=32g. >>>> ReservedHeapSpace::establish_noaccess_prefix protects the base area on >>>> almost all platforms, but not on AIX (in some case). >>>> >>>> PhaseCFG::implicit_null_check needs to skip the transformation in this >>>> case. >>>> >>>> The problem can be reproduced by the simple test program below under >>>> [1]. The null pointer exception is just missing when running with the >>>> given parameters. >>>> >>>> The problem can be prevented by applying this patch: >>>> >>>> http://cr.openjdk.java.net/~mdoerr/8176518_C2_NullCheck/webrev.00/ >>>> >>>> >>>> Especially, the case "base->is_Mach() && >>>> base->as_Mach()->ideal_Opcode() == Op_DecodeN" gets hit. I'm not sure >>>> if this is allowed at that place. Maybe something went wrong before. >>>> >>>> The node "base" is a storeI and "addr"="base" is a decodeN node (the >>>> "index" retrieved by mach->memory_inputs is NULL). >>>> >>>> The patch helps, but is there a better way to fix the problem? >>>> >>>> Thanks and best regards, >>>> >>>> Martin >>>> >>>> [1] Reproduction case: >>>> >>>> /jdk/bin/java -XX:HeapBaseMinAddress=32g -XX:-TieredCompilation >>>> -Xbatch TestWriteNPE >>>> >>>> *public**class*TestWriteNPE{ >>>> >>>> TestWriteNPE instance = *null*; >>>> >>>> *int*i = 0; >>>> >>>> *public**void*bogus_test(*int*value) { >>>> >>>> instance.i = value; >>>> >>>> } >>>> >>>> *static**final**int*loop_cnt=100000; >>>> >>>> *public**static**void*main(String args[]){ >>>> >>>> TestWriteNPE xyz=*new*TestWriteNPE(); >>>> >>>> xyz.instance = xyz; >>>> >>>> *long*duration = System.nanoTime(); >>>> >>>> *for*(*int*x=0; x>>> >>>> duration = System.nanoTime() - duration; >>>> >>>> System.out.println("value: "+ xyz.i + " (duration: "+ >>>> duration/loop_cnt + ")"); >>>> >>>> xyz.instance = *null*; >>>> >>>> *try*{ >>>> >>>> xyz.bogus_test(0); >>>> >>>> } *catch*(NullPointerException np) { >>>> >>>> System.out.println("Got NPE:"); >>>> >>>> np.printStackTrace(); >>>> >>>> } >>>> >>>> } >>>> >>>> } >>>> > From xueming.shen at oracle.com Tue Mar 21 06:10:51 2017 From: xueming.shen at oracle.com (Xueming Shen) Date: Mon, 20 Mar 2017 23:10:51 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <3553280e-6955-a574-8154-19cb52409300@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> Message-ID: <58D0C3EB.9020208@oracle.com> Hi Dean, Thanks for doing this. Though as I suggested last time personally I prefer to make minimum change to simply seal those holes in ASB at this late stage of JDK9. I'm fine with the webrev.2 and it looks better and reasonable to pull all UTF16 operations into StringUTF16.java. Just for my curiosity, does the change in String#1810 make difference? Thanks! Sherman On 3/17/17, 3:07 PM, dean.long at oracle.com wrote: > I posted two new versions, webrev.1 keeping the Trusted inner class: > > http://cr.openjdk.java.net/~dlong/8158168/webrev.1/ > > and webrev.2 with it removed: > > http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ > > dl > > On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >> >>>> I have the same concern. Can we fix the immediate problem in 9 and >>>> integrate verification logic in 10? >>>> >>> >>> OK, Tobias is suggesting having verification logic only inside the >>> intrinsics. Are you suggesting removing that as well? >> >> Yes and put them back in 10. >> >>> I'm OK with removing all the verification, but that won't reduce the >>> library changes much. I could undo the renaming to Trusted.getChar, >>> but >>> we would still have the bounds checks moved into StringUTF16. >> >> I suggest to go with a point fix for 9: just add missing range checks. > From dean.long at oracle.com Tue Mar 21 07:37:49 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Tue, 21 Mar 2017 00:37:49 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <58D0C3EB.9020208@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <58D0C3EB.9020208@oracle.com> Message-ID: <5a1b6d88-265d-eaa7-1fed-77e804dc79e8@oracle.com> On 3/20/17 11:10 PM, Xueming Shen wrote: > Hi Dean, > > Thanks for doing this. > > Though as I suggested last time personally I prefer to make minimum > change to simply > seal those holes in ASB at this late stage of JDK9. I'm fine with the > webrev.2 and it looks > better and reasonable to pull all UTF16 operations into StringUTF16.java. > > Just for my curiosity, does the change in String#1810 make difference? > Yes, it's in the spirit of the comment "return immediately where possible", and allows me to have 474 assert fromIndex >= 0; in StringUTF16.lastIndexOf(). This is because fromIndex can go negative at String#1808. Thanks for the review. dl > Thanks! > Sherman > > > > On 3/17/17, 3:07 PM, dean.long at oracle.com wrote: >> I posted two new versions, webrev.1 keeping the Trusted inner class: >> >> http://cr.openjdk.java.net/~dlong/8158168/webrev.1/ >> >> and webrev.2 with it removed: >> >> http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ >> >> dl >> >> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>> >>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>> integrate verification logic in 10? >>>>> >>>> >>>> OK, Tobias is suggesting having verification logic only inside the >>>> intrinsics. Are you suggesting removing that as well? >>> >>> Yes and put them back in 10. >>> >>>> I'm OK with removing all the verification, but that won't reduce the >>>> library changes much. I could undo the renaming to >>>> Trusted.getChar, but >>>> we would still have the bounds checks moved into StringUTF16. >>> >>> I suggest to go with a point fix for 9: just add missing range checks. >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.x.ivanov at oracle.com Tue Mar 21 16:37:00 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 21 Mar 2017 19:37:00 +0300 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <3553280e-6955-a574-8154-19cb52409300@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> Message-ID: <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> > and webrev.2 with it removed: > > http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ Thanks, Dean. I started with webrev.2 and tried to minimize the changes. I ended up with the following version: http://cr.openjdk.java.net/~vlivanov/dlong/8158168/webrev.00/ Some clarifications: ============ src/java.base/share/classes/java/lang/String.java: The bounds check is needed only in String.nonSyncContentEquals when it extracts info from AbstractStringBuilder. I don't see how out of bounds access can happen in String.contentEquals: if (n != length()) { return false; } ... for (int i = 0; i < n; i++) { if (StringUTF16.getChar(val, i) != cs.charAt(i)) { ============ src/java.base/share/classes/java/lang/StringConcatHelper.java: I think bounds checks in StringConcatHelper.prepend() are skipped intentionally, since java.lang.invoke.StringConcatFactory constructs method handle chains which already contain bounds checks: array length is precomputed based on argument values and all accesses are guaranteed to be in bounds. ============ src/java.base/share/classes/java/lang/StringUTF16.java: + static void putChar(byte[] val, int index, int c) { + assert index >= 0 && index < length(val) : "Trusted caller missed bounds check"; Unfortunately, asserts can affect inlining decisions (since they increase bytecode size). In order to minimize possible performance impact, I suggest to remove them from the fix targeting 9. ============ private static int indexOfSupplementary(byte[] value, int ch, int fromIndex, int max) { if (Character.isValidCodePoint(ch)) { final char hi = Character.highSurrogate(ch); final char lo = Character.lowSurrogate(ch); + checkBoundsBeginEnd(fromIndex, max, value); The check is redundant here. fromIndex & max are always inbounds by construction: public static int indexOf(byte[] value, int ch, int fromIndex) { int max = value.length >> 1; if (fromIndex < 0) { fromIndex = 0; } else if (fromIndex >= max) { // Note: fromIndex might be near -1>>>1. return -1; } ... return indexOfSupplementary(value, ch, fromIndex, max); ============ I moved bounds checks from StringUTF16.lastIndexOf/indexOf to ABS.indexOf/lastIndexOf. I think it's enough to do range check on ABS.value & ABS.count. After that, all accesses should be inbounds by construction (in String.indexOf/lastIndexOf): jdk/src/java.base/share/classes/java/lang/StringUTF16.java: static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, String tgtStr, int fromIndex) { int rightIndex = srcCount - tgtCount; if (fromIndex > rightIndex) { fromIndex = rightIndex; } if (fromIndex < 0) { return -1; } jdk/src/java.base/share/classes/java/lang/StringUTF16.java: public static int lastIndexOf(byte[] src, int srcCount, byte[] tgt, int tgtCount, int fromIndex) { int min = tgtCount - 1; int i = min + fromIndex; int strLastIndex = tgtCount - 1; char strLastChar = getChar(tgt, strLastIndex); startSearchForLastChar: while (true) { while (i >= min && getChar(src, i) != strLastChar) { There are 2 places: * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound * getChar(src, i); i in [ min; min+fromIndex ] min = tgtCount - 1 rightIndex = srcCount - tgtCount fromIndex <= rightIndex 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) + (srcCount - tgtCount) == srcCount - 1 Hence, should be covered by the check on count & value: public int lastIndexOf(String str, int fromIndex) { + byte[] value = this.value; + int count = this.count; + byte coder = this.coder; + checkIndex(count, value.length >> coder); return String.lastIndexOf(value, coder, count, str, fromIndex); } Best regards, Vladimir Ivanov > On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >> >>>> I have the same concern. Can we fix the immediate problem in 9 and >>>> integrate verification logic in 10? >>>> >>> >>> OK, Tobias is suggesting having verification logic only inside the >>> intrinsics. Are you suggesting removing that as well? >> >> Yes and put them back in 10. >> >>> I'm OK with removing all the verification, but that won't reduce the >>> library changes much. I could undo the renaming to Trusted.getChar, but >>> we would still have the bounds checks moved into StringUTF16. >> >> I suggest to go with a point fix for 9: just add missing range checks. > From volker.simonis at gmail.com Tue Mar 21 16:55:22 2017 From: volker.simonis at gmail.com (Volker Simonis) Date: Tue, 21 Mar 2017 17:55:22 +0100 Subject: RFR (S) 8176580: [ppc, s390] CRC32C: wrong checksum result in some cases In-Reply-To: References: <4D9309E1-AACE-4C22-B567-03C579034BA6@sap.com> <1C84273B-2FA8-4B91-B412-0D2F815C13F2@sap.com> <9bc87d3e-a657-1e10-f688-e51e4e26645d@redhat.com> <69B4433F-72B8-4855-9C42-A89F4AB34F6F@sap.com> Message-ID: Hi Lutz, thanks a lot for updating the tests. I think they look much better now. There's just one more cleanup I'd like to propose. Can you please move the throw right into the check() function. Just make check() return void and throw from it if there's a mismatch between the computed and the expected result. I leave it up to you if you want to pass an extra error string to check() which will be printed in the case of an error. I personally don't think that's necessary as it will be evident from the stack trace which computation failed. Also the try/catch and rethrow in test_multi() isn't necessary. The test can be simply terminated by the initial exception. Thank you and best regards, Volker On Fri, Mar 17, 2017 at 10:03 PM, Schmidt, Lutz wrote: > Hi Volker, > > Thanks a lot for your valuable hints. > > I have worked some time on the Java test files: > TestCRC32.java and TestCRC32C.java are now identical as far as possible. > They now throw an exception, should any error be detected. > The ?reference CRC value? is now used in test_multi() as well. > The extra test runs have been removed again. > The test methodology is fixed: each result is tested against its reference. > The tests now detect the bug introduced with 8175368 and 8175369. > No issue is indicated when testing with 8176580. > I ran jcheck, and to the best of my ability and knowledge, there is no trailing whitespace. > All *.cpp files were left untouched! > > The next iteration of the webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.02/ > > Best regards, > Lutz > > > Dr. Lutz Schmidt | SAP JVM | PI SAP CP Core | T: +49 (6227) 7-42834 > > > > On 16.03.17, 11:28, "Volker Simonis" wrote: > > On Wed, Mar 15, 2017 at 5:55 PM, Schmidt, Lutz wrote: > > > > Hi Andrew, Volker, > > > > What do you think about these test enhancements? > > Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8176580.01/ > > > > Please note: the cpp files in the webrev remained unchanged. > > > > I added some improvements (as I believe) to the TestCRC32(C).java files. > > > > In some more detail: > > The test now calculates a ?reference CRC value?, based on a java implementation of the CRC32 algorithm. This reference value is used to verify all other crc values, in particular during initialization and warmup. Three additional test runs check a non-zero offset with ?Xint, -Xcomp -XX:-TieredCompilation (C2 only), -Xcomp -XX:+TieredCompilation (C1 + C2). > > > > Hi Lutz, > > thanks for updating the tests. I've had a closer look at the tests and > realized that they actually can never fail! The check() routine just > prints an error message but that will not let the test fail. So I > would suggest to throw a runtime exception in the check() routine > after the error message was printed. > > I also suggest to do the check during the normal test execution (i.e. > in test_multi()) so there's no need for extra test runs. > > Finally, the current test methodology in test_multi() is broken: > - it sets the reference by calling CRC from the interpreter which > won't work if the intrinsic is also used in the interpreter. > - it only compares the reference against the last computation of CRC > in the loop which will be the result of the C2 generated code. This > misses errors in C1. > > I suggest to use your new, pure Java implementation for the > computation of the reference result and compare the reference with the > result of calling CRC in every iteration of the loop so we really > check all possibilities from interpreter trough C1 to C2. > > Finally, can you please pay attention to not insert trailing > whitespace (there was some at line 88 in TestCRC32C.java). You can > easily verify this by running jcheck before creating the webrevs. > > Thanks, > Volker > > > > > Best regards, > > Lutz > > > > > > On 15.03.17, 11:50, "Volker Simonis" wrote: > > > > On Tue, Mar 14, 2017 at 7:05 PM, Andrew Haley wrote: > > > On 14/03/17 13:12, Schmidt, Lutz wrote: > > > > > >> Yes, one might think of running a test suite subset multiple times > > >> with different parameters. In this case, -Xint and/or ?Xcomp were > > >> helpful. Forcing tests to run fully interpreted or fully compiled > > >> helps in cases where a certain function, e.g. an intrinsic, is > > >> invoked via distinct code paths. > > > > > > Right, so your patch should include that change to the test suite. > > > > > > > Hi Lutz, > > > > I agree with Andrew. We should really fix the tests such that they > > check the correctness of the intrinsics. > > > > This may be tricky if all three, the interpreter, the client and the > > server compiler use the same intrinsic implementation. You could > > either copy the pure Java implementation into the test so that you can > > compare the results of the intrinsic operation against it or you can > > switch them off in the compilers with > > "-XX:DisableIntrinsic=_updateBytesCRC32C > > -XX:DisableIntrinsics=_updateDirectByteBufferCRC32C" and compare the > > results. Not sure which solution is more practical, but I would be > > really scared if we wouldn't have these test. > > > > Regards, > > Volker > > > > > Andrew. > > > > > > > > > From dean.long at oracle.com Tue Mar 21 18:47:35 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Tue, 21 Mar 2017 11:47:35 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> Message-ID: On 3/21/17 9:37 AM, Vladimir Ivanov wrote: >> and webrev.2 with it removed: >> >> http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ > > Thanks, Dean. I started with webrev.2 and tried to minimize the > changes. I ended up with the following version: > > http://cr.openjdk.java.net/~vlivanov/dlong/8158168/webrev.00/ > Thanks. The reason I didn't go with that approach from the beginning is because I couldn't convince myself that I could find all the missing bounds checks, and I wanted an interface to test against. With the bounds checks in AbstractStringBuilder, it is very hard to test all the possible race conditions, because some of the race conditions only happen when an ASB field changes half-way through the method. > Some clarifications: > > ============ > src/java.base/share/classes/java/lang/String.java: > > The bounds check is needed only in String.nonSyncContentEquals when it > extracts info from AbstractStringBuilder. I don't see how out of > bounds access can happen in String.contentEquals: > if (n != length()) { > return false; > } > ... > for (int i = 0; i < n; i++) { > if (StringUTF16.getChar(val, i) != cs.charAt(i)) { > OK. > ============ > src/java.base/share/classes/java/lang/StringConcatHelper.java: > > I think bounds checks in StringConcatHelper.prepend() are skipped > intentionally, since java.lang.invoke.StringConcatFactory constructs > method handle chains which already contain bounds checks: array length > is precomputed based on argument values and all accesses are > guaranteed to be in bounds. > This is calling the trusted version of getChars() with no bounds checks. It was a little more obvious when I had the Trusted inner class. > ============ > src/java.base/share/classes/java/lang/StringUTF16.java: > > + static void putChar(byte[] val, int index, int c) { > + assert index >= 0 && index < length(val) : "Trusted caller > missed bounds check"; > > Unfortunately, asserts can affect inlining decisions (since they > increase bytecode size). In order to minimize possible performance > impact, I suggest to remove them from the fix targeting 9. > Sure. > ============ > private static int indexOfSupplementary(byte[] value, int ch, int > fromIndex, int max) { > if (Character.isValidCodePoint(ch)) { > final char hi = Character.highSurrogate(ch); > final char lo = Character.lowSurrogate(ch); > + checkBoundsBeginEnd(fromIndex, max, value); > > The check is redundant here. fromIndex & max are always inbounds by > construction: > > public static int indexOf(byte[] value, int ch, int fromIndex) { > int max = value.length >> 1; > if (fromIndex < 0) { > fromIndex = 0; > } else if (fromIndex >= max) { > // Note: fromIndex might be near -1>>>1. > return -1; > } > ... > return indexOfSupplementary(value, ch, fromIndex, max); > OK. > ============ > I moved bounds checks from StringUTF16.lastIndexOf/indexOf to > ABS.indexOf/lastIndexOf. I think it's enough to do range check on > ABS.value & ABS.count. After that, all accesses should be inbounds by > construction (in String.indexOf/lastIndexOf): > > jdk/src/java.base/share/classes/java/lang/StringUTF16.java: > static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, > String tgtStr, int fromIndex) { > > int rightIndex = srcCount - tgtCount; > if (fromIndex > rightIndex) { > fromIndex = rightIndex; > } > if (fromIndex < 0) { > return -1; > } > > jdk/src/java.base/share/classes/java/lang/StringUTF16.java: > public static int lastIndexOf(byte[] src, int srcCount, > byte[] tgt, int tgtCount, int > fromIndex) { > int min = tgtCount - 1; > int i = min + fromIndex; > int strLastIndex = tgtCount - 1; > char strLastChar = getChar(tgt, strLastIndex); > > startSearchForLastChar: > while (true) { > while (i >= min && getChar(src, i) != strLastChar) { > > There are 2 places: > * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound > > * getChar(src, i); i in [ min; min+fromIndex ] > min = tgtCount - 1 > rightIndex = srcCount - tgtCount > fromIndex <= rightIndex > > 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) > + (srcCount - tgtCount) == srcCount - 1 > > Hence, should be covered by the check on count & value: > public int lastIndexOf(String str, int fromIndex) { > + byte[] value = this.value; > + int count = this.count; > + byte coder = this.coder; > + checkIndex(count, value.length >> coder); > return String.lastIndexOf(value, coder, count, str, fromIndex); > } > OK, I will go with your version if it's OK with Sherman. dl > Best regards, > Vladimir Ivanov > >> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>> >>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>> integrate verification logic in 10? >>>>> >>>> >>>> OK, Tobias is suggesting having verification logic only inside the >>>> intrinsics. Are you suggesting removing that as well? >>> >>> Yes and put them back in 10. >>> >>>> I'm OK with removing all the verification, but that won't reduce the >>>> library changes much. I could undo the renaming to >>>> Trusted.getChar, but >>>> we would still have the bounds checks moved into StringUTF16. >>> >>> I suggest to go with a point fix for 9: just add missing range checks. >> From igor.veresov at oracle.com Tue Mar 21 18:40:10 2017 From: igor.veresov at oracle.com (Igor Veresov) Date: Tue, 21 Mar 2017 11:40:10 -0700 Subject: RFR(XXXL): 8177046 Update Graal Message-ID: <122A648A-11A6-4264-ABC1-31D4B68308CA@oracle.com> This is Graal refresh in JDK10. It required some changes to jaotc mostly related how Graal options are now handled. It all seems to work - aot, jprt, rbt hs-tier0-comp. There is one failure in rbt which occurs when Graal is used as a JIT. But I think it can be addressed later and fixed in the next refresh (if there are no objections). Webrevs: http://cr.openjdk.java.net/~iveresov/8177046/webrev-jdk.00/ http://cr.openjdk.java.net/~iveresov/8177046/webrev-hotspot.00/ Changes between JDK-8166417 and JDK-8177046 : commit 532c57329aa3a453ff4d2fefeb6fddc3cc03b8aa Merge: 7347014 bd02b2e Author: Thomas W?rthinger Date: Fri Mar 17 16:50:06 2017 -0700 [GR-3285] Fixes to support JDK AOT use cases correctly. commit 7347014a9ca6751f9f7c27436bdad8d50e7ea168 Merge: f06c39e 6d22782 Author: Doug Simon Date: Fri Mar 17 16:21:09 2017 -0700 [GR-3277] Gate on jdk9-ea+161. commit f06c39e247e74ec36d88af1552ee5a19d36a7bb0 Merge: 099df9f 52727fa Author: Thomas W?rthinger Date: Fri Mar 17 15:35:44 2017 -0700 [GR-3275] Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. commit bd02b2edb414a309e4ba68261c5f936ef0e0a40d Author: Igor Veresov Date: Fri Mar 17 12:16:55 2017 -0700 Fix a few things to make JDK AOT work agian commit 52727fadfae472ac361c8af02e015eed9730d7dd Author: Thomas W?rthinger Date: Fri Mar 17 15:43:05 2017 +0100 Rewrite recursive algorithm in PropagateDeoptimizeProbabilityPhase to be iterative. commit 145bebb7ebceea51c375ed715ad7dd82f002e6d4 Author: Thomas W?rthinger Date: Fri Mar 17 15:22:36 2017 +0100 Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. commit 099df9ff553086d10a4369f692559e7035fc24bf Merge: 31e5340 5dfcdf0 Author: Thomas W?rthinger Date: Fri Mar 17 11:01:30 2017 -0700 [GR-3274] Add additional canonicalizations to the multiplication node for the case where one operand is constant. commit 6d227828278a32f78defcb78fcc58bdd19b88066 Author: Doug Simon Date: Fri Mar 17 18:31:37 2017 +0100 gate on jdk9-ea+161 commit 5dfcdf0ae1902818cb681da9f2b81b5fedb5e50f Author: Thomas W?rthinger Date: Fri Mar 17 16:48:32 2017 +0100 Add additional canonicalizations to the multiplication node for the case where one operand is constant. commit 31e5340042fc8bb9fb22b5704da7189e3e05e9e8 Merge: eb57bf9 cc28520 Author: Doug Simon Date: Fri Mar 17 07:58:15 2017 -0700 [GR-3265] Support jdk9-ea+161. commit cc2852014b474b44e4f5cd685885d347c644701f Author: Doug Simon Date: Fri Mar 17 01:11:00 2017 +0100 support jdk9-ea+161 commit eb57bf9a2e3ec66dc82f8ec6ded118f596535632 Merge: 1f9dd5e 3b24c57 Author: Andreas Woess Date: Fri Mar 17 06:06:28 2017 -0700 [GR-3256] Fix TraceTruffleAssumptions stack trace output. commit 1f9dd5e79298f1a36d1bed99f3d24017052f5f85 Merge: ef5624c aa243ee Author: Doug Simon Date: Fri Mar 17 03:50:27 2017 -0700 [GR-3267] JMH intrinsics need to be optional. commit aa243ee242d6e6c1fdd8a615407051b5609bcd00 Author: Doug Simon Date: Fri Mar 17 10:24:22 2017 +0100 JMH intrinsics need to be optional commit ef5624c9839fe9258dbc858b759a7821187d4a89 Merge: 6a44fba f741158 Author: Thomas W?rthinger Date: Thu Mar 16 07:39:13 2017 -0700 [GR-3149] Fix an issue in the conditional elimination that could lead to pi nodes for phis picking up wrong guards. commit f7411584e6bb957a83b47b4591b1e9163160c654 Author: Thomas W?rthinger Date: Thu Mar 16 15:06:53 2017 +0100 Fix an issue in the new conditional elimination that could lead to pi nodes for phis picking up wrong guards if branches are killed while preparing the info elements. commit 3b24c57e9d227d390b1b15773458c98ce27db065 Author: Andreas Woess Date: Thu Mar 16 13:48:52 2017 +0100 Enable node source positions for Truffle compilations if shouldDebugNonSafepoints() or TruffleEnableInfopoints=true commit d214ec43996729def84313aa7316d342e5cc63ce Author: Andreas Woess Date: Wed Mar 15 21:39:09 2017 +0100 Remove leftover debug code commit 829ceef47a7b14fd13e291d5dd1228d7c1990990 Author: Andreas Woess Date: Wed Mar 15 18:19:23 2017 +0100 Cleanup: no need to subclass CachingPEGraphDecoder commit 001322b49be3822638d8a9e1652692dedaa57784 Author: Andreas Woess Date: Wed Mar 15 19:17:39 2017 +0100 [GR-3256] Fix TraceTruffleAssumptions stack trace output. commit 6a44fba8e8004fe12934dc31e4f5dbb8dc6b26b3 Merge: 2cdb24c 1fd6484 Author: Doug Simon Date: Wed Mar 15 17:38:06 2017 -0700 [GR-3226] Add ZipPy based OOPSLA14 paper. commit 2cdb24c193d7f491dbd2dcbb0ae115bdcdc8c689 Merge: 1879aca 7afd70a Author: Doug Simon Date: Wed Mar 15 05:45:42 2017 -0700 [GR-3246] Handle exceptions while opening a Debug scope better. commit 7afd70a750ffbe2f2df2885c837f2e5d94609264 Author: Doug Simon Date: Wed Mar 15 12:53:25 2017 +0100 better reporting of exception when opening a Debug scope commit 1879acafd6342623873b2cc69132960abb4e327e Merge: 2e50f8e e3e8dfe Author: Thomas W?rthinger Date: Wed Mar 15 04:17:21 2017 -0700 [GR-3245] Improve canonicalizations of NarrowNode and ZeroExtendNode. Add additional canonicalization after fixing reads. commit e3e8dfeb54443fcc0f5772f3273cf86b899e3365 Author: Thomas W?rthinger Date: Wed Mar 15 11:22:45 2017 +0100 Use result bits instead of stamp in ZeroExtendNode. commit 1fc9abbc64212df38add4df80bd45bead25451a8 Author: Thomas W?rthinger Date: Tue Mar 14 19:20:24 2017 +0100 Also clear last location access in fix reads phase. commit 9ecb01147f54dd7808dcbf0ee0147427e7f7b04d Author: Thomas W?rthinger Date: Tue Mar 14 19:13:12 2017 +0100 Make sure short circuit or nodes are not introduced by canonicalization after logic expansion phase was run. commit 9aa8fd04caec7458d78b5fb14be771a7464aa9ca Author: Thomas W?rthinger Date: Tue Mar 14 16:26:36 2017 +0100 Remove memory phis during fix reads phase. commit 7ae30083e7e8f8d6ab163e2caf5da731032c125c Author: Thomas W?rthinger Date: Tue Mar 14 16:26:09 2017 +0100 Run a canonicalizer without GVN after fixing reads and removing pi nodes. commit 9f496abc97c020e406f2073d1ff0d8bd4730224a Author: Thomas W?rthinger Date: Tue Mar 14 16:25:48 2017 +0100 Add ability to disable GVN in canonicalizer. commit 409d5d42f9929a4790a6d0ec30c7b8188a61e660 Author: Thomas W?rthinger Date: Tue Mar 14 15:51:56 2017 +0100 Improved canonicalizations for NarrowNode and ZeroExtendNode. commit 2e50f8edb5a3f33f772510b1eb0480a28eac7db2 Merge: 8ffb5cf cf1dd8f Author: Thomas W?rthinger Date: Wed Mar 15 03:11:00 2017 -0700 [GR-3244] Load all non simm13 constants for OP3 ops. commit cf1dd8ff253c115efba7e6ec5ed9496fa45aad8e Author: Stefan Anzinger Date: Wed Mar 15 09:22:01 2017 +0000 [GR-3244] Load all non simm13 constants for OP3 ops. commit 8ffb5cf6ff82a5bf33f265da780c3e4a322f2127 Merge: 4182260 92abdc9 Author: Doug Simon Date: Tue Mar 14 17:59:03 2017 -0700 [GR-3243] Make check for option descriptor existence overridable. commit 92abdc9d0a82db0b2679d92ac834e8cd70b8d9ea Author: Doug Simon Date: Wed Mar 15 00:20:06 2017 +0100 allow option descriptor existence check to be overridden commit 418226004e091c7b511c97ee62467c138bd9bf0f Merge: ff3feb9 c2a2447 Author: Doug Simon Date: Tue Mar 14 15:16:04 2017 -0700 [GR-3212] [GR-3057] Replace PiNode+NodeIntrinsicStamp with placeholder node. commit c2a2447ad86f404b66e2c102e375cfcb00ab34aa Author: Doug Simon Date: Mon Mar 13 17:27:45 2017 +0100 use placeholders for PiNodes that get their stamp from a snippet replacee commit ff3feb9b4d246779f37d551522782c9ef66243dd Merge: 8d3e056 853af95 Author: Doug Simon Date: Tue Mar 14 14:45:33 2017 -0700 [GR-3241] JDK9 aware mechanism for options loading must be universally applied. commit 853af9549616df9829af52860c8a2ee9bc40150d Author: Doug Simon Date: Tue Mar 14 21:56:53 2017 +0100 loading options must always be jdk9-modules aware commit 8d3e05605e59da9c4d576895c81ae04b4250efe8 Merge: 2cfd95a 3dac632 Author: Doug Simon Date: Tue Mar 14 14:13:36 2017 -0700 [GR-3240] Remove static field Stub.stubs. commit 1fd64845a4f1dc9b17d75edf045d4e88464d43f6 Author: Doug Simon Date: Tue Mar 14 22:11:19 2017 +0100 add "Accelerating iterators in optimizing AST interpreters" paper (OOPSLA14) commit 3dac632a0a789232cd405a622ef973ed3d2bc816 Author: Doug Simon Date: Tue Mar 14 21:04:19 2017 +0100 replace Stub.getStubs() with HotSpotForeignCallProvider.getStubs() commit 2cfd95a6a5ab2cd0785c67a1fe5264a5c3fdb42d Merge: 06fbf00 492bf4f Author: Thomas W?rthinger Date: Tue Mar 14 12:44:05 2017 -0700 [GR-3238] Improve killCFG to reliably delete nodes. commit 492bf4f48c3a7e8f5bfd0060b0ca681cbb0ddd5b Author: Gilles Duboscq Date: Thu Mar 9 17:42:44 2017 +0100 [GR-3195] Fix killCFG leaving 'unsafe' inputs Avoid using null for the input of Phi nodes, use Poison instead. commit 06fbf000db55cea8c15e0099415010adcb4984b0 Merge: 21ec724 0da5287 Author: Thomas W?rthinger Date: Tue Mar 14 06:53:40 2017 -0700 [GR-3227] Simplify and improve address lowering to swap index and base when appropriate. commit 0da528791a95721947a41ec5a33e65726ae443b8 Author: Thomas W?rthinger Date: Tue Mar 14 14:03:05 2017 +0100 Simplify and improve address lowering to swap index and base when appropriate. commit 21ec724defa8a0f08bbe5a512f45d0b8ed5146ad Merge: 7a12664 8fdd855 Author: Doug Simon Date: Tue Mar 14 05:47:15 2017 -0700 [GR-3222] Try detect missing @Option annotation processor. commit 7a1266444ead236c3dbb727b7faf39e3436f6d6c Merge: e78391d 6d84784 Author: Thomas W?rthinger Date: Tue Mar 14 04:26:27 2017 -0700 [GR-3225] Recognize implicit null checks as part of trapping null checks phase. commit 6d84784cb648102c191a1712e3dbfaad5a69f09e Author: Thomas W?rthinger Date: Tue Mar 14 01:44:07 2017 +0100 Recognize implicit null checks as part of trapping null checks phase. commit 8fdd8558be437b463cee5f04565eff2319530744 Author: Doug Simon Date: Mon Mar 13 23:38:55 2017 +0100 try detect missing @Option annotation processor dependency commit e78391dedad2787f274f28f156279472deb9aa45 Merge: bd6f7bf 89e208f Author: Thomas W?rthinger Date: Mon Mar 13 12:59:01 2017 -0700 [GR-3218] Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. commit 89e208f171d14306d1d6746e208ccb049e1df4be Author: Thomas W?rthinger Date: Mon Mar 13 20:32:02 2017 +0100 Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. commit bd6f7bffb0020b21a0d7b9628bd21bf03cd9b2bc Merge: 95ddee1 6f36b03 Author: Thomas W?rthinger Date: Mon Mar 13 10:48:35 2017 -0700 [GR-3217] Improve code for pointer compression. commit 6f36b03649c4012fbb2ed8656db4b01e451eb9fe Author: Thomas W?rthinger Date: Mon Mar 13 17:33:02 2017 +0100 Introduce mayNullCheckSkipConversion method in ConvertNode interface. Move address lowering after fixed read phase. commit 74fe0007e19dced56b07155b3ee5e95c7c0ce67e Author: Thomas W?rthinger Date: Mon Mar 13 15:16:07 2017 +0100 Add option to avoid barrier on unsafe stores. Rename unsafe store and load nodes to "raw" unsafe store and load nodes. commit 4a53d32d315925b766337f030cdaaf52ff0686be Author: Thomas W?rthinger Date: Thu Mar 9 14:18:15 2017 +0100 Fix write barrier verification phase. commit 9f67aa8d206369fba444345e4cc16389af8ebfd1 Author: Thomas W?rthinger Date: Wed Mar 8 17:56:31 2017 +0100 Adjust compressed null check test to not modify the graph and for the fact that this canonicalization now occurs in the IsNullNode. commit 45523aac92e8fcf2f4cb6725a70952ee0caea510 Author: Thomas W?rthinger Date: Wed Mar 8 15:32:14 2017 +0100 Add skip through lossless convert functionality to IsNullNode. commit 5ca64dd073772f43f10173cb7cef400823624dd9 Author: Thomas W?rthinger Date: Sun Feb 26 21:28:14 2017 +0100 Introduce init location and use this location to decide whether a write is an initialization write or not. commit 19ce207634905a612f94a441bd3e4881c9699995 Author: Thomas W?rthinger Date: Sun Feb 26 20:27:54 2017 +0100 Simplify ReadNode and WriteNode constructors. commit 05a3d7d8e53d16ec243d364ef24b6ef492b4cf0f Author: Thomas W?rthinger Date: Sun Feb 26 18:28:18 2017 +0100 Remove DirectObjectStoreNode and replace usages with UnsafeStoreNode. commit 60ba844f0bb94bbc9a0e4bdad2112cbc92fc72b4 Author: Thomas W?rthinger Date: Sun Feb 26 17:34:29 2017 +0100 Move CompressEncoding from HotSpot-specific to general part. Remove unused alignment field. commit 95ddee1ea392e4454b83264e4c0ef728821d0fad Merge: 64194d0 b560415 Author: Gilles Duboscq Date: Mon Mar 13 08:26:22 2017 -0700 [GR-2555] Fold `x - 1 |<| x || x == 0`. commit b56041582a6bbc19d871c5227b7fd6eff89f320b Author: Gilles Duboscq Date: Mon Mar 13 15:03:00 2017 +0100 ZeroExtend: avoid problems with empty stamps commit 64194d0b9be6e22ef948abaae3300b8051844407 Merge: 7281bc5 284e39f Author: Christian Humer Date: Mon Mar 13 05:59:25 2017 -0700 [GR-3182] Do not reuse frame descriptor for OSR root nodes. commit 42eb5d00d9abc466c8faa9f4bde5551a0807aa3c Author: Gilles Duboscq Date: Mon Feb 27 16:29:39 2017 +0100 Add NumUtil.sameSign and IntegerStamp.sameSignBounds commit 3dee10a429eef95104c192473a89909ef2d61f5f Author: Gilles Duboscq Date: Fri Feb 24 17:45:26 2017 +0100 Make sure splitIfAtPhi is not appliest before FSA commit 2163d91dac75656609a5b160f69e58db4ac9cbfd Author: Gilles Duboscq Date: Fri Feb 24 17:43:19 2017 +0100 Add more tests commit 1d453dfc3b7df282a842e1cb01d14d52e9d6ba80 Author: Gilles Duboscq Date: Fri Feb 24 17:41:18 2017 +0100 Canonicalize NormalizeCompare patterns commit e196bac444f1e95c018d0909af12d9a049b4be24 Author: Gilles Duboscq Date: Tue Mar 7 07:57:42 2017 -0800 Canonicalize `a + MIN < b + MIN` to `a |<| b` commit 2ef1eb30f194d140bbc762161dc5664c861f1c62 Author: Gilles Duboscq Date: Fri Feb 24 18:10:40 2017 +0100 Canonicalize x + c < x commit 85cc9ffe2a6b6e2d64c2a36a0e2ee9ab0b0a491b Author: Gilles Duboscq Date: Fri Feb 24 17:35:33 2017 +0100 Canonicalize x + c1 == c2 commit 4567b9e3602866ed367a8eea12959d7ba4d84f9a Author: Gilles Duboscq Date: Fri Jan 27 18:33:32 2017 +0100 [GR-2555] Fold `x - 1 |<| x || x == 0`. Added the `y + c |<| y` and `x |<| x + c` patterns for conditional elimination. Added `StampInverter`, make `IntegerConvert` implement it and use it in the new conditional elimination. This allows it to get a stamp for x when it has one for zeroExtand(x). commit 878a6d72927e4ca53f4ed028badde8be24e905a5 Author: Gilles Duboscq Date: Tue Feb 14 15:46:17 2017 +0100 Move NumUtil to core.common Also remove common and merge it into core.common commit 7281bc5cc25cb83e4ec7414b4804d33dab44384c Merge: a0848f5 a8a5023 Author: Doug Simon Date: Fri Mar 10 12:42:32 2017 -0800 [GR-3196] Remove obsolete ImmutableCode functionality. commit a8a50239411881f0f9f7a0fa215d7c38447ffdf1 Author: Doug Simon Date: Fri Mar 10 15:42:29 2017 +0100 removed obsolete ImmutableCode logic commit a0848f59192d1a60d1b8b7842b9afd7a13cd9762 Merge: 6453e48 7eceda8 Author: Tom Rodriguez Date: Fri Mar 10 08:55:24 2017 -0800 [GR-3179] Fixed register usage for string indexof assembly. commit 6453e489e796f009e1a4bcfec15f47aa393ed1aa Merge: bd0c1e6 27c119f Author: Vojin Jovanovic Date: Fri Mar 10 08:44:20 2017 -0800 [GR-3200] Update intellij instructions. commit 27c119fa93233a9662800b8ba57b8740e4d1e2b3 Author: Vojin Jovanovic Date: Fri Mar 10 16:22:49 2017 +0100 [doc] update intellij instructions commit 08c8f8ac24c366f70be86a113416dede8597e282 Author: Doug Simon Date: Fri Mar 10 12:43:35 2017 +0100 options should be taken from graph if possible commit bd0c1e6c2c405d2735f52d7459a377ba8ed00354 Merge: 9dfc7ba ec0bd51 Author: Doug Simon Date: Fri Mar 10 01:50:19 2017 -0800 [GR-2577] Make it possible to build Graal using only jdk9. commit ec0bd511c177a86742a9c9ea1e48b40ecb15817f Author: Doug Simon Date: Thu Mar 9 22:54:20 2017 +0100 update mx version commit 9dfc7baa47e299e224dda6d98963ad4491eda5ac Merge: 1bc5b55 e4baf69 Author: Thomas W?rthinger Date: Fri Mar 10 01:18:37 2017 -0800 [GR-3188] Add receiver null check for Truffle load nodes. commit 1bc5b55d432067f53b2c3ab2ae3769c773c740db Merge: 628fd73 ac4d892 Author: Aleksandar Prokopec Date: Thu Mar 9 14:30:22 2017 -0800 [GR-3186] Add the unfreeze method to Graph. commit e4baf69da8e898edfc4aeff245b38503fae9e123 Author: Thomas W?rthinger Date: Thu Mar 9 23:11:49 2017 +0100 Add receiver null check for Truffle load nodes. commit 628fd73bc0eabd520776b6ff70e594b628824779 Merge: 999da54 653fb60 Author: Josef Eisl Date: Thu Mar 9 14:07:54 2017 -0800 [GR-3175] Run DaCapo style benchmarks on both nodes in parallel. commit 7eceda86f64250769900d6822e2b003cc3f29f50 Author: Tom Rodriguez Date: Wed Mar 8 16:33:20 2017 -0800 Fixed register usage for string indexof assembly commit 653fb601e3dec18a4bee56ca80a662a036f5d982 Author: Josef Eisl Date: Thu Mar 9 13:21:39 2017 +0100 [ci] increase tmpfs for x32 to 25g commit a664309dd7012fb10443354112153ab10d1d395a Author: Josef Eisl Date: Thu Mar 9 11:37:26 2017 +0100 [ci] use curly braces for environment variables commit a37e70600b9bbb0f584aaacbc242a15e31a38cf6 Author: Josef Eisl Date: Thu Mar 9 10:54:47 2017 +0100 [ci] rename results file environment variables commit 15a25de31654dfddb9741ff929107a55198d19f6 Author: Josef Eisl Date: Thu Feb 23 16:54:44 2017 +0100 [ci] run DaCapo-style benchmarks in parallel on multi-node machines commit ac4d892824d40e9eec14d09bdd266ff127b0e8f4 Author: Aleksandar Prokopec Date: Thu Mar 9 14:02:05 2017 +0100 [feature] Add temporary graph freeze state, and allow unfreezing a graph. commit 3df3392bb818125288ab7f5a373e56061e77caaa Author: Doug Simon Date: Thu Mar 9 16:41:11 2017 +0100 IGV doesn't yet work with JDK 9 commit 999da5413324bfb8ed4e80ee432580a18f299928 Merge: feac9f6 21a99d7 Author: Thomas W?rthinger Date: Thu Mar 9 05:09:49 2017 -0800 [GR-3072] Fix non-null stamp machinery for other non-object pointers. commit 2d278ebaced888850305403c9e231eeb22ce8c09 Author: Doug Simon Date: Thu Mar 9 13:36:39 2017 +0100 made String.indexOf intrinsic optional commit 9eea440de6c54932fa07b4035931013aea20bc76 Author: Gilles Duboscq Date: Wed Feb 1 15:34:41 2017 +0100 make it possible to build against 9 alone Use newer mx Replace uses of internal ASM in test with external ASM jars Made some substitutions optional commit 284e39fda0613ec9e0f5f4bfcf44e0b95a4b6838 Author: Lukas Stadler Date: Thu Mar 9 12:02:55 2017 +0100 fix warning problem commit 5d5de01bec53de85de0142846db01f4cdea24a35 Author: Lukas Stadler Date: Thu Mar 9 11:53:04 2017 +0100 do not reuse frame descriptor for OSR root nodes commit feac9f656ade524ae81808ee81f47cb286f6653e Merge: 3cead4d 1ed06ff Author: Thomas W?rthinger Date: Thu Mar 9 04:00:21 2017 -0800 [GR-3077] The isSingleValueUser method returns wrong answer for guards. commit 3cead4d7405b6d55d1a7e6162c1295c987d5197d Merge: e9098f7 623d6f4 Author: Thomas W?rthinger Date: Thu Mar 9 03:20:41 2017 -0800 [GR-3184] Improve out of loop schedule to take frequency of latest block and block before the loop header into account. commit e9098f79a7c052ec6efe024cf1a3d76abf198301 Merge: 4edf987 d3c879f Author: Josef Eisl Date: Thu Mar 9 03:18:16 2017 -0800 [GR-3180] Move dump-on-error flags to gate command. commit 4edf987dc522a6147117a504c328dec3aca3fd52 Merge: 78521e4 681750b Author: Stefan Anzinger Date: Thu Mar 9 03:17:11 2017 -0800 [GR-2191] Extend inliner to start with a fixed list of invocations. commit 78521e45d34bac7ab4beb745c8ab9ec555d64d5a Merge: 2f7198e 9df9b45 Author: Lukas Stadler Date: Thu Mar 9 02:17:46 2017 -0800 [GR-3115] Inline methods with substitutions during partial evaluation. commit d3c879f84babaa6daa6a6d10c9d65c5bd4a86d33 Author: Josef Eisl Date: Thu Mar 9 10:59:02 2017 +0100 [ci] add DumpOnError and PrintGraphFile flags to the gate command commit 3bc433871313065fc8e3238e6359e6759baf6ecd Author: Josef Eisl Date: Thu Mar 9 10:56:37 2017 +0100 Revert "[feature] Capture bgv files on error." This reverts commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39. commit 2f7198e7f388e0d2f703a8de23c13880358c000f Merge: fde4a7c f61e0db Author: Codrut Stancu Date: Wed Mar 8 15:05:04 2017 -0800 [GR-3157] Trace constant roots. commit 623d6f44695a5670b1ee04d58f75b7894a763c3e Author: Thomas W?rthinger Date: Wed Mar 8 21:56:49 2017 +0100 Always move out of loops when value proxies are in the graph. commit 38468d9cf613d4f59a3f5706535b44f8b4f5993c Author: Thomas W?rthinger Date: Wed Mar 8 17:55:56 2017 +0100 Modify memory schedule test to include loop frequencies. commit f5353a213553b16e07a8ba4a5a54aba6e050ce5e Author: Thomas W?rthinger Date: Wed Mar 8 17:34:07 2017 +0100 Improve out of loop schedule to take frequency of latest block and block before the loop header into account. commit f61e0db76eb16726ffd2179ae2c2ee44cc075c0e Author: Codrut Stancu Date: Fri Mar 3 19:51:46 2017 -0800 Trace constant roots WIP. commit fde4a7c26c2d8d5323c51bc56e4bdc3392e73035 Merge: 8b69e82 e85077e Author: Josef Eisl Date: Wed Mar 8 10:06:13 2017 -0800 [GR-3039] Remove usage of AbstractBlockEndOp. commit e85077e645e4556c5256a545f22f9d99038ac38d Author: Josef Eisl Date: Fri Feb 24 22:09:18 2017 +0100 [fix] TraceRA: remove AbstractBlockEndOp commit 85f497f35b6bd544728f1057ad577a76add79e2a Author: Josef Eisl Date: Tue Feb 28 17:43:35 2017 +0100 [refactor] move outgoingValues to JumpOp (needed for phis only) commit 69af182ef55df980a8637763224a09ed40809eab Author: Josef Eisl Date: Tue Feb 28 17:50:37 2017 +0100 [fix] remove outgoing from BlockEndOp commit 19a7d71645326678af072f00faed7bcc6175cf1b Author: Josef Eisl Date: Wed Mar 8 09:49:11 2017 +0100 [fix] Remove addOutgoingValues ad forEachOutgoingValue from BlockEndOp commit 681750bf03f5f9bc9c63dd8d6d8d537ae1681ea3 Author: Stefan Anzinger Date: Fri Feb 24 13:26:42 2017 +0000 [feature] Extend inliner to start with a fixed list of invocations. commit 8b69e82739f0f8696b7e61cb2d0d10fa338d68a6 Merge: 6e73e85 d9c4c19 Author: Aleksandar Prokopec Date: Wed Mar 8 04:39:09 2017 -0800 [GR-3160] Always capture bgv files when Graal builds fail. commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39 Author: Aleksandar Prokopec Date: Wed Mar 8 11:15:56 2017 +0100 [feature] Capture bgv files on error. commit 6e73e855621572d2df86d9aa0aae9c7eab158b2d Merge: abf7690 3de73d2 Author: Roland Schatz Date: Wed Mar 8 03:12:02 2017 -0800 [GR-3161] Update truffle import. commit 3de73d21cc5e946f80366c3b330737ea967b94ff Author: Roland Schatz Date: Wed Mar 8 11:30:44 2017 +0100 Update truffle import. commit abf76900647664115b38cc46e4fcfd0a76c9f94e Merge: b3b9eb7 1e2e897 Author: Thomas W?rthinger Date: Wed Mar 8 01:28:39 2017 -0800 [GR-3080] Fix issues with pi rewiring and picking up wrong conditions in the conditional elimination. commit 1e2e89737fa43878186d94ae36cb5aacdb7dc7d9 Author: Thomas W?rthinger Date: Tue Mar 7 22:38:26 2017 +0100 Add documentation on the methods that pick up stamps and change getSafeStamp for the primary value. commit a9d7655bbc623e730291b95dc95b35a1376da90c Author: Thomas W?rthinger Date: Tue Mar 7 21:23:39 2017 +0100 Adding back AndNode second level structural conditional elimination. commit 42fe25cbfa75fd055cdc548bab626e6868d89560 Author: Thomas W?rthinger Date: Tue Mar 7 16:12:29 2017 +0100 Only look up info elements in own pi chain. commit 6f310e81d7733b91394fae785545828637aaf5ed Author: Thomas W?rthinger Date: Mon Mar 6 20:58:02 2017 +0100 Make getSafeStamp more aggressive. commit 875e510f8197bbe15de0f3b0af4707c76007f907 Author: Thomas W?rthinger Date: Mon Mar 6 19:46:50 2017 +0100 Do not rewire pis in new conditional elimination. Use safe stamps on both sides of binary operations. commit b3b9eb76f239a1d01cb2d2329c3c8d964c95f288 Merge: 553d83c b7fb999 Author: Thomas W?rthinger Date: Wed Mar 8 00:34:51 2017 -0800 [GR-3159] Make FixReadsPhase extensible to allow changing scheduling strategy. commit b7fb9991b3be11483e8318c2409eacca80535f92 Author: Thomas W?rthinger Date: Tue Mar 7 21:58:09 2017 +0100 Make FixReadsPhase extensible to allow changing scheduling strategy. commit 553d83c86231497effd130c5bd4e7ba92a04f37f Merge: 950f4d0 d11b37d Author: Aleksandar Prokopec Date: Tue Mar 7 07:31:02 2017 -0800 [GR-3143] Do profiling on @TruffleBoundary and not @TruffleCallBoundary. commit d11b37df3b28ab01cb294614f1b01ab61f170f88 Author: Aleksandar Prokopec Date: Tue Mar 7 12:34:07 2017 +0100 [fix] Instrument TruffleBoundary calls instead of TruffleCallBoundary calls. commit 950f4d030178eef043fb2ee2b19c31612790e774 Merge: 82d2de2 5122025 Author: Josef Eisl Date: Tue Mar 7 05:58:25 2017 -0800 [GR-3039] TraceRA: no longer store global liveness information in LIR. commit 512202516f20a4886f259eac8b24260bd55421ed Author: Josef Eisl Date: Wed Mar 1 15:01:46 2017 +0100 [refactor] TraceRA[GLI]: rename addIncoming/addOutgoing to setIncoming/setOutgoing commit d73a39e114c7c8903ef195e8cc62f37cacea1052 Author: Josef Eisl Date: Wed Mar 1 13:23:31 2017 +0100 [refactor] TraceRA[BU]: inline PhiVisitor commit 4367403e3926209294ee809763f6025b092ef073 Author: Josef Eisl Date: Sat Feb 25 15:16:32 2017 +0100 [feature] TraceRA[LS]: only materialize the locations array if there is an inter-trace edge commit 4e92fde8266aeb98b24ce53d13c4c2a16447a32e Author: Josef Eisl Date: Tue Feb 28 11:26:36 2017 +0100 [fix] TraceRA[LS]: do not insert spill moves at block begin commit 3047f501f54a0a7b6af351a78386496a77726677 Author: Josef Eisl Date: Sat Feb 25 14:09:09 2017 +0100 [feature] TraceRA[LS]: set inter-trace hints only if there is none commit 2beb022cc6fd0f90d338ffb8af299e6874eabaeb Author: Josef Eisl Date: Sat Feb 25 14:02:44 2017 +0100 [fix] TraceRA[LS]: set hints for phis again commit da6bbc89aa9edfa40a815f5923b3de65b699ddda Author: Josef Eisl Date: Fri Feb 24 23:32:38 2017 +0100 [refactor] TraceRA: remove remaining SSI references commit 376c4318fd2d26d4a7c6db015c3d7f99669ba7ac Author: Josef Eisl Date: Fri Feb 24 23:12:56 2017 +0100 [refactor] TraceRA: rename SSIConstructionPhase to GlobalLivenessAnalysisPhase commit 5a80c97c9307808a5f7be393dc87b7904cf52cc1 Author: Josef Eisl Date: Fri Feb 24 22:59:25 2017 +0100 [refactor] TraceRA: inline FastSSIBuilder commit c610210904138d997566ef71250f688a1cbcf429 Author: Josef Eisl Date: Fri Feb 24 22:49:29 2017 +0100 [refactor] TraceRA: remove SSIBuilderBase commit d243ee9785788cd8b2494253fb152496b2cad416 Author: Josef Eisl Date: Fri Feb 24 22:38:54 2017 +0100 [refactor] TraceRA: remove old SSIBuilder commit 5ad64f66d489e65b896fb32407231d9b25640924 Author: Josef Eisl Date: Fri Feb 24 21:43:48 2017 +0100 [refactor] TraceRA: remove SSIUtil commit adbec4d62dbdc279e86a8143f3b8ac5026c36743 Author: Josef Eisl Date: Tue Feb 28 17:50:09 2017 +0100 [fix] TraceRA: no longer use BlockEndOp commit 05b04309d260619f46c01816d6085f7a171344e6 Author: Josef Eisl Date: Fri Feb 24 18:17:02 2017 +0100 [fix] TraceRA: remove obsolete verification code commit ff40a6950ec55e9a122ad09a37feb09a3f0347c2 Author: Josef Eisl Date: Fri Feb 24 18:11:00 2017 +0100 [fix] TraceRA: reenable inter-trace hints commit 490a30c2bdecbbf4008622979c5e1001a4525bcd Author: Josef Eisl Date: Wed Feb 22 13:41:28 2017 +0100 [doc] TraceRA[BU]: fix javadoc commit 84e0436c5373100b74372e225a1c5698b6095cac Author: Josef Eisl Date: Fri Feb 24 17:31:47 2017 +0100 [feature] TraceRA: remove indirection for getBlockIn and getBlockOut in GlobalLivenessInfo commit dcf20531d5594bffd02f6dbbdeba804106c68657 Author: Josef Eisl Date: Fri Feb 24 17:08:23 2017 +0100 [feature] TraceRA: do not initialize live vars with empty lists commit 9f21a8cddef25b4c02d6e710cd90201f85b4cbdc Author: Josef Eisl Date: Fri Feb 24 15:24:29 2017 +0100 [feature] TraceRA: support GlobalLivenessInfo in CFGPrinter commit f9f749f707be597af432e59b8aa701f817b4a4f9 Author: Josef Eisl Date: Fri Feb 24 15:26:34 2017 +0100 [feature] TraceRA: do no longer store global liveness info in LIR commit 91947056239d8f3c0dcf7e2bf91c532e91bbd6a6 Author: Josef Eisl Date: Fri Feb 24 15:27:45 2017 +0100 [fix] Improve assertion message in RedundantMoveElimination commit 82d2de215cbec3582663556d92faaa2f4483fe94 Merge: ef0b935 736c34a Author: Doug Simon Date: Tue Mar 7 03:17:57 2017 -0800 [GR-2865] Print absolute IGV dump paths. commit 1ed06ff10c3b155131a81fbff31abb1aa4fd6779 Author: Tom Rodriguez Date: Tue Feb 28 14:07:34 2017 -0800 isSingleValueUser returns wrong answer for guards commit 9df9b455e1a62101055b5267c2711ce5e8b6e0fc Author: Christian Wimmer Date: Mon Mar 6 15:17:08 2017 -0800 Partial evaluation tests for String.hashCode commit ea7a1ace84c5f20498b3c66642e0c828e2edd385 Author: Christian Wimmer Date: Mon Mar 6 14:01:22 2017 -0800 Inline methods with substitutions during partial evaluation commit 736c34a602a67275222f69beecd7b56ec37f4844 Author: Stefan Anzinger Date: Mon Mar 6 18:16:13 2017 +0000 [GR-2865] Print absolute IGV dump paths. commit ef0b935e346c7708cf871ac0ec07d88fbd30921b Merge: 485dc46 490067c Author: Doug Simon Date: Mon Mar 6 03:31:11 2017 -0800 [GR-3048] Re-enable gating on JDK 9 snapshots. commit 490067c9cab133f2ee472f787cb6dd28df2a9cfb Author: Doug Simon Date: Sun Mar 5 21:01:47 2017 +0100 include app class loader when searching for services in modules that extend Graal commit f9ec74f473ffeba34506d416d85838d2618f21f7 Author: Doug Simon Date: Sun Mar 5 20:31:28 2017 +0100 added utility for concatenating iterables commit 5c6c4078ced8ce32a9d3f95d4458e9bc2aec68e7 Author: Doug Simon Date: Wed Mar 1 16:04:41 2017 +0100 re-enable JDK 9 snapshot related builds commit 155a9821cda95f01d87b47f4b3e4b625f76b95b5 Author: Doug Simon Date: Sun Feb 26 15:03:57 2017 +0100 fall back to app class loader for LayoutFactory provider on JDK 9 commit ebd6ffc196f496fa12d66083756bba7c119c09e8 Author: Doug Simon Date: Sun Feb 26 22:44:57 2017 +0100 adapt to JDK-8174879 commit 485dc462a0776cabadb5c8ac20932383b7465459 Merge: 05e6896 a2d19fb Author: Thomas W?rthinger Date: Fri Mar 3 13:22:15 2017 -0800 [GR-3068] [GR-3074] Try global value numbering after canonicalization. commit a2d19fbe720ad3e8ef35e1d853ee1f9503984472 Author: Gilles Duboscq Date: Fri Mar 3 19:24:16 2017 +0100 [fix] Try global value numbering after canonicalization. commit 05e6896b52143c50817a3ba62f3573711def8f96 Merge: d483351 e1fe589 Author: Thomas W?rthinger Date: Fri Mar 3 10:23:58 2017 -0800 [GR-3107] Compute better stamps for values at merges by meeting the stamps of values at the end of the incoming branches. commit d483351be40e8c047eda7d79efd20021f78ee088 Merge: fd4b395 e7351d8 Author: Lukas Stadler Date: Fri Mar 3 08:50:41 2017 -0800 [GR-3106] Stop processing canonicalized nodes at VirtualObjectNodes. commit e1fe589fdddf6a9927c480fc4ea5701d15ef125d Author: Thomas W?rthinger Date: Fri Mar 3 15:17:13 2017 +0100 Clean up and adding documentation. commit e7351d87bb0f18b5c4a0f0329a68c6b5325d1561 Author: Lukas Stadler Date: Fri Mar 3 16:24:51 2017 +0100 stop processing canonicalized nodes at VirtualObjectNodes commit 1567b6c23626864f89a512cc2c448bc423b12da6 Author: Thomas W?rthinger Date: Thu Mar 2 14:41:25 2017 +0100 Allow fixed read phase to be configurable with boolean whether inputs should be replaced with constants. Make sure canDeoptimize in SafeDivRemNode cannot change after removing PiNodes. commit 47fed0986421f0938f8379ba151529c0f8991039 Author: Thomas W?rthinger Date: Sun Feb 26 00:17:04 2017 +0100 Be more conservative when inserting pis to improve phis in order to prevent update cycles. commit 952ccb4f04c9535a964d3af990b4279527c32044 Author: Thomas W?rthinger Date: Sat Feb 25 23:32:59 2017 +0100 Introduce pi nodes in conditional elimination if phis can obtain a better stamp. commit 337a710bdc077322f05028c7e4dd7678a590581f Author: Thomas W?rthinger Date: Sat Feb 25 21:28:05 2017 +0100 Try to also improve phi stamps at merge points. commit 5b6b1c2815e2d8b4c0216f4c37e609836174bf4f Author: Thomas W?rthinger Date: Sat Feb 25 20:46:03 2017 +0100 Calculate union stamps at merge points. commit 6f22827967f1c7adecee26ba9d67856380f4189e Author: Thomas W?rthinger Date: Sat Feb 25 18:39:07 2017 +0100 Make sure constants with potentially wrong kind are not propagated by word cast. commit 1fca899db56f37100dc6c50bb1cd7b333b147dae Author: Thomas W?rthinger Date: Sat Feb 25 15:48:02 2017 +0100 Put constant input replacement behind flag. commit 11fd15f04cfd2989527a157f9a2f3069b4499d07 Author: Thomas W?rthinger Date: Sat Feb 25 15:35:42 2017 +0100 Add new test case for double compare against 0.0 and fix FloatStamp#asConstant to be more conservative due to 0.0 and -0.0 cases. commit 7315323b298c0b3cb54f4dc47bd538ce9717acd3 Author: Thomas W?rthinger Date: Sat Feb 25 14:14:08 2017 +0100 Replace inputs with constants when stamp is constant in raw conditional elimination. commit 8654aff9d4abc1b9be85c66f783c5ae52d07c2fa Author: Thomas W?rthinger Date: Sat Feb 25 13:50:47 2017 +0100 Handle conditional nodes in raw conditional elimination. commit fd4b395934002dceb55750d72de754faf2b3d271 Merge: eed04a6 d3e2667 Author: Gilles Duboscq Date: Fri Mar 3 05:36:37 2017 -0800 [GR-3074] Add unused `GuardNode` to loop fragment. commit d3e2667d06114c24d514f2ea0313ebbf7e9aa713 Author: Gilles Duboscq Date: Fri Mar 3 14:10:48 2017 +0100 [GR-3074] Add unused `GuardNode` to loop fragement This will help answer questions about induction variables. However it's not correct enough to make loop transformations: it might say some nodes are in the loop even though they can only be scheduled below the loop. commit eed04a6891a97fb9761326bbeacdfeee94c58684 Merge: 75791e5 e271f7e Author: Gilles Duboscq Date: Fri Mar 3 05:09:10 2017 -0800 [GR-3095] Keep workdir if dacapo benchmark fails. commit e271f7e8fd6383bda15ede51f176a9405128cac2 Author: Gilles Duboscq Date: Wed Mar 1 15:34:25 2017 +0100 [GR-3095] Keep workdir if dacapo benchmark fails This makes it easier to investigate the problem commit 75791e585e65ef34aff08aa0e0b2c3aad15a7bea Merge: 6293a8e aeff877 Author: Christian Wimmer Date: Thu Mar 2 16:16:35 2017 -0800 [GR-2032] Improve handling of NodeSourcePosition in Truffle. commit aeff877454c86a9bcba8d710b645cf01a4034510 Author: Christian Wimmer Date: Tue Feb 28 16:53:29 2017 -0800 Do not store Truffle options in static final field commit 51fb6c3aafbedef8aab3920e4b119426a0a4c590 Author: Christian Wimmer Date: Tue Feb 28 13:10:40 2017 -0800 Propagate NodeSourcePosition in more phases commit 3fc9d98f75b979433d29bb463a5102832500795d Author: Christian Wimmer Date: Tue Feb 28 13:09:53 2017 -0800 Allow customization of CompilationResult commit c597eef0d9c16797f748e6a9bf0549f8d31b3fd5 Author: Christian Wimmer Date: Tue Feb 28 13:09:30 2017 -0800 Allow to set debugId commit 6293a8e889d11b0d75156041221cc0e9bb169093 Merge: efe0365 999c554 Author: Christian Haeubl Date: Thu Mar 2 02:28:58 2017 -0800 [GR-3065] Reduce encoded graph footprint. commit efe03652d6408cb9f854f87a539ffa890a00f691 Merge: d142e7c bc959a3 Author: Christian Haeubl Date: Wed Mar 1 04:51:11 2017 -0800 [GR-3054] Performance- and footprint-related optimizations for the graph decoder. commit 999c55476888eba67716d59461bce3898a18d46b Author: Christian Haeubl Date: Tue Feb 28 10:40:58 2017 +0100 Reduce encoded graph footprint. commit d142e7cca297ad1dcacfb78e85ebd07384c606f7 Merge: 13902d9 29500eb Author: Boris Spasojevic Date: Tue Feb 28 22:24:26 2017 -0800 [GR-2148] Don't invalidate targets if a call to interpreter is made and the target is still valid. commit 13902d94221889f2ecfceed1c103fec3189798fd Merge: c616d03 1bb1135 Author: Tom Rodriguez Date: Tue Feb 28 13:59:15 2017 -0800 [GR-2955] Casts for MethodHandle arguments must be properly guarded. commit bc959a328ad099e7e0740049d9ab2251e9e09adc Author: Christian Haeubl Date: Mon Feb 27 13:25:07 2017 +0100 Minor cleanups. commit 094143a255235b914fd58319ab59fa4508dcb61e Author: Christian Haeubl Date: Mon Feb 27 13:06:15 2017 +0100 Place inputs before successors in the encoded graph. commit 15c6ded2fb529f3e5707e15d992ef097776ba84f Author: Christian Haeubl Date: Mon Feb 27 13:03:52 2017 +0100 Replace data structures to increase partial-evaluation performance while decreasing memory footprint. commit 0970ddd20594fb4fd28dec6cfde622ac1ead99ba Author: Christian Haeubl Date: Mon Feb 27 11:34:03 2017 +0100 Minor performance-related changes. commit 1bb1135a7c1c18723005017bb62f41c42145c31d Author: Tom Rodriguez Date: Fri Feb 24 11:27:34 2017 -0800 Casts for MethodHandle arguments must be properly guarded commit c616d03c0fa3315acb3a9db5b2a4fcb7b54baa4f Merge: a36e6c9 b71b9ab Author: Boris Spasojevic Date: Tue Feb 28 04:36:08 2017 -0800 [GR-3040] Per thread map passed to TraceCompilationListener. commit a36e6c94a62bc55f9d5bb8aebbd21862bb257f19 Merge: 2b5e28e 7ba0daa Author: Christian Humer Date: Tue Feb 28 04:14:05 2017 -0800 [GR-3056] More deterministic PerformanceTruffleInliningTest. commit 7ba0daa31a951806ce0c7a186355f9ae4d530409 Author: Boris Spasojevic Date: Tue Feb 28 10:44:20 2017 +0100 Formatting. commit 04c51474a9729ae5fd22c0be1fd17130960a1a75 Author: Boris Spasojevic Date: Tue Feb 28 10:31:09 2017 +0100 Formatting. commit 303e8784d6d338d6c203470593ed2192a219d75f Author: Boris Spasojevic Date: Tue Feb 28 10:12:26 2017 +0100 Run tests 10 times and use minimum duration to eliminate noise. commit 21a99d7cbab78f2d404a8e4e32a65e987de4e510 Author: Tom Rodriguez Date: Mon Feb 27 11:02:04 2017 -0800 Fix non-null stamp machinery for other non-object pointers commit 2b5e28e6ef4d66b1a08a81f6209d6c2d466e5940 Merge: 7b1a5b4 6fd1d1a Author: Christian Wimmer Date: Mon Feb 27 10:52:06 2017 -0800 [GR-3025] Add more hooks for subclasses to influence synthetic start / unwind code. commit 6fd1d1adb449a2d4c342086aa1b8435745454821 Author: Christian Wimmer Date: Thu Feb 23 16:43:59 2017 -0800 Add more hooks for subclasses to influence synthetic start / unwind code commit 7b1a5b4a0c934ab8e142fbbafa548ecc1c81e15c Merge: 519eba1 7d06bef Author: Christian Humer Date: Mon Feb 27 08:46:33 2017 -0800 [GR-2688] Use new copy uninitialized from Truffle. commit 7d06bef1cc636cf13129e20a44d8b198711998f4 Author: Christian Humer Date: Fri Feb 24 16:33:40 2017 +0100 Update Truffle version. commit 94cda073783b45bd9b500339adffbb282984d440 Author: Christian Humer Date: Tue Feb 21 12:25:33 2017 +0100 Simplify clone uninitialized support. commit d21c7ac9c24f568a1500b3aaed30845035ff1885 Author: Christian Humer Date: Tue Feb 21 12:25:15 2017 +0100 Fix typo in TVMCI. commit 7d9581a3f0a82ff7d5e9a9eb03642d1eb12b0dc2 Author: Christian Humer Date: Wed Feb 15 14:15:30 2017 +0100 Use TMVCI to access isCloneUnitializedSupported and cloneUnitialized . commit 596758d9acfd630414eeeea9dbb631a4d095c9fc Author: Christian Humer Date: Wed Feb 8 21:24:34 2017 +0100 Use new copy uninitialized from Truffle. commit b71b9ab7bc1aec3b50570bdde3547c720963c6c2 Author: Boris Spasojevic Date: Mon Feb 27 14:42:15 2017 +0100 Formatting. commit f454ea3e55695b360e2a5973c9cef22c9932d92a Author: Boris Spasojevic Date: Mon Feb 27 14:24:45 2017 +0100 Removing unused member map from TraceCompilationListener. commit 519eba1c375461b221d3cc22fa5a37cd379f079a Merge: 6ea8f00 ba001b4 Author: Lukas Stadler Date: Mon Feb 27 05:24:09 2017 -0800 [GR-2727] Remove faulty precondition check in PEA for virtual object compatibility. commit 6ea8f00f39f5070da80e92fa278725d5cfc0a10a Merge: 7c02f8d 14dc595 Author: Thomas W?rthinger Date: Mon Feb 27 05:21:17 2017 -0800 [GR-3049] Convert Math.*Exact operations to non-exact operations. commit bc9c311f02a6bbd2e446347d1849d07d696bf24f Author: Boris Spasojevic Date: Mon Feb 27 14:17:42 2017 +0100 Avoid problems stemming from a map shared among threads by passing a map to the listener per thread. commit ba001b4c2042ea668dc8b41445242f59b4567329 Author: Lukas Stadler Date: Mon Feb 27 13:55:23 2017 +0100 PEA: remove faulty precondition check for virtual object compatibility commit 14dc5950a9658b2ef5452a5e1b54b722adba5336 Author: Christian Haeubl Date: Wed Feb 22 17:16:52 2017 +0100 Variable name cleanup. commit cf9fb5af86173824049212b4ecdd1821a088fb39 Author: Christian Haeubl Date: Fri Feb 17 09:27:08 2017 +0100 Add exact math canonicalizations/simplifications. commit 342eccb0cf6e604c39f529a9cfe8ab8ef7781ca1 Author: Thomas W?rthinger Date: Sun Nov 6 19:22:01 2016 +0100 Canonicalize exact add to normal add if overflow can never happen based on the operand stamps. commit 7c02f8de6c98d8fdace6b399fe304ff3b9e4289e Merge: 72806d4 d278c21 Author: Boris Spasojevic Date: Sun Feb 26 04:50:02 2017 -0800 [GR-2632] [GR-1624] Truffle inlining performance improvements and tests. commit d278c21a7d95634a864fe26accccbaf9e652dfe1 Merge: 005fec5 72806d4 Author: Boris Spasojevic Date: Sun Feb 26 11:34:37 2017 +0100 Merge branch 'master' into tests/gr-2632 commit 72806d4c6606f754eafc0ec441980b04834e0ae1 Merge: f54ad5d c6f6374 Author: Thomas W?rthinger Date: Sat Feb 25 03:57:24 2017 -0800 [GR-3046] New conditional elimination after fixing reads. commit c6f63742edcf4349de0b273b1c59beeef7356a19 Author: Thomas W?rthinger Date: Sat Feb 25 01:04:15 2017 +0100 Correctly handle default successor when calculating switch node succeeding stamps. commit 5430c2ceba5e65db0530bb342cd2edeb136681db Author: Thomas W?rthinger Date: Fri Feb 24 23:34:26 2017 +0100 Remove redundant conditional elimination phase. commit b42e007bd1083f2e1c817b503e50ff77b34a95a9 Author: Thomas W?rthinger Date: Fri Feb 24 22:08:57 2017 +0100 Fix arithmetic stamp improveWith implementation to take stamp compatibility into account. commit b88a1b62f3af258d230ebee17d7aa37d83454b13 Author: Thomas W?rthinger Date: Fri Feb 24 22:03:31 2017 +0100 Replace nodes with constant stamps with constants in raw conditional elimination. commit 6d8e4f6a468fa70d41d5f545fb815cd0e2e2daf8 Author: Thomas W?rthinger Date: Fri Feb 24 21:42:05 2017 +0100 Add stamp parameters to binary logic node succeeding stamp method. commit 1d0cddeb2f4ff7316b92cd96712892215ae3f3a6 Author: Thomas W?rthinger Date: Fri Feb 24 20:29:08 2017 +0100 Fixed an issue in the getSuperclass snippet that could lead to an unsafe memory read. commit 81ef1cb31197ffdc58ca8c9fd709dcc491a62237 Author: Thomas W?rthinger Date: Fri Feb 24 19:45:45 2017 +0100 Add flag to stress test scheduling reads early. commit f54ad5d72a2d616e27b89dba6f15f676fe9fc48f Merge: 7d1ad12 3efa7a0 Author: Aleksandar Prokopec Date: Fri Feb 24 10:39:27 2017 -0800 [GR-3042] Correctly repair the number of measurements when a benchmark fails. commit 8b286f4b41c65cdaed10f9fee103a9a2c170e865 Author: Thomas W?rthinger Date: Fri Feb 24 17:55:08 2017 +0100 Propagate stamps for unary and binary operations. commit 3efa7a0ddf33b66292929cb89b2cf6efe3ead701 Author: Aleksandar Prokopec Date: Fri Feb 24 19:17:44 2017 +0100 [fix] Fix bug in calculation of total iterations when a benchmark fails. commit c60e255617564e654522e68294bd99ef6a4d00d7 Author: Thomas W?rthinger Date: Fri Feb 24 16:56:26 2017 +0100 Simplify integer switches in raw conditional elimination. commit fd006365d35c4fb539465fc422a1cfea0b58c204 Author: Thomas W?rthinger Date: Fri Feb 24 16:37:02 2017 +0100 Move succeeding stamp calculation to switch nodes as common utility and use from raw conditional elimination. commit 75f1d85125aeda2253fab45c65a38afb04c7b609 Author: Thomas W?rthinger Date: Fri Feb 24 16:28:45 2017 +0100 Fixed an issue in NewConiditionalEliminationPhase that prevented switches from correctly registering stamps. commit a7ca9170642ac1d7900869ddde34b02a9d7ad2ad Author: Thomas W?rthinger Date: Fri Feb 24 16:13:16 2017 +0100 Add new conditional elimination after fixing reads. commit bc4ef64f2c3218855d94dce45134b5768cf0340a Author: Thomas W?rthinger Date: Fri Feb 24 14:25:49 2017 +0100 Change block iteration order of FixReadsPhase to be dominator tree based. commit 7d1ad12cbd24723767be368d78399ca1e1f3a39a Merge: 193b418 730703a Author: Lukas Stadler Date: Fri Feb 24 05:09:57 2017 -0800 [GR-3034] Add message to assertion in ArithmeticStamp. commit 730703a1a2d3e895ad0401ada04bc8925ebe79da Author: Lukas Stadler Date: Fri Feb 24 12:12:36 2017 +0100 add message to assertion in ArithmeticStamp commit 193b41808b1145325d634b12a2965eef4838395e Merge: 5841886 455484f Author: Thomas W?rthinger Date: Fri Feb 24 02:44:50 2017 -0800 [GR-3031] Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. commit 455484fcf177118659d994c08cf1794356f00d5a Author: Thomas W?rthinger Date: Fri Feb 24 00:02:20 2017 +0100 Correctly take killing begin nodes into account when creating latest schedule. commit 58370156a1463b75617adaee996c8560f25b09dc Author: Thomas W?rthinger Date: Thu Feb 23 22:48:23 2017 +0100 Adjust AheadOfTimeCompilationTest to new fixed reads structure. commit 5313605f2da9cff0c1eeca32f13c3d7e33412a40 Author: Thomas W?rthinger Date: Thu Feb 23 22:33:29 2017 +0100 Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. commit 58418863f1ed601afa49f188f25e9630c193b49c Merge: 1efc1c5 67de314 Author: Thomas W?rthinger Date: Thu Feb 23 11:13:57 2017 -0800 [GR-3018] No more value anchors required for guards, new guard movement, removed push-through-pi as extra phase. commit 67de314e805596d19e1c9eaf7d3496fa3cf4a150 Author: Thomas W?rthinger Date: Thu Feb 23 19:36:58 2017 +0100 Add checkstyle directive to avoid complaint about jtt test. commit 8192e0c1f1d3ea537032702c88dd37e3b22e5ca1 Author: Thomas W?rthinger Date: Thu Feb 23 18:25:22 2017 +0100 Correctly handle empty instanceof branches and add jtt test for them. commit 0f75d70df46940ef95a68a08e842581273200e82 Author: Thomas W?rthinger Date: Thu Feb 23 15:44:45 2017 +0100 Fix an issue in the new guard movement that was adding new guards too early to the schedule. commit 016fed781f5a4d7e1f904b1df1956ed13524ae09 Author: Thomas W?rthinger Date: Thu Feb 23 04:22:55 2017 +0100 Relax FloatingReadNode constructor assertion. commit 279ac4015ed82a96cd3d46fc4e40cadd0e3375e8 Author: Thomas W?rthinger Date: Thu Feb 23 03:34:19 2017 +0100 Remove conditional elimination load field constant fold test. commit 4359681c9773d323705dfa162ce16822b5d9db05 Author: Thomas W?rthinger Date: Thu Feb 23 03:24:24 2017 +0100 Remove deprecated TODO in ReadNode. commit 3aab8cbb12d3ccf46906e4f1a470200c15509c51 Author: Thomas W?rthinger Date: Thu Feb 23 03:20:11 2017 +0100 Remove constant pointer comparison conditional elimination. commit ee1716fc5b0ed25ef7cf17b458f2718a900cbced Author: Thomas W?rthinger Date: Thu Feb 23 03:19:37 2017 +0100 Make implicit null check conversion more conservative. commit 0d6841907f45c6b9ce7983c2b31becd6a346bd2f Author: Thomas W?rthinger Date: Thu Feb 16 16:32:28 2017 +0100 Introduce new BytecodeExceptionMode.ExplicitOnly mode. Fix an issue in the write barrier verification phase. Fix IfNode canonicalization to take anchors on begin nodes into account. Adjust allowed code size increase of EarlyReadEliminationPhase. Correctly assume receiver type for special invoke. Do not skip over pi in instanceof node. Fix succeeding stamps. commit c250d432035442b078b54a29e33d31df450597e3 Author: Thomas W?rthinger Date: Thu Feb 16 14:39:11 2017 +0100 Add optional stamp parameter to FixedValueAnchorNode. Skip pi for instanceof only if no information is lost. commit 6c70f8efdb5a7a5f21b7f254a5bc9eef79b7d050 Author: Thomas W?rthinger Date: Wed Feb 15 23:43:39 2017 +0100 Make sure more nodes are canonicalized before they are even created. commit da2fc6f2d703eb3678a2faf8a3f277b9bfcb9dc7 Author: Thomas W?rthinger Date: Tue Feb 14 23:22:05 2017 +0100 Clean up phases. commit 7f4c1e5617be30b6d91c73a5bb33a6ed68da0e08 Author: Thomas W?rthinger Date: Mon Feb 13 00:40:13 2017 +0100 Keep guards alive while their anchor is alive. No longer require ValueAnchorNode for this purpose. commit c53b367770069e1a4a5cf4ae981611908061dd7d Author: Thomas W?rthinger Date: Sun Feb 12 23:56:05 2017 +0100 Make sure guards are always marked live and processed before any other node in earliest schedule. commit bb2905a5516cf4ba9771ba110794764d9c290278 Author: Thomas W?rthinger Date: Sun Feb 12 23:52:02 2017 +0100 Reduce number of node iterable types. commit a24455c0c77731ee92e137234a484ed1a1014087 Author: Thomas W?rthinger Date: Sun Feb 12 23:14:07 2017 +0100 Fix and rename GuardEliminationCornerCasesTest. commit 14fd0e523aa5b9ce0de6c7e9aeb9038e2c017f45 Author: Thomas W?rthinger Date: Sun Feb 12 22:29:08 2017 +0100 Refactor and simplify explicit exception code in the bytecode parser. commit 256a17b0ac3b9c8e1a9a70a5aec292239e74709e Author: Thomas W?rthinger Date: Sun Feb 12 21:07:37 2017 +0100 Special case the frequent case of GETFIELD/PUTFIELD after ALOAD*. commit 7049a6e41ce949ae7a8c0301bd71d28454b6883f Author: Thomas W?rthinger Date: Sun Feb 12 20:36:03 2017 +0100 Short cut creation of InstanceOfNode followed by IFEQ or IFNE bytecode. commit 68a7efa84e55775a1329a69a4012c1e67ebcd24d Author: Thomas W?rthinger Date: Sun Feb 12 19:48:56 2017 +0100 Skip pi when creating IsNullNode or InstanceofNode. Add pass to conditional elimination for moving guards present on both sides of an if upwards. Add conditional elimination tests. commit 1efc1c543acd7ed447c59788aeabc223be13e774 Merge: ba38953 7569452 Author: Doug Simon Date: Thu Feb 23 03:49:03 2017 -0800 [GR-2741] Remove OptionValues.GLOBAL. commit 75694522c823d828e12a677a303df3383cc4a09e Author: Doug Simon Date: Thu Feb 23 11:50:12 2017 +0100 consolidated test for whether assertions are enabled commit 8ab1a68fc84e83e742a3a8473c902acce2fe818f Author: Doug Simon Date: Thu Feb 23 11:49:39 2017 +0100 fixed regressions in CooperativePhaseTest commit 5c15ec46fada7f3aadc4f5197d8823e68319bc03 Author: Doug Simon Date: Thu Feb 23 01:17:22 2017 +0100 fixed issues detected by OptionsVerifierTest commit 1648cb56d88cc08c0426420618b5a0f3208a3b37 Author: Doug Simon Date: Thu Feb 23 00:47:42 2017 +0100 reduced reads of some options in hot code commit da08f0d7bc3f905f1891b76ae4191c8421410e6e Author: Doug Simon Date: Thu Feb 23 00:46:04 2017 +0100 restructured CompilationAlarm to reduce reads of CompilationExpirationPeriod option commit 14dcf1e9dde0cb1144e97137498dc28226a15f80 Author: Doug Simon Date: Thu Feb 23 00:41:17 2017 +0100 removed stats on how often OptionKeys are read commit a57a4a1363d86b55e5b916b43225583115d0bb60 Author: Doug Simon Date: Thu Feb 23 00:39:49 2017 +0100 added stats on how often OptionKeys are read commit da27ea11cfd5f5d5154eb5a1b0843a738acc4e64 Author: Doug Simon Date: Thu Feb 23 00:36:08 2017 +0100 removed OptionKey.defaultValue() commit bcdc9a1ecb06a03cd2f69ba8cc0dc4fbb7390308 Author: Doug Simon Date: Tue Feb 21 22:15:01 2017 +0100 Graal Truffle options made be accessed without a GraalTruffleRuntime being initialized commit 2bf40c5c843b79cf206285fc35106704048a1bd0 Author: Doug Simon Date: Thu Feb 23 12:21:49 2017 +0100 made snippet counters non-global - they are passed in by a Graal runtime replaced all uses of GLOBAL with GraalCompilerTest.getInitialOptions() check the invariant that @ConstantParameter, @VarargsParameter and @NonNullParameter are only used in @Snippet annotated methods removed VerifyNodeCostOnAccess option replaced all other uses of OptionValues.GLOBAL with options available from local context removed OptionValues.GLOBAL commit ba38953f2e560decfdc005a95736ae503fa5d3ce Merge: 06f78ea d95792a Author: Doug Simon Date: Thu Feb 23 02:05:52 2017 -0800 [GR-2946] Disable pinning mx to a revision in CI. commit 7fcb7ab158dc6132e339877f72b5264d331b39aa Author: Doug Simon Date: Mon Feb 20 17:06:23 2017 +0100 removed CloneNodesWithUnsafe option commit e0168e01b008b1790892120ac7ba5299c329fabc Author: Doug Simon Date: Wed Feb 15 23:45:46 2017 +0100 use service provider to get option values commit d69cad07503da0228f683c3df6ab93a15e18b833 Author: Doug Simon Date: Mon Feb 13 17:33:55 2017 +0100 removed GLOBAL from StructuredGraph.Builder commit 06f78ea471fae780af57cf762258c9a09501710a Merge: 5082f0e df2865d Author: Stefan Anzinger Date: Wed Feb 22 09:12:50 2017 -0800 [GR-2987] Force compile generated method in LargeConstantSectionTest. commit df2865d05f75381a9c78db1a9af82df404c75c5c Author: Stefan Anzinger Date: Wed Feb 22 14:31:41 2017 +0000 [fix] Force compile generated method in LargeConstantSectionTest commit 5082f0e7ee0919a5e670b9fe7712573e242a03eb Merge: 9898d2f b00edb0 Author: David Leopoldseder Date: Wed Feb 22 06:46:24 2017 -0800 [GR-1994] Inital groundwork for better compile cancelation from Truffle. commit d95792abb3e652cd5c6fff4994cb5740a2d3c840 Author: Doug Simon Date: Wed Feb 22 14:33:40 2017 +0100 disable pinning mx to a revision in CI commit b00edb0d8e6446ae20002e1a0f777cb5d1fc0853 Author: David Leopoldseder Date: Mon Feb 13 16:20:58 2017 +0100 [feature] Graal: Add cooperative compilation cancellation. commit 24d766e8b09bf0752ae49d44ce04e67a6502c6bd Author: Boris Spasojevic Date: Fri Feb 10 12:00:43 2017 +0100 Removed synchronisation and stored the CancelableCompileTask object in a local variable. commit 9e3e8f9b5f245b1e10bdfccb3ad85a12d224d8d5 Author: Boris Spasojevic Date: Fri Feb 10 08:56:39 2017 +0100 Synchronize assignment to compilation task. commit e889d0be9e95d4f6526bf2923fad2cae98541d87 Author: Boris Spasojevic Date: Fri Feb 10 07:51:52 2017 +0100 Javdoc for Cancelable. commit 7db8a020b755f26ad361081d24f67986a36b68ef Author: Boris Spasojevic Date: Fri Feb 10 07:45:26 2017 +0100 If CancelableCompileTask is canceled, soft cancel the future as well. commit 25ffd4f0286a5415927f2738f7fe7b4e28054cc2 Author: Boris Spasojevic Date: Thu Feb 9 18:13:14 2017 +0100 Moved the check to allow Cancelable to be loaded to checkAllowedGraalClasses.` commit 9a3a77f2db7c65303d0894cc733a21a3d769e985 Author: Boris Spasojevic Date: Thu Feb 9 17:59:17 2017 +0100 Renamed task to future. commit 582af20c9437a7ea1af1df00b3194edc4ea7bb5f Author: Boris Spasojevic Date: Thu Feb 9 15:45:36 2017 +0100 Added the CancelableCompileTask to the StructuredGraph. commit 57875f66bfd68641a8a66b85bcacd3151b063af0 Author: Boris Spasojevic Date: Thu Feb 9 15:42:02 2017 +0100 Renamed parameter to avoid hiding a field. commit 9809b131e10544dcc8ddfe3feeddd6ec7fde7ca8 Author: Boris Spasojevic Date: Thu Feb 9 15:32:51 2017 +0100 Adding a Cancelable field to StructuredGraph. commit 6dbd424731ae46fb9ee7b592b1d26c1315cd1ac1 Author: Boris Spasojevic Date: Thu Feb 9 15:04:08 2017 +0100 Extracted the CancelableCompileTask class and Cancelable interface. commit 46e2aadae72b85d6a043766d8968299431d6edb9 Author: Boris Spasojevic Date: Thu Feb 9 12:01:59 2017 +0100 Adding the CancelableCompileTask to wrap Futures resulting from submitting for compilation. This CancelableCompileTask object gets propagated until the partial evaluator builds the StructuredGraph. Tests pass null to all methods that expect a CancelableCompileTask object. commit 9898d2f9af65011a94fd0752a8e551a7cfdf9d9b Merge: 1bac1de 095a6dd Author: Josef Eisl Date: Wed Feb 22 03:06:58 2017 -0800 [GR-1021] TraceRA: Bottom-Up allocator does not need a full local data-flow resolution. commit 29500eb2158a944cb91f5b47b0cc106be92d0eab Author: Boris Spasojevic Date: Wed Feb 22 11:31:44 2017 +0100 Don't invalidate targets if a call to interpreter is made and the target is still valid. commit 1bac1de20fa3c78c824ea99b7caeb894bae3812e Merge: 45899d9 e340234 Author: David Leopoldseder Date: Wed Feb 22 02:22:48 2017 -0800 [GR-2956] Update overlay revision. commit 095a6dd95dd0dfd1348e40710159b04375cb0052 Author: Josef Eisl Date: Wed Feb 22 09:55:37 2017 +0100 [refactor] TraceRA[BU]: directly call resolve method commit dbdbd88cf4537abbd2793bf1c7701f28fb4507dc Author: Josef Eisl Date: Tue Feb 21 18:44:05 2017 +0100 [refactor] TraceRA[BU]: split loop back-edge handling and forward edges commit afc3cb46cea26c070e0908de7958c3e77890cb89 Author: Josef Eisl Date: Tue Feb 21 15:50:40 2017 +0100 [fix] TraceRA[BU]: no need for full local data-flow resolution commit e340234512f883f734c1bd4b3b995a2583780ad9 Author: David Leopoldseder Date: Tue Feb 21 16:44:54 2017 +0100 [dep] Update overlay revision. commit 45899d9b431f14adc86808d51542a6f14dccef91 Merge: 79f28ca 8db556e Author: Doug Simon Date: Wed Feb 22 00:55:03 2017 -0800 [GR-2980] Update overlay version. commit 8db556e58427c47aae2e7db5189f9fa10f67e886 Author: Doug Simon Date: Wed Feb 22 09:34:51 2017 +0100 update overlay version commit 005fec5ecd2ae5c6bc1646fc0213252bede13cc6 Author: Boris Spasojevic Date: Wed Feb 22 07:54:55 2017 +0100 Proper logging of cached decisions. commit 79f28caa4b0d88e4b4ff9026266378bf288f6959 Merge: d7761c8 7ce2c23 Author: Boris Spasojevic Date: Tue Feb 21 22:30:29 2017 -0800 [GR-2687] Remove ThreadLocal field from TraceCompilationListener. commit d7761c87824f64329c95d352b3468e9ed48768c8 Merge: 288aa91 32d37bb Author: Doug Simon Date: Tue Feb 21 08:23:47 2017 -0800 [GR-2976] Update doc regarding building JVMCI JDK8 binaries. commit 288aa9126e5185cb8466d2bbe526a149917da6f7 Merge: 11c757e b2cf4b0 Author: Doug Simon Date: Tue Feb 21 07:47:54 2017 -0800 [GR-2957] Update overlay to enable graalvm downstream testing. commit 11c757e12a1b4e35bfecc0b76defc161c8846cb1 Merge: 388e343 76b5cc3 Author: Aleksandar Prokopec Date: Tue Feb 21 07:36:50 2017 -0800 [GR-2962] Mx benchmark command should produce data points for failing benchmarks. commit 0aa31f3c01ec7363e1d8ff5cf933555355f02e8a Author: Josef Eisl Date: Thu Dec 22 12:32:45 2016 +0100 [fix] TraceRA: no need for delete for rewritten stack to stack moves commit d67931d90867994b4352b2fe500c1e4335e5e7fc Author: Josef Eisl Date: Tue Jan 17 16:12:47 2017 +0100 [fix] TraceRA[BU]: remove redundant code commit 54759284609e9ded8975fb65a47ed9059e1a7085 Author: Boris Spasojevic Date: Tue Feb 21 15:58:11 2017 +0100 Be more restrictive in what you can cache. commit 76b5cc3f344cf58034462654ece0bef18cecc1f7 Author: Aleksandar Prokopec Date: Tue Feb 21 14:33:06 2017 +0100 [feature] Repair partial DaCapo results after a benchmark failure. commit 32d37bb3add0346c7bece7020dd3bd8efb279304 Author: Doug Simon Date: Tue Feb 21 15:48:03 2017 +0100 update doc regarding building JVMCI JDK8 binaries commit 298580fc4cd9e4aa7f21bfc182a0ea48cf87923a Author: Boris Spasojevic Date: Tue Feb 21 10:27:21 2017 +0100 Added deep rejection cache. commit 7ce2c234fbf55a21aecb7805496aac70eb6520bb Author: Boris Spasojevic Date: Tue Feb 21 09:35:30 2017 +0100 Replaced the ThreadLocal with a map. commit dfb7a6c6af95572d2f1eefca184672cdbc8380d1 Merge: 371bafe 388e343 Author: Boris Spasojevic Date: Tue Feb 21 08:00:40 2017 +0100 Merge branch 'master' into bugfix/gr-2687. commit 371bafe23701a25fe4d3d6361a2d0832f2f6cc43 Author: Boris Spasojevic Date: Tue Feb 21 07:43:48 2017 +0100 Use ConcurrentHashMap instead of HashMap with sync. commit 388e343257342090512ec645290c79d6dee0d0af Merge: 6250cc2 192a2e7 Author: Doug Simon Date: Mon Feb 20 11:35:23 2017 -0800 [GR-2961] Remove all static state from the InstrumentPhase. commit b2cf4b067e456f0e371f8708dc276e4d9ff00146 Author: Doug Simon Date: Mon Feb 20 19:40:05 2017 +0100 update overlay to enable graalvm downstream testing commit 192a2e7c12a9c75937cd8f8bcbe1f61b0dd69b46 Author: Aleksandar Prokopec Date: Mon Feb 20 19:15:21 2017 +0100 [refactor] Move instrumentation state to the Truffle runtime. commit 6250cc29ca65d563eba167d189cfb07cc93f9f51 Merge: 065b10e 3f15d3a Author: Lukas Stadler Date: Mon Feb 20 07:26:39 2017 -0800 [GR-2904] Conditional Elimination: Always improve pi stamp if new guard provides additional information. commit 3f15d3a883967db64f79fb942a9ddc4f4310f713 Author: David Leopoldseder Date: Mon Feb 20 14:27:01 2017 +0100 [fix] Conditional Elimination: Always improve pi stamp if new guard provides additional information. commit 065b10eec31f3067027c97ab8c6fe76e3f1c4e75 Merge: 68af508 3cffbc8 Author: Lukas Stadler Date: Fri Feb 17 10:33:49 2017 -0800 [GR-2904] Revert change in NewConditionalEliminationPhase.registerNewStamp. commit 68af50839b4827eed0886c7a6e5129ba7bc682c2 Merge: 59e3dbd eabc45b Author: Tom Rodriguez Date: Fri Feb 17 09:54:19 2017 -0800 [GR-2910] Be more strict about whether StubRoutines are expected to be available in JDK8. commit 59e3dbdfd8a3da7db3b4e201076170ce3cdb4f7f Merge: 40b3c7c 158a5b2 Author: Christian Wimmer Date: Fri Feb 17 09:22:46 2017 -0800 [GR-1633] Use object from frame state for monitor exit. commit 40b3c7c32cac44a608df231262b8b69830ac5ace Merge: 71b0b4b deee6ed Author: Doug Simon Date: Fri Feb 17 08:35:44 2017 -0800 [GR-2916] Adapt to jdk.vm.* being renamed to jdk.internal.vm.*. commit deee6ed9c8c3c24b51531bcb306d252f6701783d Author: Doug Simon Date: Fri Feb 17 16:47:41 2017 +0100 fix tests that define snippets and replacements to work on jdk9 commit 402f092bc0d257e2398e3bf6051d41b5f2d93459 Author: Doug Simon Date: Fri Feb 17 16:44:40 2017 +0100 adapt to jdk.vm.* -> jdk.internal.vm.* renaming commit 6cf5d3711c6028602b95fbef470928499b396825 Author: Doug Simon Date: Fri Feb 17 16:41:12 2017 +0100 install hsdis library into JAVA_HOME if it doesn't already exist commit 0bfab5f11fbd863df3d62715bf3262f66e5315bb Merge: 563b95a 71b0b4b Author: Boris Spasojevic Date: Fri Feb 17 15:03:39 2017 +0100 Merge 'master' into tests/gr-2632 commit 3cffbc8f88f90590ff36c9d13fad7d84afd7cd4b Author: Lukas Stadler Date: Fri Feb 17 13:41:14 2017 +0100 revert change in NewConditionalEliminationPhase.registerNewStamp commit 71b0b4b9fd0fc495f534854ecc4f4697eb69d625 Merge: cb17ff5 cdf16cc Author: Roland Schatz Date: Fri Feb 17 02:57:40 2017 -0800 [GR-2901] Update truffle import to include native interface. commit cdf16cc83370c9bd1b0208b779abda247c74c517 Author: Roland Schatz Date: Thu Feb 16 17:16:09 2017 +0100 Update truffle import to include native interface. commit 563b95a69a6ffb9d8bf041b5fb085c8074773ea1 Merge: 8c9c09f cb17ff5 Author: Boris Spasojevic Date: Fri Feb 17 07:43:53 2017 +0100 Merge branch 'master' into tests/gr-2632 commit cb17ff5739546609f9a49b97808dbf377d4f9a5e Merge: 4501f91 4a02210 Author: Tom Rodriguez Date: Thu Feb 16 21:59:47 2017 -0800 [GR-2911] Ensure constants are on the right in commutative operations. commit 4a0221087ad448049a46ea5dfdde180ce778f99f Author: Tom Rodriguez Date: Sun Feb 12 23:09:01 2017 -0800 Ensure constants are on the right in commutative operations commit eabc45bdd389da076f3135d85bea533be261c7dc Author: Tom Rodriguez Date: Mon Feb 13 10:43:23 2017 -0800 Be more strict about whether StubRoutines are expected to be available in JDK8 commit 158a5b29d8a8dcee211c9573b64cb5388d102879 Author: Christian Wimmer Date: Thu Feb 16 10:43:45 2017 -0800 Use object from frame state for monitor exit commit 4501f91b32f16c55e9998554abb41e0a507fcdaf Merge: 803c0ec f524733 Author: Doug Simon Date: Thu Feb 16 06:39:26 2017 -0800 [GR-2897] Update CI to use jvmci-0.25. commit 803c0ecb5b0d35d1bc1789b4a89b0fd5494da3d6 Merge: cfbeb9a 65a9388 Author: David Leopoldseder Date: Thu Feb 16 06:16:45 2017 -0800 [GR-2898] MethodMetrics: Fix printing setup. commit f524733b51391748cd8c32da4c1134aaaa400880 Author: Doug Simon Date: Thu Feb 16 11:53:39 2017 +0100 update CI to use jvmci-0.25 commit cfbeb9a4b647e47e4c25c57f16dd7233e5ac6d4f Merge: 1691631 a105ce5 Author: David Leopoldseder Date: Thu Feb 16 05:48:01 2017 -0800 [GR-2877] Unsafe PEA Bug. commit 169163127a1e7d78218e324b8ae1d59a80a8af9d Merge: 7d7bc36 5debce5 Author: Aleksandar Prokopec Date: Thu Feb 16 04:02:49 2017 -0800 [GR-2710] Move static state out of InstrumentPhase. commit 5debce5fa8ca9bc18ce05b1c21cdcf47c19cd02d Author: Aleksandar Prokopec Date: Wed Feb 15 16:52:29 2017 +0100 [refactor] Use Truffle-runtime-specific instance of the instrumentation access table. commit 65a9388d2ee50c7d9be0186c4c6f1640efb7318c Author: David Leopoldseder Date: Thu Feb 16 12:17:01 2017 +0100 [fix] MethodMetrics: Fix printing setup. commit 8c9c09f6a6d1d8ca28c72a03f74ec6bbef6aba62 Author: Boris Spasojevic Date: Thu Feb 16 11:47:01 2017 +0100 Removed invisible UTF characters. commit a105ce5337f5d633f161e12ff37bc3105125c57a Author: David Leopoldseder Date: Thu Feb 16 10:44:08 2017 +0100 [fix] PEA: Keep better stamp information during node replacement for all nodes. commit b6425f9bdd2051f846752497048de5f7a45170bf Author: David Leopoldseder Date: Wed Feb 15 13:44:32 2017 +0100 [fix] PEA: Must respect stamps when virtualizing unsafe stores to one slot fields. commit 126441b8a5034d9e88de7f33daaf8546d53a8106 Author: Boris Spasojevic Date: Wed Feb 15 16:04:47 2017 +0100 Suppress Warning. commit dcd7db23164b876db36852ab093d7616e37056db Author: Boris Spasojevic Date: Wed Feb 15 13:16:02 2017 +0100 Non static counting of visited nodes. commit 7d7bc365d1fc52fcbcce4b9d505512c018c09c49 Merge: 7a18b1d 0c9f8cd Author: Tom Rodriguez Date: Tue Feb 14 17:08:38 2017 -0800 [GR-2872] Improve handling of PiNodes in address expressions. commit 0c9f8cd33a61ad92ba20204cc42fcee332a45e41 Author: Tom Rodriguez Date: Mon Feb 13 23:09:38 2017 -0800 Improve handling of PiNodes in address expressions commit 7a18b1d927dd324859f54665f1b6e00e670cd45d Merge: d0d9139 217d3f0 Author: Andreas Woess Date: Tue Feb 14 12:05:12 2017 -0800 [GR-2047] Use hasNeverInlineDirective() in PEGraphDecoder. commit 217d3f05eb042936fb78202925edbcc2009dc670 Author: Andreas Woess Date: Tue Feb 14 19:28:53 2017 +0100 Use hasNeverInlineDirective() instead of canBeInlined() in PEGraphDecoder. commit 1eae4894d43df492d4323d573e908d133e1cef88 Author: Boris Spasojevic Date: Tue Feb 14 17:23:11 2017 +0100 Cache and reuse inline decisions, and don't explore too many call sites. commit f22534c9416104559dbb8c75cb9bd04a6c22f608 Author: Boris Spasojevic Date: Tue Feb 14 17:21:31 2017 +0100 Removed junk and increased timeout for tests to 1 second. commit d0d913941f7cfc82f8da74c8f9d4e7858c910a04 Merge: 638ba23 4f2fe2b Author: Doug Simon Date: Tue Feb 14 01:43:44 2017 -0800 [GR-2842] Clean up some IGV options. commit 4f2fe2bbcdd02f48744dd8c434ec1a8dc4d5a5d1 Author: Doug Simon Date: Mon Feb 13 22:35:05 2017 +0100 deprecated options with ?Ideal? in their name commit 638ba239e23344fbc09056e45b7f764c2daa1298 Merge: bdd86ff 3bb4c58 Author: Thomas W?rthinger Date: Mon Feb 13 16:13:11 2017 -0800 [GR-2633] Fix assertions related to read elimination and PEA. commit 3bb4c5864ed9055810451feca45d97fd7bfd0768 Author: Thomas W?rthinger Date: Mon Feb 13 18:18:54 2017 +0100 Make sure value of proxy nodes is added before proxy node is added in PEA. commit 5598d39cf1bf68fee046709c97806bbf28445fb9 Author: Thomas W?rthinger Date: Mon Feb 13 16:58:02 2017 +0100 Make sure stamp does not get less precise when applying Graph effects from read elimination and PEA. commit 487759f848cb25889eb1482d4d3bd969390c0bb7 Author: Doug Simon Date: Mon Feb 13 20:58:18 2017 +0100 automatically fall back to dumping graphs to files when IGV is unavailable/unreachable commit bdd86ff9211ab26b82b2b295b79b9dee23927899 Merge: dde2f03 dbe905e Author: Doug Simon Date: Mon Feb 13 08:38:17 2017 -0800 [GR-2827] Clean up option changes merge artifacts. commit dbe905e43c3fdb5bbbe5095ab10cc4ca469a69f6 Author: Doug Simon Date: Mon Feb 13 17:18:05 2017 +0100 re-deleted accidentally revived test commit dde2f03e0f7e98fc8539e34a8be4d2789d7ea1ac Merge: 4372ef7 f67aaf1 Author: Doug Simon Date: Mon Feb 13 07:13:56 2017 -0800 [GR-2800] Update truffle import. commit 4372ef7f9a24f8d6c659b8d3c0ff2b5f6ca3946e Merge: 759d763 a1249cb Author: Doug Simon Date: Mon Feb 13 02:26:39 2017 -0800 [GR-2825] Explicitly select compiler configuration for graal-core. commit a1249cb10101f0636bb44708397a35765d24ece9 Author: Doug Simon Date: Mon Feb 13 11:04:37 2017 +0100 explicitly select compiler configuration for graal-core commit 759d7635dedbea1c7efb835e06d8f904615ace33 Merge: 7d5433e c07bcb5 Author: Thomas W?rthinger Date: Sat Feb 11 11:44:02 2017 -0800 [GR-235] Avoid aggressive guard optimization for guards without action. commit c07bcb594a381c3409d4186f145db7a0f21dd4b5 Author: Thomas W?rthinger Date: Sat Feb 11 16:20:36 2017 +0100 New assertions when replacing nodes. Change PiNode canonicalization. Fix conditional elimination to currectly work with unproxified input. commit 582bd97675e05ba51a9c3493c6a8c2206e93d56b Author: Thomas W?rthinger Date: Fri Feb 10 15:00:09 2017 +0100 Avoid aggressive guard optimization for guards without action. commit 7d5433ec8c8594f33f68b46624e0b5f4a434479a Merge: 06c1a89 0a5fd96 Author: Codrut Stancu Date: Fri Feb 10 14:42:59 2017 -0800 [GR-2813] Illegal stream usage fix. commit 06c1a8934e40520649ede585cf51bb10bb110831 Merge: cf6665b 9f29f84 Author: Thomas W?rthinger Date: Fri Feb 10 14:23:47 2017 -0800 [GR-2819] Modify schedule phase to guarantee earliest schedule for floating nodes. Fixes #252. commit cf6665bba490ca2161031bc980553c7c42f59d6a Merge: e16c69a 523bb8d Author: Christian Wimmer Date: Fri Feb 10 14:04:46 2017 -0800 [GR-2816] Update javaCompliance of NFI project to 1.8. commit 9f29f840c11992d70dcbbf99cafb919f58261aa1 Author: Thomas W?rthinger Date: Fri Feb 10 22:05:07 2017 +0100 Document and simplify new version of earliest schedule. commit 76863a35cf96b273469ce131020efc0255cd62d3 Author: Tom Rodriguez Date: Fri Feb 10 11:58:45 2017 -0800 Handle both inputs of BinaryOpLogicNode when folding tests commit fd3a9f440fe836b5ea13731be078eb6b3ae2c22b Author: Thomas W?rthinger Date: Fri Feb 10 18:31:00 2017 +0100 Modify schedule phase to guarantee earliest schedule for floating node - i.e., a floating node is always scheduled before a fixed node if it does not depend on it. commit e1f64bf4cab3abd3e80fb926e4e532646adf055a Author: Thomas W?rthinger Date: Thu Feb 9 23:34:11 2017 +0100 Create test case exercising a corner case of guard movement. commit e16c69a1af7c625f0f1f0b45f24cf335556f6382 Merge: 5b8cebe 3831c99 Author: Christian Wimmer Date: Fri Feb 10 11:48:34 2017 -0800 [GR-2796] More aggressive constant folding of useFrameWithoutBoxing. commit 0a5fd96a31bda0e0c3fcff10ae85facead7dd353 Author: Codrut Stancu Date: Fri Feb 10 11:38:50 2017 -0800 Illegal stream usage fix. commit 523bb8d670cf3eb8ab68b10b58f109d613aae5e4 Author: Christian Wimmer Date: Fri Feb 10 11:28:08 2017 -0800 Update javaCompliance of NFI project to 1.8 commit 3831c9902c57aaedbdde799b09e476bc5f263dd8 Author: Christian Wimmer Date: Fri Feb 10 10:55:56 2017 -0800 More aggressive constant folding of useFrameWithoutBoxing commit 5b8cebee8a66240869de0449d200280ac103b642 Merge: e1a8546 958d3ce Author: Vojin Jovanovic Date: Fri Feb 10 08:31:52 2017 -0800 [GR-2654] Adapt to jvmci-0.24 changes. commit 958d3ce16c527b3d1b9d6338cfa03a32c1518ca1 Author: Vojin Jovanovic Date: Fri Feb 10 16:34:17 2017 +0100 [ci] remove dev from jvmci commit c8db502996f6c2f44202b8ba0dc2dfd98d4b77b5 Author: Boris Spasojevic Date: Fri Feb 10 14:22:58 2017 +0100 Replaced the ThreadLocal with a map. commit 5ee7023084bca89ba3e662d3494d3d2bf997e9f9 Author: Doug Simon Date: Wed Feb 8 15:03:00 2017 +0100 update jvmci-0.24 reference commit 4e2a862c94a9b2e09e660471488251f7365c17ba Author: Doug Simon Date: Mon Feb 6 21:46:45 2017 +0100 broaden class file search for test with @Snippet methods commit f3d7bce9cc2b2ddbf4d5792a141c192c6202fad5 Author: Doug Simon Date: Sat Feb 4 11:12:05 2017 +0100 fixed internal field equivalence test commit 3e2893ba7c5c965748ec404bb32fc260836ef8c1 Author: Doug Simon Date: Fri Feb 3 12:00:04 2017 +0100 update required jvmci version commit 0dc4878d300e5aa6cde422afcf2f2fc6e81dedf1 Author: Doug Simon Date: Fri Feb 3 11:42:41 2017 +0100 adapt to removal of HotSpotVMConfigAccess.getTypeSize commit f67aaf13324e2eae6eaff4691d63f7c19e0fdfc3 Author: Doug Simon Date: Fri Feb 10 11:13:39 2017 +0100 update truffle import commit faa0ae2eaaaba6d4bba88489c615a157f6d4b1ec Author: Boris Spasojevic Date: Fri Feb 10 11:10:15 2017 +0100 Removed some accidental logging. commit 327307f15f8e06cbdf9a3687d633d9cff7bbe31b Author: Boris Spasojevic Date: Fri Feb 10 11:03:05 2017 +0100 Initial commit for Truffle inlining performance tests. commit e1a854653dea3c067320d4e6ea4bfcfc84b4eb72 Merge: 1960e3e 53425c3 Author: David Leopoldseder Date: Fri Feb 10 01:02:27 2017 -0800 [GR-1383] Add weekly G1GC benchmarks. commit 1960e3e2b45acac3766a26844739ab7e12f3638f Merge: 0584bce f8fcb50 Author: Codrut Stancu Date: Thu Feb 9 14:36:23 2017 -0800 [GR-2726] Refactor stream usage. commit f8fcb500150f40d3e52d5954a868f489842a7b64 Author: Codrut Stancu Date: Fri Feb 3 21:41:17 2017 -0800 Refactor stream usage. commit 0584bce96fddfe28fcbdae2f5f13855033a7d982 Merge: 0d9e753 0253981 Author: Christian Wimmer Date: Thu Feb 9 13:23:26 2017 -0800 [GR-2748] Allow forced re-initialization of debug environment. commit 025398147a1937ca08f98d70f63f7a3dffe1d4de Author: Christian Wimmer Date: Thu Feb 9 12:59:51 2017 -0800 Allow forced re-initialization of debug environment commit 0d9e7533a49564f341cb9db085ffea0295f72e33 Merge: 8b26660 c01850f Author: Thomas W?rthinger Date: Thu Feb 9 09:36:39 2017 -0800 [GR-2790] Do not drop guards on reads during read elimination. commit c01850fb004167b5f939d96a562f0bade3629f44 Author: Thomas W?rthinger Date: Thu Feb 9 18:02:04 2017 +0100 Do not drop guards on reads during read elimination. commit 8b26660b523198d1b7485957d845d67577b0ee41 Merge: 9d3fe02 2f73a38 Author: Boris Spasojevic Date: Thu Feb 9 06:17:24 2017 -0800 [GR-2632] Adding a test suite for Truffle Inlining. commit 2f73a38fc28c4bfffdcda7090bb66358e2550736 Merge: 3594f1e 9d3fe02 Author: Boris Spasojevic Date: Thu Feb 9 15:01:46 2017 +0100 Merge branch 'master' into tests/inlining commit 3594f1e44c5ac24f8e5f7e17909402eedf5df858 Author: Boris Spasojevic Date: Wed Feb 8 08:52:10 2017 +0100 Updated the usage of compiler options. commit 4f57bc029daa3b69c5310572155e34169c533422 Merge: 4bb7407 f72bfeb Author: Boris Spasojevic Date: Wed Feb 8 08:51:28 2017 +0100 Merge branch 'master' into tests/inlining commit 9d3fe02ee3f556c8efa7286e7cda6caaebae531a Merge: 757c76a 32e6808 Author: Thomas W?rthinger Date: Thu Feb 9 04:25:40 2017 -0800 [GR-2770] Set new PiStamp if new guarding condition proves more precise information. commit 32e6808116d7dd30c49bd74453f0debd3d2c1249 Author: Thomas W?rthinger Date: Thu Feb 9 11:49:21 2017 +0100 Set new PiStamp if new guarding condition proves more precise information. commit 757c76a40a46593b22f5baf0a211395d11739224 Merge: 4b3ccb1 675e604 Author: Thomas W?rthinger Date: Wed Feb 8 15:21:12 2017 -0800 [GR-2754] Use pi instead of guard for read access. commit 675e60477ab0fb3bfecfd9ba9c487706c638dd1d Author: Thomas W?rthinger Date: Wed Feb 8 17:25:13 2017 +0100 Fix dynamic object allocation snippet. commit 62442f5f48c70b41e5f4cd0e8a3d3ec7556d50ee Author: Thomas W?rthinger Date: Tue Feb 7 20:48:14 2017 +0100 Fix array store exception stub and Unsafe.allocateInstance intrinsification. commit 2ee3be6a47df9fc6a17a3ec27ab7da2d361afa04 Author: Thomas W?rthinger Date: Tue Feb 7 20:19:43 2017 +0100 Fix constant pool intrinsification to check for non-null. commit d0f3293c827dbe9eaba883c12f8de18e61e76658 Author: Thomas W?rthinger Date: Tue Feb 7 16:59:51 2017 +0100 Fix createClassCastException to have NonNullParameter. commit b82278f3bcc9d8de8b00329c5235a46e6a06aef7 Author: Thomas W?rthinger Date: Tue Feb 7 15:15:59 2017 +0100 Add assertion that FloatingReadNode inputs have non-null stamp. Fix violators. commit d077baf51b8bce9d4a3a9909b0764b8915a45a53 Author: Thomas W?rthinger Date: Tue Feb 7 13:35:31 2017 +0100 Reduce number of guarded nodes. commit bfb911da3ecae08d637d4e763bcd03ea2f49dd77 Author: Thomas W?rthinger Date: Mon Feb 6 16:48:53 2017 +0100 Modify WriteBarrierVerificationTest. commit 469811fcdf0ca13207a3b8559318cc4b3eaa147c Author: Thomas W?rthinger Date: Mon Feb 6 04:43:22 2017 +0100 Fix lowering phase to clear guards only when actually exiting the block. commit 03b3023b17e635e3e646d27832855523b1d24a61 Author: Thomas W?rthinger Date: Mon Feb 6 02:08:50 2017 +0100 Use guard instead of pi for array bounds check. Fix klass pointer null check. Simplify read node and clean up after graph building. commit 867d9def5d68605dd83600d47126e8ccfd65347a Author: Thomas W?rthinger Date: Sun Feb 5 20:18:42 2017 +0100 Change lowering for memory access nodes to use PiNode instead of directly guarding the access. commit 4b3ccb1cec1b4aec6474076656a6b82a8db4b619 Merge: 5e2d27f d47aa7d Author: Tom Rodriguez Date: Wed Feb 8 10:31:50 2017 -0800 [GR-2672] Properly handle 0 length strings in String.indexOf intrinsic. commit d47aa7dce4954cdab51223c2755c2167cc06dff7 Author: Tom Rodriguez Date: Mon Feb 6 17:40:31 2017 -0800 Properly handle 0 length strings in String.indexOf intrinsic commit 5e2d27fe53b72f958a536997ac8c9856dc66320a Merge: 33635af fb14123 Author: Doug Simon Date: Wed Feb 8 09:08:43 2017 -0800 [GR-2752] Fixed NPE in DebugValuesPrinter.printDebugValues. commit fb141236280a0241b6a4b5a620824cbed908e94c Author: Doug Simon Date: Wed Feb 8 17:44:16 2017 +0100 fixed NPE in DebugValuesPrinter.printDebugValues commit 33635afdc032789ee58b05ef9fd650cd8beddb79 Merge: 2a56c90 c943010 Author: Doug Simon Date: Wed Feb 8 08:06:06 2017 -0800 [GR-2736] Cleanup after GR-1979. commit 2a56c903712f457cc13b09da7f6b914ff7d0d2f4 Merge: 4176c41 20f5567 Author: David Leopoldseder Date: Wed Feb 8 05:22:20 2017 -0800 [GR-2724] OsrLockTest: Remove printing to stdout. commit 4176c41ea0785ad5875b96f0bbee78279733567f Merge: f72bfeb 9498f74 Author: Josef Eisl Date: Wed Feb 8 05:12:08 2017 -0800 [GR-2729] Reduce the number of TraceRA task in the CI. commit c94301037e76531fc191b1558ba289c4de4056b1 Author: Doug Simon Date: Wed Feb 8 11:58:53 2017 +0100 fixed comment to reflect code changes commit 0545cdc7a321b6d503624807f3c8550d9ebca20a Author: Doug Simon Date: Wed Feb 8 11:58:32 2017 +0100 removed accidentally added code commit 9498f7488df6a54852983c10bd864a9f8c26bdcc Author: Josef Eisl Date: Wed Feb 8 11:55:06 2017 +0100 [ci] update overlay revision commit 20f5567072248e713cba51914a0dcc8a85118bac Author: David Leopoldseder Date: Wed Feb 8 11:50:21 2017 +0100 [fix] OsrLockTest: Remove printing to stdout. commit b6971b5982996b6fda257ed56195313e4c672656 Author: Josef Eisl Date: Wed Feb 8 10:11:39 2017 +0100 [ci]: reduce TraceRA tasks commit f72bfeb6def8c41ae6426661f6d4aaead4cb94df Merge: 60b1818 9fa7538 Author: Doug Simon Date: Tue Feb 7 14:15:45 2017 -0800 [GR-1979] Replace static options with context based options. commit 9fa753893414aa6c86763d6606bea6a053ec5217 Author: Doug Simon Date: Tue Feb 7 20:49:52 2017 +0100 removed accidentally added code commit 9298ad801978e49c0c35b1e4def2e5bda3aba5c1 Merge: e3b1959 41d3dc9 Author: Doug Simon Date: Tue Feb 7 17:11:33 2017 +0100 Merge. commit e3b19596f886be9bad689f36014c20cac678b9f5 Author: Doug Simon Date: Tue Feb 7 17:03:32 2017 +0100 merge fixes commit 76d0454add6142ee6dd3e757f9ed4fd2ed00f081 Merge: 33b07c3 60b1818 Author: Doug Simon Date: Tue Feb 7 16:03:29 2017 +0100 Merge. commit 33b07c33d295af8b51164704abf277d459881445 Merge: 1aebf17 39ed5ab Author: Doug Simon Date: Tue Feb 7 15:31:12 2017 +0100 Merge branch 'master' into topic/non-static-options commit 4bb7407cd19cf8ba837e59542cde2196bb8f9ed1 Author: Boris Spasojevic Date: Tue Feb 7 14:33:50 2017 +0100 Removed a comment to please Checkstyle. commit aec325ead8a20227be53cc3dc62ba74c2d96fcc1 Author: Boris Spasojevic Date: Tue Feb 7 14:14:33 2017 +0100 Separate methods to build targets and decisions. commit edfa581f5a914238d99ec938dea1107aac6e54a5 Author: Boris Spasojevic Date: Tue Feb 7 11:08:59 2017 +0100 Fixed Checkstyle issues. commit 7c1889bac1f4c83e82e2b0781a7d22ee6491f3e5 Author: Boris Spasojevic Date: Tue Feb 7 10:50:28 2017 +0100 Removed unused builtins. commit 00cbe331a1d81bb1a4cb5ea31d9e0dfeb420149e Author: Boris Spasojevic Date: Tue Feb 7 10:18:20 2017 +0100 Deleted the SL based inline tests. commit cb02c7a667a90db66f1bb3ce70afd399ba4c5686 Author: Boris Spasojevic Date: Tue Feb 7 10:07:37 2017 +0100 Added a few more test inspired by the SL inlining tests. commit c9453c55f3360e3a867138d92fdd66b9bf93a530 Merge: 18f66f4 60b1818 Author: Boris Spasojevic Date: Tue Feb 7 09:11:06 2017 +0100 Merge branch 'master' into tests/inlining commit 60b1818bee085341e23569c44deb5454fbb509b4 Merge: 83a58e7 38e128b Author: Gilles Duboscq Date: Mon Feb 6 14:44:18 2017 -0800 [GR-2691] Refactored magic number to a named constant. commit 38e128bf668b5d2735222b8bdbcf6d6fee291714 Author: Doug Simon Date: Mon Feb 6 23:22:08 2017 +0100 fixed capitalization commit 83a58e75857f1ba333263df812d8815bd2161d16 Merge: dac323d e70fb16 Author: Tom Rodriguez Date: Mon Feb 6 10:55:34 2017 -0800 [GR-2528] Stubs hang onto intermediate compiler state forever. commit dac323d62da179252b59f0c6c6c7aafcacc07585 Merge: 39ed5ab b71e065 Author: Tom Rodriguez Date: Mon Feb 6 10:16:40 2017 -0800 [GR-2663] Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported(). commit 8e935d8dd9f5a301e89bcef488b9fdcfe56a60ce Author: Doug Simon Date: Mon Feb 6 19:03:44 2017 +0100 refactored magic number to a named constant commit 39ed5ab670fbb3493ed2907b3289934b5577d5c0 Merge: 34dc32c ca6b5e8 Author: Aleksandar Prokopec Date: Mon Feb 6 07:31:51 2017 -0800 [GR-2686] Rename extra.value.name field to metric.object. commit ca6b5e81d90cba476e833023ca152bf88d64ebad Author: Aleksandar Prokopec Date: Mon Feb 6 15:33:44 2017 +0100 Rename extra.value.name field to metric.object. commit 53425c33a3055d9614cbdfa7ca27ec08fe6cf180 Author: David Leopoldseder Date: Mon Feb 6 15:35:09 2017 +0100 [ci] Add g1gc weekly benchmarks. commit c26fc090a79f6a3a76ac64f55974ee0695877b79 Author: David Leopoldseder Date: Mon Feb 6 15:34:36 2017 +0100 [feature] Add g1gc jvm config. commit 18f66f4e9c59ec178ff87067ef0ca5f819267631 Author: Boris Spasojevic Date: Mon Feb 6 15:28:25 2017 +0100 Fixed the SuppressWarnings annotation. commit ff50da30517c0cbbf49ffc314790a8b54541886a Author: Boris Spasojevic Date: Mon Feb 6 15:10:07 2017 +0100 Merged target instructions in to one class and one map. commit d810f2c84799a0755b7d42512330f6212e0b65d7 Author: Boris Spasojevic Date: Mon Feb 6 14:50:42 2017 +0100 Making fields final and a bit of cleanup. commit f1a94d4559d4fcf4fb58887c99467831ee62b0c4 Author: Boris Spasojevic Date: Mon Feb 6 14:42:09 2017 +0100 Fixed a typo. commit 5943dec3a829d40906b2847327f746934201258a Author: Boris Spasojevic Date: Mon Feb 6 14:30:34 2017 +0100 Fixed the expected/actual order in assertions. commit 56d90e3085e76b47658a716687d6f391978fbab8 Author: Boris Spasojevic Date: Mon Feb 6 14:26:57 2017 +0100 Added a test to confirm inlining if size * number of call sites is close to limit. commit 0635641eec81a202a3b7a2bc0a36b745e4e51529 Author: Boris Spasojevic Date: Mon Feb 6 14:06:46 2017 +0100 Moving each period to end of line. commit b5b4ff98c59c57b8730063c5485995ec4598c7cd Author: Boris Spasojevic Date: Mon Feb 6 14:01:15 2017 +0100 Suppress unused warning for override scope. commit 34dc32ce647bb0732428854049b0c12cdbeab35a Merge: 82e9913 f725f5a Author: David Leopoldseder Date: Mon Feb 6 04:57:14 2017 -0800 [GR-1501] Support OSR with locks on the stack. commit f725f5a1a7d924098e9cca5ff485c0778a8a903e Author: David Leopoldseder Date: Wed Jan 25 17:59:28 2017 +0100 [feature] osr: support OSR with locks Make sure all monitor operations on the same MonitorIdNode are locking the same object when building the OSR entry point Remove liveness changes and handle final barrier in OSR compiled constructor commit 74ff69efc0b036d2cba0f43dec058dcbdc099eda Author: Boris Spasojevic Date: Mon Feb 6 10:45:20 2017 +0100 Making TruffleInliningTest an abstract class. commit 92741bedf4274fdab7f15da4ffcf9851bd377974 Author: Boris Spasojevic Date: Mon Feb 6 10:17:50 2017 +0100 Extract policy as a field to enable testing different policies. commit d73100773fb990fe5bcb4918c58def77a2cb75b2 Author: Boris Spasojevic Date: Mon Feb 6 10:05:39 2017 +0100 Upgraded and assert. commit 0e38631f3579a65137fcfd0420bc5c895a1ba694 Author: Boris Spasojevic Date: Mon Feb 6 10:03:00 2017 +0100 Test the ability to disable inlining by flag. commit 82e9913cb31b93399402e1b0d312a49b0556194d Merge: 7b3aa72 9dd0eed Author: Doug Simon Date: Sun Feb 5 12:57:57 2017 -0800 [GR-2664] Avoid unnecessary annotation reification. commit 9dd0eedd13f13086a92704b107176f78bd7e7b76 Author: Doug Simon Date: Sat Feb 4 17:17:55 2017 +0100 moved annotation retrieval to exception path commit b71e0657e760003a1aa101abdb9a167c5e963c79 Author: Igor Veresov Date: Mon Jan 30 23:23:13 2017 -0800 Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported() commit 7b3aa723c71960b1ae7d80463a5186826842b3f5 Merge: 6b198a9 51dc4ac Author: Roland Schatz Date: Fri Feb 3 07:16:06 2017 -0800 [GR-2657] Add support for Truffle on Aarch64 (#248). commit 0fdb0ff41c202c8a6934f1cf656174db79e88c62 Author: Boris Spasojevic Date: Fri Feb 3 15:02:09 2017 +0100 Cut dependency to GraalTest. commit c19ca721cf4552a7d2a5f391accbf25f2538a343 Author: Boris Spasojevic Date: Fri Feb 3 14:52:09 2017 +0100 Cut dependency to GraalTest. commit 4c631fd7ee149ee8b5c27d6e85d88e055a5c1c46 Author: Boris Spasojevic Date: Fri Feb 3 14:46:34 2017 +0100 Maximize Truffle Compilation Threshold. commit 29538a8bca0a0f5b18c2e8e37b7249947186087c Author: Boris Spasojevic Date: Fri Feb 3 14:35:45 2017 +0100 Separate tests (BasicTruffleInliningTest) and base class (TruffleInliningTest). commit 5bb09aa1700d5889915eaba5e30efb4439ba52fd Author: Boris Spasojevic Date: Fri Feb 3 12:32:03 2017 +0100 Removed duplicate test. commit 48f99a4f16d37b477ae9729638efc83735d5c56e Author: Boris Spasojevic Date: Fri Feb 3 12:30:24 2017 +0100 Use custom formatting when using the builder. commit 098998155b53eb27b8c0ab5b1d086b0423e0eb63 Author: Boris Spasojevic Date: Fri Feb 3 12:06:37 2017 +0100 Changed the default execution count for call sites to 0. commit 4b71ef3a9353a45e06ec77252494b13ccebc7a40 Author: Boris Spasojevic Date: Fri Feb 3 11:53:29 2017 +0100 Fixed some Checkstyle errors. commit 21d740d27beddb73d5fc3ed10c4576ddef4a00d5 Author: Boris Spasojevic Date: Fri Feb 3 11:47:54 2017 +0100 Removed a few unused variables. commit a158cfd4831521d7c6afa4d1886df6e330f7cbcd Author: Boris Spasojevic Date: Fri Feb 3 11:42:59 2017 +0100 Removed redundant cast. commit 6fc3f0d8db3098621039fb2b84378659f78b60c5 Author: Boris Spasojevic Date: Fri Feb 3 11:05:39 2017 +0100 Adding support to control frequency. commit 6b198a931fb9c3fd7509eb74f88b1416fec7b802 Merge: fd19afc ea4de57 Author: Boris Spasojevic Date: Fri Feb 3 00:04:02 2017 -0800 [GR-1552] Use 2 compilation threads by default, regardless of processor core count. commit 04888ab5cdaee42f249c2fdd32e9bb45db25eaf6 Author: Boris Spasojevic Date: Fri Feb 3 08:53:54 2017 +0100 Removed build method with argument. commit fd19afc72851dc6b6f1a13bf0dd77b3f9c4ccc9f Merge: eeead7d eb19756 Author: Kevin Menard Date: Thu Feb 2 16:51:19 2017 -0800 [GR-2168] Update to latest ci-overlays. commit 51dc4ac45f881a628ae34425c591a528846d4b07 Merge: 39124f8 eeead7d Author: theRealAph Date: Thu Feb 2 18:20:46 2017 +0000 Merge remote-tracking branch 'master/master' into aarch64-truffle commit 39124f80d8de1aebd3c6b7770c637dd93dbd4159 Author: theRealAph Date: Thu Feb 2 17:14:12 2017 +0000 Chackstyle fix. commit e545e0dbbbfaf582ad33b4c12be9f25084f2e0a2 Author: theRealAph Date: Thu Feb 2 17:03:31 2017 +0000 Minor fix for dependencies and tests. commit eb19756edb9f74ff4387e09295149cab799b459a Author: Kevin Menard Date: Thu Feb 2 11:17:13 2017 -0500 Update to latest ci-overlays. commit aa7b73b04ba966011dd726575cedf5d39cbf9607 Author: Boris Spasojevic Date: Thu Feb 2 15:28:28 2017 +0100 Removed duplicate test and renamed another. commit 410784bd3f6f98d0a4d1f8e4f43b5252f1e7e92c Author: Boris Spasojevic Date: Thu Feb 2 15:23:30 2017 +0100 A few more tests testing deep and wide call graphs. commit 75d71f23c4f23d944241ba30468304918667cc1c Author: Boris Spasojevic Date: Thu Feb 2 14:27:11 2017 +0100 Removed unused frame slot. commit 09d0aac816d6aad1c02b85a9159a7a4cf9fa47fd Author: Boris Spasojevic Date: Thu Feb 2 14:15:03 2017 +0100 Added testIndirectRecursiveInline. commit eeead7d36a3d3559a222c27ad25b8b6ca18f8ac3 Merge: 9f6de20 fb7bc56 Author: Doug Simon Date: Thu Feb 2 05:14:11 2017 -0800 [GR-2599] Revert back to jvmci-0.23 for CI. commit c8e9a6f65cb6693433d78ae87bcb085c66d3016c Author: Boris Spasojevic Date: Thu Feb 2 13:56:03 2017 +0100 Introducing the TruffleInliningTest class. commit fb7bc5684af90202ab79eaf33408cdfe71e0f9d6 Author: Doug Simon Date: Wed Feb 1 12:38:41 2017 +0100 revert back to jvmci-0.23 for CI commit 9f6de2086654be3138018ae143cc79a0346b7566 Merge: 948bdb1 97bb567 Author: David Leopoldseder Date: Thu Feb 2 04:46:42 2017 -0800 [GR-2394] Schedule used to verify a valid graph should not mutate the graph. commit 948bdb10689ecd5be7cc517a65ab7ef865ec6fd4 Merge: f60c2af fb1573c Author: David Leopoldseder Date: Thu Feb 2 03:54:11 2017 -0800 [GR-2626] Block iteration compilation alarm bailout must be permanent. commit 97bb567bfa8029a8f5504a76e614e25df423dc0c Author: David Leopoldseder Date: Wed Jan 18 17:08:31 2017 +0100 [fix] GraphOrder: Schedule used to verify a valid graph should not mutate the graph commit fb1573c4fc181986f4b2e348c2c6c39d83083401 Author: David Leopoldseder Date: Thu Feb 2 11:27:09 2017 +0100 [fix] Block iteration compilation alarm bailout must be permanent. commit f60c2af4731aade509b1c199932849d53548b40e Merge: 2510c49 4698fcd Author: Aleksandar Prokopec Date: Wed Feb 1 13:54:41 2017 -0800 [GR-2574] Add instructions for branch instrumentation. commit 4698fcdc57eafc8def6083dfbad023c9c5483b17 Author: Aleksandar Prokopec Date: Mon Jan 30 15:29:06 2017 +0100 Add instructions for branch instrumentation. commit 2510c49fe053e6325b615b0b73d3ba9cba691f46 Merge: 0890343 3a13148 Author: Tom Rodriguez Date: Wed Feb 1 12:22:35 2017 -0800 [GR-2620] Add high level optimization for String.indexOf. commit 3a13148bb48b5ab6990fe91bf74fa7cc4d0f7433 Author: Tom Rodriguez Date: Thu Dec 8 12:04:23 2016 -0800 Add high level optimization for String.indexOf on constant strings commit 0890343e16fc45b4e8251418958f02eb1e0fbf05 Merge: ce50d02 cf66d51 Author: David Leopoldseder Date: Wed Feb 1 09:53:17 2017 -0800 [GR-2600] ControlFlowGraph visitDominatorTreeDeferLoopExits deferres exits for invalid loops. commit 9aeaff2b6cb62eb9b4d01c46ee366bb584e1b2a1 Merge: 99e2248 ce50d02 Author: theRealAph Date: Wed Feb 1 16:57:08 2017 +0000 Merge remote-tracking branch 'master/master' into aarch64-truffle Conflicts: graal/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java graal/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java commit cf66d51211bb2f06fc2064b833790c886b87e804 Author: David Leopoldseder Date: Wed Feb 1 13:06:50 2017 +0100 [fix] ControlFlowGraph: Fix deferred exit traversal deferred loop computation. commit ce50d0238efb67a2fdf939678fcec2f1b76a7e9c Merge: 0c9091a 2f5ed18 Author: David Leopoldseder Date: Wed Feb 1 06:38:23 2017 -0800 [GR-2605] Revert DynamicPiNode removal. commit 2f5ed181f99699394a7721509f358cdbb0218c01 Author: David Leopoldseder Date: Wed Feb 1 14:10:22 2017 +0100 Revert "Remove DynamicPiNode (PiNode if beneficial should be inserted on demand)". commit ea4de5792dd9ca66020677210e410cb99ca7dd32 Author: Boris Spasojevic Date: Wed Feb 1 09:13:46 2017 +0100 Use 2 compilation threads if there are 4 or more available processors. commit 0c9091a5a9a5bd3d4862c7df630244e19cab368d Merge: a2c9f4d 8be794e Author: Thomas W?rthinger Date: Tue Jan 31 21:20:01 2017 -0800 [GR-2247] Remove unused parts of the code (salver, instrumentation, Graal deopt stubs). commit 8be794e2d7740d070cea792e7aeeebd2cd1ff3fc Author: Thomas W?rthinger Date: Tue Jan 31 17:21:43 2017 +0100 Remove DynamicPiNode (PiNode if beneficial should be inserted on demand). Reduce usage patterns of GuardedValueNode to only without stamp and use PiNode in other cases. commit d7ea41c93a15946e0f096b591b530eb5667698e4 Author: Thomas W?rthinger Date: Mon Jan 30 20:22:24 2017 +0100 Remove unused Graal stubs for deoptimization. Remove unused node intrinsics. commit 5028bbd39074609dfcfd4943a67b829677f369bb Author: Thomas W?rthinger Date: Mon Jan 30 19:28:06 2017 +0100 Move SnippetAnchorNode from HotSpot-specific project to general project. commit 7d281217e61a9b7621179c102fa2b5cd500d2568 Author: Thomas W?rthinger Date: Mon Jan 30 19:09:49 2017 +0100 Temporarily remove InstrumentationPhase and associated functionality. commit 35f0fcef088c323a89fa982c97074147b024510a Author: Thomas W?rthinger Date: Mon Jan 30 18:31:35 2017 +0100 General clean up. Remove unused salver project. commit a2c9f4dabd2f1dca73727f7fa08e56d45221c8a2 Merge: 36d1fc5 18ee8e8 Author: Doug Simon Date: Tue Jan 31 10:35:16 2017 -0800 [GR-2595] Fix mx version used in CI. commit 36d1fc586c855109c41d4acc4d3d917871f454c4 Merge: ffe25b8 5fa9408 Author: Doug Simon Date: Tue Jan 31 09:03:05 2017 -0800 [GR-2593] Cache methods for lookup in ClassfileBytecodeProvider. commit ffe25b87d5f22d9b2f7d351f5775f8d9e75e20e4 Merge: 9d75033 4b68038 Author: Doug Simon Date: Tue Jan 31 08:52:04 2017 -0800 [GR-2440] Removed reference to Method::_jfr_towrite. commit 18ee8e8933c0e19bff72ef07e69e2a952bac1ca4 Author: Doug Simon Date: Tue Jan 31 16:50:25 2017 +0100 fix mx used in CI to a specific commit commit 4b68038ceb3c72d2f8670a76e6a69f3643900da1 Author: Doug Simon Date: Fri Jan 20 14:50:41 2017 +0100 Method::_jfr_towrite was removed by JDK-8171960 commit 5fa9408ff9afe596e45a08ead284a5c2f317059a Author: Doug Simon Date: Tue Jan 31 16:22:44 2017 +0100 cache methods for lookup in ClassfileBytecodeProvider commit 9d7503325342a3570eda5cbff22c469ea344d991 Merge: 62cbd52 8011c0f Author: Doug Simon Date: Tue Jan 31 06:06:48 2017 -0800 [GR-2545] Add fast path for inlining trivial accessors. commit 62cbd528cca628739a1a77c13d1fe453a076c248 Merge: 6224cc5 f058bfa Author: Boris Spasojevic Date: Tue Jan 31 05:14:43 2017 -0800 [GR-2444] Rewrite SL Truffle tests to not require background compilation. commit 8011c0fa6da86c4b5114b9da619606f2c188fa0c Author: Doug Simon Date: Thu Jan 26 23:39:11 2017 +0100 added BytecodeParser fast path for inlining accessors commit 6224cc5e406256ea92fe619f16353946eeb77bcc Merge: ca81523 4f86a9c Author: Tom Rodriguez Date: Mon Jan 30 17:29:58 2017 -0800 [GR-2580] Add missing ValueNode import for generated match rules. commit e70fb16e4b76a6add5b6984fd3cf5cf3d45844a4 Author: Tom Rodriguez Date: Tue Jan 24 11:43:22 2017 -0800 Stubs hang onto intermediate compiler state forever commit 4f86a9c2d968880f1286af7f3d58ca3383531df0 Author: Tom Rodriguez Date: Mon Jan 30 12:12:47 2017 -0800 Add missing ValueNode import for generated match rules commit 41d3dc962874742e925bb051f508f74e26ce07ce Author: Christian Wimmer Date: Mon Jan 30 16:55:46 2017 -0800 Do not use GLOBAL option values in debug and graph dumping code commit f058bfa2c51da5b88733a44d1b8f4522e343525c Author: Boris Spasojevic Date: Mon Jan 30 17:07:50 2017 +0100 Removed waitForCompilation from callUntilOptimized. commit 7e7c9f24a7ec6047b4f52531305bbad519b5efc5 Author: Boris Spasojevic Date: Mon Jan 30 17:06:59 2017 +0100 Removed waitForOptimization from SL files. commit c05c3c291185142b2c4fbd56933ec71f3d9e0700 Author: Boris Spasojevic Date: Mon Jan 30 17:06:21 2017 +0100 SLTruffleGraalTestSuite extends TestWithSynchronousCompiling. commit ca815239f932dd28e0b8a32fbef8844b2489bc00 Merge: d94ca56 cb2c76d Author: Aleksandar Prokopec Date: Mon Jan 30 06:20:58 2017 -0800 [GR-2135] Add profiling for @TruffleBoundary-annotated methods. commit cb2c76d57e4b213ade8451f3c2a99ce9a82dff5f Author: Aleksandar Prokopec Date: Mon Jan 30 14:50:09 2017 +0100 Prune and merge instrumentation options, and make instrumentation filters all by default. commit d94ca5682413eb7fa1292247e2bd2a7e33ac282a Merge: 177563e 0051351 Author: Christian Humer Date: Mon Jan 30 05:00:31 2017 -0800 [GR-1766] Remove callnode frame argument. commit 005135140de06ff99f8479f1789073108e865c62 Author: Christian Humer Date: Mon Jan 30 13:39:56 2017 +0100 Remove frame argument from call node methods. commit 99e224842e06e6f0db8f94c9e501d44b8a0fb119 Author: theRealAph Date: Mon Jan 30 12:03:37 2017 +0000 Fix dependencies for AArch64 truffle. commit 177563e51882bc2a676c6c9d298325af1baf6f4b Merge: 5e0015e 6c10037 Author: Felix Kaser Date: Mon Jan 30 02:58:23 2017 -0800 [GR-2572] Remove git for darwin build. commit 7d888f7189ab3eca4cedb6ff9666db8284185d7b Author: Boris Spasojevic Date: Mon Jan 30 11:14:58 2017 +0100 Use 2 compilation threads by default, regardless of processor core count. commit 5e0015ea87fe92c527da02967e2b00d4947ca624 Merge: f137082 3b1641f Author: Boris Spasojevic Date: Sat Jan 28 02:31:58 2017 -0800 [GR-2444] Rewrite Truffle tests to not require background compilation. commit 06f33371f40f1ccb18d8da07c09a45586f32438e Author: Christian Wimmer Date: Fri Jan 27 19:40:07 2017 -0800 Remove StableOptionKey, OptionKey.setValue commit 4e886be3270d02e280c028c8c580735e58f3a69f Author: Christian Wimmer Date: Fri Jan 27 18:15:43 2017 -0800 Truffle must constant fold flag UseFrameWithoutBoxing during partial evaluation commit e0475d007d5521b1667b594c7a90a6bd62727bef Author: Christian Wimmer Date: Fri Jan 27 18:15:00 2017 -0800 Use standard way to check for disallowed null argument commit f137082e685e3827cb498cf16aa04d43092042d0 Merge: dab40f5 7b6931d Author: Thomas W?rthinger Date: Fri Jan 27 09:18:20 2017 -0800 [GR-2506] Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. commit dab40f5772d149ac62f39cc476a52cdd58ab5366 Merge: 2ba2150 f35e9a4 Author: Gilles Duboscq Date: Fri Jan 27 08:35:41 2017 -0800 [GR-2362] Skip unnecessary Pi nodes when lowering array length. commit 7b6931dd5e3f90f44139350ad3777b722245f4dc Author: Thomas W?rthinger Date: Fri Jan 27 16:12:05 2017 +0100 Add new test cases to IntegerStampTest and fix a missing canonicalization when creating IntegerStamps. commit f35e9a49e15ef59b9c3795f4918ba724a093e069 Author: Gilles Duboscq Date: Thu Jan 26 18:18:29 2017 +0100 [GR-2362] Skip unnecessary Pis when lowering array length This should help ensure that various array length of the same array common-out. Added `GraphUtil.skipPiWhileNonNull` Also factor out the code used to create array length reads in `DefaultJavaLoweringProvider`. commit 3b1641f4c29590b93468c078a83d00b5ef973413 Author: Boris Spasojevic Date: Fri Jan 27 15:41:26 2017 +0100 Removed useless throws. commit 0abbe7d37d5ab491b5bcf98e1b53a5daf6f9a5f8 Author: Boris Spasojevic Date: Fri Jan 27 15:29:18 2017 +0100 Fixed imports. commit 6c100373d5561b010ca12c07827a1c68c1f8761f Author: Felix Kaser Date: Fri Jan 27 06:01:55 2017 -0800 remove git for darwin build it's installed system wide already commit 35018a6416c5ac6051698f504199daf714e6c222 Author: Boris Spasojevic Date: Fri Jan 27 14:58:36 2017 +0100 Fixed testOuterInvalidationTriggersOSR to work when not using background compilation. commit 4f4f34e1c229937d97e9c45e42f45a351d5f0e96 Author: Aleksandar Prokopec Date: Thu Jan 26 16:20:18 2017 +0100 Add InstrumentTruffleBoundariesPhase. commit f97dd08f6ac358f0c1bf01a4a20ce34a715d3776 Author: Aleksandar Prokopec Date: Thu Jan 26 13:08:06 2017 +0100 Refactor common instrumentation functionality from branch instrumentation. commit 2ba21503435fcf890335470acae67f6f2574f0cd Merge: 6415e5c c6a1f0d Author: Codrut Stancu Date: Thu Jan 26 14:01:32 2017 -0800 [GR-2544] Unsafe access of edges should use wrappers in Edges class. commit 6415e5ccc3c8a506290578f35e2d9d34ae4f98fc Merge: 70e8985 eae4712 Author: Doug Simon Date: Thu Jan 26 13:14:21 2017 -0800 [GR-2536] Reduce dynamic usage of ResolvedJavaField.getName. commit bf6ade69b8c4662e878e3b806e60837d0398fcbd Author: Thomas W?rthinger Date: Thu Jan 26 22:07:11 2017 +0100 Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. commit eae4712e581390fa1aa8691863ac6fc4d816c495 Author: Doug Simon Date: Thu Jan 26 15:13:44 2017 +0100 replace HashMap with EconomicMap commit 45e7fbd23f64689e2d1c0f633569cd296d4cb12f Author: Doug Simon Date: Thu Jan 26 14:30:12 2017 +0100 reduce dynamic usage of ResolvedJavaField.getName() commit c6a1f0d2ea034a8360badab8adb6ea8f54fdca0b Author: Codrut Stancu Date: Thu Jan 26 12:27:45 2017 -0800 [GR-2544] Unsafe access of edges should use wrappers in Edges.class. commit 70e8985f0857ae07b8b50d8434079ec3a89daaf6 Merge: c1ed814 6d21cb6 Author: Gilles Duboscq Date: Thu Jan 26 08:58:21 2017 -0800 [feature] Allows to force `ANY_LOCATION` for a truffle unsafe store plugin commit 6d21cb6c60d67b484f3de98d5a5628571bae2430 Author: Gilles Duboscq Date: Fri Jan 13 16:34:55 2017 +0100 [GR-2482] Allow to force `ANY_LOCATION` for a truffle unsafe store plugin Adds a flag to `UnsafeStore` to avoid canonicalizations that would lose `ANY_LOCATION`. Truffle unsafe store plugins can have a constant that represents this forced `ANY_LOCATION`. `null` still represents the non-forced `ANY_LOCATION`. commit c1ed814e1b0b943c10a4ed9a63a79282cd35b8a9 Merge: 4b8d2f7 e0339c2 Author: Stefan Anzinger Date: Thu Jan 26 06:16:14 2017 -0800 [GR-2534] Use AllocatableValue in SPARC LIR instructions whenever possible. commit 4b8d2f7ce7f624cc31a5d444254587f7e2bbd70a Merge: b416c07 eef3827 Author: Lukas Stadler Date: Thu Jan 26 06:12:49 2017 -0800 [GR-2516] Cleanups/documentation in PEA commit eef3827797d57377140057967235d1f26d4cfc66 Author: Lukas Stadler Date: Wed Jan 25 17:36:03 2017 +0100 cleanups in PEA commit 5e7e6510c50e09356e0f22dc38210fc6083dce63 Author: Lukas Stadler Date: Wed Jan 25 17:03:45 2017 +0100 use ?null? to represent default values in VirtualObjectState commit e0339c22bbceffefb58ed4ad1a61a3e7edbe1244 Author: Stefan Anzinger Date: Thu Jan 26 13:30:34 2017 +0100 [fix] Use AllocatableValue in SPARC LIR instructions whenever possible. commit b416c07f65d0db9548d77d85b8372b6ad0c7055c Merge: 4159a17 1229053 Author: Doug Simon Date: Thu Jan 26 02:23:21 2017 -0800 [GR-1984] CompilerWatchdog: Swallow VMErrors. commit 4159a1753cec341089ca35fc1d56dab63d3c355e Merge: 23acd8b c3b322e Author: Doug Simon Date: Thu Jan 26 02:21:37 2017 -0800 [GR-2407] CompilationWatchDog: Disable per default. commit 1229053e031a7eff870a9900e31464a79e3d09aa Author: David Leopoldseder Date: Thu Jan 26 10:11:36 2017 +0100 [fix] CompilerWatchdog: Swallow VMErrors. commit c3b322e8efd55aae8b278dcc9a5589403abee148 Author: David Leopoldseder Date: Thu Jan 26 10:07:10 2017 +0100 [feature] Bootstrap: Enabled CompilationWatchDog explicitly during bootstrap. commit 589e1b50f588e2449ce57812fab0fb45832dddbe Author: David Leopoldseder Date: Mon Jan 23 17:32:26 2017 +0100 [fix] CompilationWatchDog: Disable per default & increase trace interval and number of fatal stack traces. commit 23acd8b195a3ccbe8ef080c4690567afc9b1fe8c Merge: 99dcac4 f2f59b1 Author: Doug Simon Date: Wed Jan 25 14:45:13 2017 -0800 [GR-2462] [GitHub PR #245] Avoid zero-shift with AOT. commit 99dcac46adc51bbeb3a7ea00c47a1e66bad5e7a2 Merge: 71af6bb 1f884e8 Author: Doug Simon Date: Wed Jan 25 14:36:06 2017 -0800 [GR-2526] Fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found. commit f2f59b1485dd4968a33f3965a71cb448ea65e6f4 Author: Igor Veresov Date: Sat Jan 21 11:31:06 2017 +0300 Avoid zero-shift compressed oops for AOT code commit 1f884e81922e5d9c5c690c3866a50b47c6b65b05 Author: Doug Simon Date: Wed Jan 25 22:27:16 2017 +0100 fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found commit cc9b186f28d1d282cafbb40829218c3446560f13 Author: theRealAph Date: Wed Jan 25 18:13:50 2017 +0000 Enable AArch64 native calls for truffle. commit 71af6bb834013817a6057f8517fd27923d7f7b07 Merge: 69dcf99 3b5290f Author: Vojin Jovanovic Date: Wed Jan 25 09:24:14 2017 -0800 [GR-2498] collect SVM compilation logs commit 3b5290f72bf1105a116339ca15e65311eda2ea11 Author: Vojin Jovanovic Date: Wed Jan 25 17:51:47 2017 +0100 [doc] explain python for intellij commit 96d56e5fc2d3b50f738edb26f5bc528d89aa8731 Author: Vojin Jovanovic Date: Wed Jan 25 16:40:56 2017 +0100 [ci] collect SVM compilation logs commit 2f82f2eea5d72707f2201217f1e4c01b3037dc32 Author: Boris Spasojevic Date: Wed Jan 25 16:47:56 2017 +0100 OptimizedOSRLoopNodeTest extends TestWithSynchronousCompiling. Ignore testOSRFrameSlotChangeDuringOSR. commit 69dcf99730429dd235bbc33bab3e88c58f1b6fd4 Merge: 92e1f5e 0a7b8f2 Author: Aleksandar Prokopec Date: Wed Jan 25 06:06:38 2017 -0800 [GR-2477] Further improve stability of DaCapo measurements commit dc80887f4c8e6f1b04e42e2eb51acfbc8f4bb088 Author: Boris Spasojevic Date: Wed Jan 25 14:13:48 2017 +0100 Updated OptimizedCallTargetTest to sublcass TestWithSynchronousCompiling. commit 1a39724354ee9add1aa72bb03808b5e05c71b4a5 Author: Boris Spasojevic Date: Wed Jan 25 14:11:46 2017 +0100 Updated ExplodeLoopBlockDuplicationTest to subclass TestWithSynchronousCompiling. commit de63397eb82668c07484a4a3f10fb0974d4968ca Author: Boris Spasojevic Date: Wed Jan 25 14:09:51 2017 +0100 Introducing TestWithSynchronousCompiling. This class serves as a superclass for Truffle tests that require synchronous (i.e. no background) compilation. commit 0a7b8f218b6d242ad7beea18151a78d6b1be2cee Author: Aleksandar Prokopec Date: Wed Jan 25 11:03:53 2017 +0100 Increase the number of warmup runs used for averaging the result. commit 92e1f5ed5ac6014ece7cad342e5bc59e4c6f162c Merge: 576bb34 0d8833b Author: Thomas W?rthinger Date: Tue Jan 24 12:22:46 2017 -0800 [GR-2502] PEA object identity improvement at merges and loops. commit 0d8833be1692c5a7165c575b92d5ea73cc2d15fc Author: Lukas Stadler Date: Tue Aug 9 15:02:02 2016 +0200 more extensive checks to determine whether object identity survives in PartialEscapeClosure commit e7bdeb7cce18027db9dfbc11b556a8b117a379e8 Author: Lukas Stadler Date: Tue Aug 9 15:00:39 2016 +0200 remove broken (and unused) Arrays.asList call in PartialEscapeClosure commit 576bb34268ff4215c7cfa529407182411478ea7f Merge: 3654604 9cef763 Author: Aleksandar Prokopec Date: Tue Jan 24 06:04:35 2017 -0800 [GR-2477] Check if benchmark warmup iterations exist before computing the average. commit 9cef76322fa9aa069586c0aae65afbb349b1d4b2 Author: Aleksandar Prokopec Date: Tue Jan 24 14:38:47 2017 +0100 Check if benchmark warmup iterations exist before computing the average. commit 3654604bf93ddb89f5e6aab5662b6c4455218362 Merge: faae2c4 0a78eaf Author: Aleksandar Prokopec Date: Tue Jan 24 04:38:48 2017 -0800 [GR-2483] Average out latest results on Renaissance. commit 0a78eaf353fc54a2f1cd1218852c44d7069f3b97 Merge: c690a0e faae2c4 Author: Aleksandar Prokopec Date: Tue Jan 24 12:26:02 2017 +0100 Merge branch 'master' into fix/average-renaissance commit c690a0eabdc319077390b1e888b9d62fc76ecf66 Author: Aleksandar Prokopec Date: Mon Jan 23 18:41:21 2017 +0100 Average out latest results on Renaissance. commit 1aebf17977a721d5dfa61eaa3d7a44a8ad478b5d Merge: 264d4f8 faae2c4 Author: Doug Simon Date: Tue Jan 24 12:03:18 2017 +0100 Merge branch 'master' into topic/non-static-options commit 264d4f83dcd8eaee2d0363ac932000efd43c94c5 Merge: 579d29b a9e612b Author: Doug Simon Date: Tue Jan 24 00:57:03 2017 +0100 Merge branch 'master' into topic/non-static-options commit faae2c42c7a6f8c3c05a3f1433f5fab3635676f1 Merge: 7ea0a75 20ad9a0 Author: Thomas W?rthinger Date: Mon Jan 23 19:37:37 2017 -0800 [GR-2450] Do not assume array length input to AbstractNewArrayNode to be >= 0. commit 7ea0a7503d37ba8b375a4c2c83f239b0e82282ef Merge: 072a47f 1c8c5ec Author: Thomas W?rthinger Date: Mon Jan 23 19:24:18 2017 -0800 [GR-2456] New approach to dominator conditional elimination phase. commit 1c8c5ec8da477187f372cfb514702651b667b5be Author: Thomas W?rthinger Date: Tue Jan 24 02:19:16 2017 +0100 Reduce usage of java.util.ArrayList for dominator tree data structure and in new conditional elimination phase. commit ad2fd50cb65f386708562eb242516374de25a1ca Author: Thomas W?rthinger Date: Mon Jan 23 00:17:48 2017 +0100 New approach to dominator conditional elimination phase. commit 072a47fc236b94d39f1945b00ef8ee54a82c4255 Merge: a9e612b c5cd1e2 Author: Tom Rodriguez Date: Mon Jan 23 16:20:46 2017 -0800 [GR-2431] Use NodeEventScope for tracking inlining graph changes commit c5cd1e22d66a2aa6d248b1004874a9f14fa0a4e5 Author: Tom Rodriguez Date: Mon Dec 12 12:26:48 2016 -0800 Simplify tracking of nodes changed by inlining commit 579d29bf2400b007584f1e298f4a3771e5b412d2 Author: Doug Simon Date: Mon Jan 23 13:54:03 2017 +0100 EconomicMap may never called hashCode on keys commit a9e612b96b51d54583cc70e5c0fb38a863e6f42b Merge: 83c63c7 8747569 Author: Thomas W?rthinger Date: Mon Jan 23 14:12:12 2017 -0800 [GR-2465] Improve EconomicMap, EconomicSet, and Pair utilities. commit 8747569833141f7a9248d72cc3a545301dcb179a Author: Thomas W?rthinger Date: Mon Jan 23 22:31:20 2017 +0100 Add more utilities to EconomicMap interface. Change ImmutableMapCursor to UnmodifiableMapCursor. commit 28321d92d862502e5cbe60ae2e2878449d8d0e12 Author: Thomas W?rthinger Date: Mon Jan 23 21:59:19 2017 +0100 Improve EconomicMap, EconomicSet, and Pair utilities. commit 83c63c73d68bebb7ea76efdc2632747234b5aff5 Merge: 21a2b8a 2067d07 Author: Aleksandar Prokopec Date: Mon Jan 23 09:14:34 2017 -0800 [GR-2477] Compute average of last 20% of iterations reported in DaCapo. commit 2067d07a18ad6ffa4b4f628476c6d0440de39aeb Author: Aleksandar Prokopec Date: Mon Jan 23 15:08:03 2017 +0100 [fix] Compute average of last 20% of iterations reported in DaCapo. commit 1d3d549be6e359eb6867b394245d24c134f2bdea Merge: 6e8740d 21a2b8a Author: Doug Simon Date: Mon Jan 23 13:23:23 2017 +0100 Merge branch 'master' into topic/non-static-options commit 6e8740de791654f665d89e2bece0a568bfa53038 Author: Doug Simon Date: Mon Jan 23 12:43:42 2017 +0100 merge fixes commit 21a2b8ad61d7443fac74efa87c37b924680eb9ce Merge: 88ecb57 de50f19 Author: Doug Simon Date: Mon Jan 23 03:57:34 2017 -0800 [GR-2455] Update truffle import. commit 6dcd2f08eb1573f4c9851348eccd5c27fe5f23c6 Merge: bbb7350 d993012 Author: Doug Simon Date: Sun Jan 22 22:57:10 2017 +0100 Merge branch 'master' into topic/non-static-options commit 88ecb5768b0bdb38e6585ecb54cf3b71f2979de7 Merge: 3f09e66 1c826a3 Author: Thomas W?rthinger Date: Sun Jan 22 06:15:19 2017 -0800 [GR-2126] Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. commit 1c826a3511737a5a1f22c70dc2b4f65cfb5a2c42 Author: Thomas W?rthinger Date: Fri Jan 20 22:30:15 2017 +0100 Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. commit 3f09e66b48db47cc01f3a158a61f0c40ada65c4a Merge: d993012 b5ea038 Author: Doug Simon Date: Sun Jan 22 05:34:31 2017 -0800 [GR-2454] Remove invalid DebugTimer tests. commit de50f19e96e2f4d6d3de2cf79e3239a228866e73 Author: Doug Simon Date: Sun Jan 22 14:17:40 2017 +0100 update truffle import commit b5ea038574159a30428bc74d7368a8157bf5ed7e Author: Doug Simon Date: Sun Jan 22 14:11:17 2017 +0100 remove invalid DebugTimer tests commit d99301247326a30f6ddf1d7658ef5e6edc873c1b Merge: d0a2800 c2d5d89 Author: Thomas W?rthinger Date: Sat Jan 21 05:24:12 2017 -0800 [GR-2390] Avoid need for placeholder variable as they represent mutable static state. commit c2d5d89bc9e504c2a4a23f0116bfb351e5ea16c9 Author: Thomas W?rthinger Date: Sat Jan 21 03:32:19 2017 +0100 Change the API of PhiNode#singleValue and PhiNode#singleBackValue to avoid need for marker return value. commit bc68ed9567c049ba524fa53fd887ea0478953f98 Author: Thomas W?rthinger Date: Sat Jan 21 03:11:29 2017 +0100 Remove placeholder node Graph#PLACE_HOLDER. commit 20ad9a04b287a78809ee76d96ebf622ce2157869 Author: Thomas W?rthinger Date: Sat Jan 21 02:46:05 2017 +0100 Do not assume array length input to AbstractNewArrayNode to be >= 0. commit d0a280059b27efaa8df6007a183031f64ecae476 Merge: c295f9b 127a87a Author: Thomas W?rthinger Date: Fri Jan 20 13:36:31 2017 -0800 [GR-2387] Allow metaspace constants to inline into compares. commit c295f9b498e327be9ffa418936d03d7306c4fc67 Merge: 30498e7 b48ced9 Author: Thomas W?rthinger Date: Fri Jan 20 12:23:21 2017 -0800 [GR-2427] Remove Graph#addWithoutUniqueWithInputs. commit 30498e77c6d83df754f074e0bedb8c5502b7b2b5 Merge: dca1fda a9410de Author: Christian Humer Date: Fri Jan 20 09:12:08 2017 -0800 Increase timeout for compilations in OptimizedCallTargetTest. commit a9410decba0097ad45d289ad032ca6df14c39b12 Author: Christian Humer Date: Fri Jan 20 17:49:40 2017 +0100 Increase timeout for compilations in OptimizedCallTargetTest. commit dca1fda18c83e349b9f2a40b231e17ec342a8af0 Merge: f30952d 6879b7f Author: Thomas W?rthinger Date: Fri Jan 20 08:35:01 2017 -0800 [GR-2395] Refactor RecursiveInliningTest. commit b48ced9826d90b0448e7f14bf1f23b4a94a9862b Author: Thomas W?rthinger Date: Fri Jan 20 16:48:54 2017 +0100 Remove Graph#addWithoutUniqueWithInputs. Support using Graph#addOrUniqueWithInputs in the PEA phase. commit f30952da4636c2f7b5a486b4701025e9abe6cf53 Merge: 31fc791 9e33cfa Author: Boris Spasojevic Date: Fri Jan 20 03:29:34 2017 -0800 [GR-756] Disable Truffle inlining when flag TruffleFunctionInlining is set to false. commit 31fc79174d022e2fe5dbccea06655f25bffdcd76 Merge: 922be31 8b5e20c Author: David Leopoldseder Date: Fri Jan 20 02:55:12 2017 -0800 [GR-2414] Refactor tests to avoid redundant unsafe initialization. commit 127a87a46c5d12398ca43ea99ef759b5869ae09f Author: Tom Rodriguez Date: Tue Jan 17 23:41:51 2017 -0800 allow metaspace constants to inline into compares commit 922be31e046e3295a6005ca52cbd96746824a40f Merge: 8bea4ab 48b43c5 Author: Thomas W?rthinger Date: Thu Jan 19 14:35:44 2017 -0800 [GR-2426] IterativeConditionalEliminationPhase should clean up dead nodes commit 48b43c57ec791f9aa9a0ef16036829610a9b95a0 Author: Tom Rodriguez Date: Thu Jan 19 11:25:40 2017 -0800 IterativeConditionalEliminationPhase should clean up dead nodes commit 9e33cfad08f160e456c93f8e8a06a7a2f458478e Author: Boris Spasojevic Date: Thu Jan 19 16:57:54 2017 +0100 Fixed formatting. commit 81882082b441c24309520f0b634fcdd5cce4ea30 Author: Boris Spasojevic Date: Thu Jan 19 16:49:55 2017 +0100 Use of API method to create an empty list. commit 2da27e1ef76dee63040bab24007d512d5d0a535b Author: Boris Spasojevic Date: Thu Jan 19 16:48:48 2017 +0100 Positive condition check rather then early return. commit 22b9733d01bc0f5d933a670e58e41f7e6d446104 Author: Boris Spasojevic Date: Thu Jan 19 16:36:41 2017 +0100 Removed a '.*' import. commit 940ebf974e60ecdcdb63f5bb1d0faf41c75678e2 Author: Boris Spasojevic Date: Thu Jan 19 15:46:11 2017 +0100 Print an informative message if Truffle inlining is disabled but tracing of inlining is enabled. commit 1fb981b9f69bca2371530e7ce8685686d71bf59c Author: Boris Spasojevic Date: Thu Jan 19 15:28:09 2017 +0100 Stop all Truffle inlining if the TruffleFunctionInlining flag is set to false. commit 8b5e20cd527803604795a9fe1da1ee8b7adb875f Author: David Leopoldseder Date: Thu Jan 19 09:47:09 2017 +0100 Refactor tests to avoid redundant unsafe initialization. commit 6879b7f1491f7ac57d73d0599ab99d2006ba6d1c Author: David Leopoldseder Date: Wed Jan 18 18:38:46 2017 +0100 Refactor RecursiveInliningTest. commit 8bea4abff573a7ca2caad2af0772e3f8b3514b49 Merge: ef543d2 14562ce Author: Doug Simon Date: Wed Jan 18 04:33:53 2017 -0800 [GR-2397] Use the MethodParameters class file attribute if available. commit ef543d26790d28cb9b066fae8b822e9318f5fadb Merge: c965099 8d3d0a8 Author: Doug Simon Date: Wed Jan 18 02:51:48 2017 -0800 [GR-2393] workaround eclipse import static bug commit 14562ce2813f370f2c0c7ece59bc47634c47d2fe Author: Doug Simon Date: Tue Nov 8 23:45:22 2016 +0100 use the MethodParameters class file attribute if available commit 8d3d0a8a9ce9a235034e8c628e6984ee1e8b480e Author: Tom Rodriguez Date: Tue Jan 17 23:23:17 2017 -0800 workaround eclipse import static bug commit c96509900a464dfa109aa7aa0599bbc4ffb0aef7 Merge: 016786d c187ca0 Author: Codrut Stancu Date: Tue Jan 17 23:03:43 2017 -0800 [GR-2389] Remove illegals calls to @Fold annotated method. commit 016786dad08fa3b7d91ccb67fbc1c0afca64ac94 Merge: 1b6f5e4 54cc31d Author: Thomas W?rthinger Date: Tue Jan 17 17:36:55 2017 -0800 [GR-2370] Added canonicalization for cascades of short circuit or nodes. commit 54cc31dfc1c42c2f204d13f495b5f19466b7880c Author: Thomas W?rthinger Date: Wed Jan 18 02:06:17 2017 +0100 Perform systematic testing of short circuit or canonicalizations. Add boolean comparison canonicalization to normalize to the 0 test case. commit 62f1c01fc8e91dc4fb01292ab129376353dfa9c6 Author: Thomas W?rthinger Date: Tue Jan 17 14:49:50 2017 +0100 Added clarifying comments. commit 2cbd0dc112134e23a56addd2b0cbc2dfb8c3c1fe Author: Thomas W?rthinger Date: Tue Jan 17 05:26:16 2017 +0100 Added canonicalization for cascades of short circuit or nodes. commit c187ca03a5ced0d6e0cad5466e5fce8aae76e0d9 Author: Doug Simon Date: Tue Jan 17 21:46:30 2017 +0100 removed calls to @Fold methods that have a parameter annotated with @InjectedParameter commit 1b6f5e428afa21a0e34362b038dff6ed0d9d4ba2 Merge: d190b7d f14f28a Author: Thomas W?rthinger Date: Tue Jan 17 12:18:38 2017 -0800 [GR-2114] More efficient LoopsData.outerFirst and innerFirst. commit f14f28abb2e2aa59f50358eb9d3a689c9fbcf121 Merge: 29636d5 d190b7d Author: Thomas W?rthinger Date: Tue Jan 17 17:29:10 2017 +0100 Merge branch 'master' into topic/loopsdata commit d190b7d5e2bd2c5a5f4d5a99f6b4efce64be033a Merge: 13384d4 5fa3448 Author: Doug Simon Date: Tue Jan 17 06:59:16 2017 -0800 [GR-2368] Disable JDK 9 gates until JDK-8172850 is fixed. commit 13384d48e1f6b4fc9e4c9f07668e9706fc90eb40 Merge: 9a8d652 d2545b7 Author: Andreas Woess Date: Tue Jan 17 06:54:59 2017 -0800 [GR-2367] Truffle: ensure Assumption.isValid() is inlined for indirect calls commit 5fa3448f7b6d053096e4cad353e938f68329418e Author: Doug Simon Date: Tue Jan 17 15:03:18 2017 +0100 update overlay version commit 006841ed93b00065d9386e108a5038c1f9fc68be Author: Doug Simon Date: Tue Jan 17 14:34:03 2017 +0100 disable JDK 9 gates until JDK-8172850 is resolved commit 29636d5f1bc133436e0033e86c517d276326e766 Merge: 25b471c 8f1ad40 Author: Thomas W?rthinger Date: Tue Jan 17 14:21:06 2017 +0100 Merge branch 'master' into topic/loopsdata commit 92c7244c16972daf244f10afc3e5bf32a8ee8f05 Author: Doug Simon Date: Tue Jan 17 14:33:19 2017 +0100 update to current compatible JDK 9 EA build commit d2545b7e067f872137ea60f429439f488e369afa Author: Andreas Woess Date: Wed Jan 11 00:38:29 2017 +0100 [fix] Truffle: ensure Assumption.isValid() is inlined for indirect calls Use concrete type for profiledArgumentTypesAssumption field so that isValid() can be statically resolved and inlined without profiling info, i.e. during PE. commit 9a8d652b1810f1d7ffbdd225d5d8d577a11f13ca Merge: 8f1ad40 ed17a0d Author: Thomas W?rthinger Date: Tue Jan 17 04:33:09 2017 -0800 [GR-2365] Fix probabilities assigned to if nodes during logic expansion phase. commit ed17a0d7eebcb07fad0847515671542024ae04b1 Author: Thomas W?rthinger Date: Tue Jan 17 05:32:18 2017 +0100 Fix probabilities assigned to if nodes during logic expansion phase. commit 8f1ad406d78f2f57104a8edaaf5aecbb3616fd35 Merge: d1057cb f64c234 Author: Thomas W?rthinger Date: Mon Jan 16 06:31:23 2017 -0800 [GR-2325] New map and set implementations for better footprint and deterministic compilation. commit f64c234e4fa7ce8991db16f782ec355b159ce9b2 Author: Thomas W?rthinger Date: Mon Jan 16 14:47:18 2017 +0100 Rename CompareStrategy to Equivalence. Make org.graalvm.util.Pair class immutable. Fix issues and compress also during iterator removal for EconomicMapImpl. commit ff500d8a7e0017d8bdbfcea2a635f3438b2a6c8f Author: Thomas W?rthinger Date: Sun Jan 15 23:17:33 2017 +0100 Add compression functionality to EconomicMapImpl. Add unit tests measuring memory footprint. commit 1d3ee0b3c524727577ed856553d876a2013fdd84 Author: Thomas W?rthinger Date: Sun Jan 15 00:59:17 2017 +0100 Create new project org.graalvm.util and move new collection classes there. commit 1ec570a5ed6a99d72dc1847a45f4ca29b7c0bad2 Merge: e7f50be d1057cb Author: Thomas W?rthinger Date: Sat Jan 14 23:57:33 2017 +0100 Merge branch 'master' into fix/predictable-compilation commit e7f50be9af761c18c05df0c87f39baa9db25ee45 Author: Thomas W?rthinger Date: Sat Jan 14 22:53:26 2017 +0100 Add capability to customize EconomicMap/EconomicSet with CompareStrategy. commit d1057cb806157581b47ed071cf7a73ccc63dc59b Merge: 45bc46a 67a36df Author: Gilles Duboscq Date: Sat Jan 14 10:12:01 2017 -0800 [merge] Change killCFG strategy commit 67a36df61043d464f170ff2a0e1bf11cba8bf2e8 Author: Gilles Duboscq Date: Fri Jan 13 15:36:42 2017 +0100 [fix] Verify killCFG under VerifyGraalGraphEdges These verification slow things down significantly so we should not perform them all the time. Currently VerifyGraalGraphs is on by default. commit dd969b6f84370ff38ffa10c0d5d5310157d10ec4 Author: Gilles Duboscq Date: Wed Jan 11 20:27:11 2017 +0100 [fix] killCFG: only verify new unused nodes under a special flag If there were unused nodes in the intial graph it's non-trivial to make sure there will be no new unused nodes. Also it shouldn't be a big problem to create new unused nodes. The flag is still usefull has it might indicate problems in killCFG. The "unsafe node" verification remains on by default as it should hold and indicates real problem that can lead to later crashes. commit 8507c94a1f8f06913bd42ec13f13c1ce70226f5c Author: Gilles Duboscq Date: Mon Jan 9 18:48:50 2017 +0100 [fix] Change killCFG strategy Instead of killing usages eagerly, just add them to the worklist. Add removeNewNodes Make public killCFG interface operate only on FixedNode to simplify the implementation: we can assume that fixed nodes that need to be deleted will be reached while working on the CFG and not only through data-flow. commit 45bc46a3d7f73c5affbc113d57794a64952d720f Merge: 2e1fc7b 6b0d63b Author: Tom Rodriguez Date: Fri Jan 13 19:21:14 2017 -0800 [merge] [fix] Rearrange debug environment initialization commit 6b0d63b856d8eb92eb406e3d94b1d2b9c42fc4dd Author: Tom Rodriguez Date: Thu Dec 15 11:04:12 2016 -0800 [fix] Rearrange debug environment initialization commit 2e1fc7bcb1a5c02cc47218d9224fbfdc7563f789 Merge: a8c7c57 6f37e24 Author: Gilles Duboscq Date: Fri Jan 13 09:05:59 2017 -0800 [merge] changes to work with jdk9-ea+152 commit 6f37e24a702e3025e3b09bad50861b2c01dddb21 Author: Doug Simon Date: Fri Jan 13 16:49:49 2017 +0100 [ci] use non-dev jdk9 snapshot commit a32ac5a6e16caa242d0c7948a1339253f52cc495 Author: Doug Simon Date: Fri Jan 13 16:03:29 2017 +0100 [feature] updated README.md for jdk9-ea+152 commit a8c7c57cab4518d647aa751fb2161790eb0027ef Merge: 6d9a9ef 380c861 Author: Lukas Stadler Date: Fri Jan 13 06:42:33 2017 -0800 [merge] [fix] PEA: more accurately detect situations in which applying effects is necessary commit 380c861cd4b3fcc3976e460d333e71da9d4585fa Author: Lukas Stadler Date: Thu Jan 12 14:39:19 2017 +0100 [fix] PEA: more accurately detect situations in which applying effects is necessary commit ad4f9ea3091d924d2fd4185063f80672bdafc775 Author: Doug Simon Date: Fri Jan 13 13:58:53 2017 +0100 [fix] added missing header commit 3e4501b691257154e527be59697248d1ec8dec46 Author: Doug Simon Date: Fri Jan 13 11:58:35 2017 +0100 [feature] update to jdk9 ea b152 commit 2a225bcf63b5dbbecbcf367412c6ffd2eca7ea5d Author: Doug Simon Date: Tue Jan 10 12:02:02 2017 +0100 [fix] fix merge conflict commit 099ca2f8b68b5e2183613e5ce77a8e5218ba62a8 Author: Doug Simon Date: Tue Jan 10 11:21:28 2017 +0100 [feature] update CheckGraalInvariants for new module name and upgrade module path property commit 8c15872a6e73df205dc52ed91f5e3e5ea73717ef Author: Doug Simon Date: Tue Jan 10 11:20:26 2017 +0100 [feature] added more AddExports annotations as required commit c547ab53f854338ea68e72ecbedd3312021351c8 Author: Doug Simon Date: Tue Jan 3 10:17:42 2017 +1000 [feature] export ASM to all GraalCompilerTests commit e52b1328705be145460d2612a2690590d41caeb3 Author: Doug Simon Date: Fri Dec 30 23:42:57 2016 +1000 [feature] use @AddExports support; force Graal to be compiled with JDK8 commit f617bd6589a70acb0ede080f785d89b40a836631 Author: Doug Simon Date: Mon Dec 12 19:06:36 2016 +0100 [feature] support module changes from JDK-8169069 commit 6d9a9ef2e164076362f8efc30b6ec80b6317d373 Merge: 879be4e 69c7657 Author: Andreas Woess Date: Thu Jan 12 01:24:47 2017 -0800 Merge pull request #686 in G/graal-core from ~ANDREAS.WOESS_ORACLE.COM/graal-core:truffle_aarch64 to master * commit '69c7657a18a76b2d6c090b5cf777c1d4822edb4a': [feature] implement AArch64OptimizedCallTargetInstumentationFactory commit 879be4e0f21b74b7912b665f82f4ed1cca8edc24 Merge: 64cb154 a8260a7 Author: Gilles Duboscq Date: Wed Jan 11 11:33:54 2017 -0800 Merge pull request #708 in G/graal-core from topic/canonicalizer-kill-unused to master * commit 'a8260a759b9113ca82bdf718b8bed31a35c976ab': [fix] Try to kill unused nodes only once during node canonicalization commit 64cb154509391ea336cad5c50bdc5d9ad2952f0b Merge: a50992c 5561cef Author: David Leopoldseder Date: Wed Jan 11 03:19:34 2017 -0800 Merge pull request #705 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:test/recur-inline-test-reduce-iterations to master * commit '5561cef43c5f3dd5bdb368cca540f4e3a7013e58': [test] recursive inlining test: reduce number of iterations commit a8260a759b9113ca82bdf718b8bed31a35c976ab Author: Gilles Duboscq Date: Wed Jan 11 12:07:21 2017 +0100 [fix] Try to kill unused nodes only once during node canonicalization commit a50992c84db271041a53fd33400de6e2328ee967 Merge: a2255cc 61aa854 Author: Gilles Duboscq Date: Wed Jan 11 02:51:44 2017 -0800 Merge pull request #682 in G/graal-core from topic/cas to master * commit '61aa854fccee7537caf603bac3ad7bf334b75e44': [feature] Add match rules for if(cas) [feature] Add Word CAS operations commit a2255cc27855e6c1b7c9637b6e44671c7452bb04 Merge: 0cd413d 3c054a0 Author: Gilles Duboscq Date: Wed Jan 11 02:50:45 2017 -0800 Merge pull request #706 in G/graal-core from topic/debug-timeout-test to master * commit '3c054a05728f1e7e00693079f99868860fcf259f': [fix,test] Make sure debug is initialized for timeout tests commit 0cd413d6ba3293044ec378a0a5769d300d808833 Merge: 73d6f9b 78104d6 Author: David Leopoldseder Date: Wed Jan 11 00:11:25 2017 -0800 Merge pull request #704 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:fix/box-node-nodecosts to master * commit '78104d6a2aa30872054eebc00cfb54096e0b6218': [fix] node costs: box node is a normal allocation commit 69c7657a18a76b2d6c090b5cf777c1d4822edb4a Author: Andreas Woess Date: Wed Dec 7 18:02:45 2016 +0100 [feature] implement AArch64OptimizedCallTargetInstumentationFactory commit 3c054a05728f1e7e00693079f99868860fcf259f Author: Gilles Duboscq Date: Tue Jan 10 15:27:37 2017 +0100 [fix,test] Make sure debug is initialized for timeout tests Added GraalCompilerTest.initializeForTimeout() Call it from tests with a timeout (JUnit runs those on a different thread). commit 73d6f9ba1d2c5b5d1ee86776520935ec02955129 Merge: 2aee8e8 163d970 Author: Tom Rodriguez Date: Tue Jan 10 10:18:45 2017 -0800 Merge pull request #703 in G/graal-core from igor/aot-unverified-entry-point to master * commit '163d970ac39d810404963ffdf26a76272947cb59': [fix] Fix AOT unverified entry point commit 2aee8e88c9b9b5c1f6b17671f24e474d5b8a9589 Merge: b0175e5 3072436 Author: Christian Wimmer Date: Tue Jan 10 09:53:15 2017 -0800 Merge pull request #698 in G/graal-core from cwi/invocation-plugin to master * commit '30724369f7353e6f7a3fdb0ae423434d6228a9e4': [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target commit 25b471c8b2a80bb6b8c96da6069774113f6a315a Author: Gilles Duboscq Date: Wed Jan 4 18:42:17 2017 +0100 [fix] More efficient LoopsData Improved outerFirst This assumes the order of the loops retruned by the CFG. The loops are kept in an array instead of being sources from the maps. Removed innerFirst (added ReversedList which can be used to emulate it) Removed one of the maps commit 163d970ac39d810404963ffdf26a76272947cb59 Author: Igor Veresov Date: Thu Jan 5 15:26:18 2017 -0800 [fix] Fix AOT unverified entry point commit 61aa854fccee7537caf603bac3ad7bf334b75e44 Author: Gilles Duboscq Date: Mon Dec 19 18:56:07 2016 +0100 [feature] Add match rules for if(cas) commit b0175e57a242a454a5cc75add35b3a19e192f61a Merge: 848c88a 67d77ed Author: Josef Eisl Date: Tue Jan 10 04:15:43 2017 -0800 Merge pull request #702 in G/graal-core from ~JOSEF.E.EISL_ORACLE.COM/graal-core:compiler-test-retry-failed-code-installation to master * commit '67d77ed31c0b18169917c9d746380bc4218e0a89': [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout commit 67d77ed31c0b18169917c9d746380bc4218e0a89 Author: Josef Eisl Date: Mon Jan 9 16:12:43 2017 +0100 [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout This happens, e.g., if Graal is executed the first time and Graal code invalidates assumptions that where true before. commit 848c88a0945ae71622b49f425ee76bffe3b15c56 Merge: 11ecdc0 1cbe976 Author: Codrut Stancu Date: Tue Jan 10 01:30:05 2017 -0800 Merge pull request #659 in G/graal-core from cs/refactor-interval to master * commit '1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe': [misc] Interval and Range refactoring. commit 5561cef43c5f3dd5bdb368cca540f4e3a7013e58 Author: David Leopoldseder Date: Tue Jan 10 10:05:51 2017 +0100 [test] recursive inlining test: reduce number of iterations commit 78104d6a2aa30872054eebc00cfb54096e0b6218 Author: David Leopoldseder Date: Tue Jan 10 09:49:44 2017 +0100 [fix] node costs: box node is a normal allocation commit 1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe Author: Codrut Stancu Date: Tue Dec 6 23:49:09 2016 -0800 [misc] Interval and Range refactoring. commit 11ecdc05a48b77db4718dc7cb5c31f0ff562ad5e Merge: cebca3f 718a7da Author: Josef Eisl Date: Mon Jan 9 06:19:55 2017 -0800 [fix] use ArrayList in LIR where appropriate commit d0017ebcac25a598fcc3347549b9c34ee7f5d2c4 Author: Gilles Duboscq Date: Fri Dec 9 16:22:45 2016 +0100 [feature] Add Word CAS operations Add CAS operation to Word and use them in snippets Rename `LoweredCompareAndSwap` to `LogicCompareAndSwap` Rename `CompareAndSwap` to `UnsafeCompareAndSwap` Introduce `AbstractCompareAndSwap` and `ValueCompareAndSwap` Remove old cas nodes commit 718a7da231ba2f34354125c4deaf0c241c4bfce2 Author: Josef Eisl Date: Mon Jan 9 14:36:37 2017 +0100 [fix] TraceRA: assert that splitChildren list is always non-empty or null commit 9085352ea2337a4e49bab6f02e6a5e56fd5b2567 Author: Josef Eisl Date: Wed Dec 21 15:49:40 2016 +0100 [fix] use ArrayList instead of List in Linear Scan commit 4e87b12c86109a090b0060c80df3c9609ed4d642 Author: Josef Eisl Date: Wed Dec 21 14:17:44 2016 +0100 [fix] Use ArrayDeque in LinearScanLifetimeAnalysisPhase commit 5b922da3d7ca9e641aeb3db2dd766ba2cb1d0b33 Author: Josef Eisl Date: Wed Dec 21 14:10:53 2016 +0100 [fix] TraceRA: use ArrayList in TraceBuilderPhase commit 0f61ffd3a690e082c67dc217ced4bd40c8f7c239 Author: Josef Eisl Date: Wed Dec 21 14:01:45 2016 +0100 [fix] use ArrayList in RegisterVerifier commit 45a5e1fce556453fc2ac37f8a63966e2c72a1586 Author: Josef Eisl Date: Wed Dec 21 13:55:20 2016 +0100 [fix] TraceRA: use ArrayList in TraceLocalMoveResolver commit 432b97221d90df67ac1ce8d9b72468ad7e716bcc Author: Josef Eisl Date: Wed Dec 21 13:54:59 2016 +0100 [fix] TraceRA: use ArrayList in TraceLinearScanWalker commit 956cd75f3d938aeb00ba9d8e9e0e0487ec8248ae Author: Josef Eisl Date: Wed Dec 21 13:42:41 2016 +0100 [fix] use ArrayList for storing getLIRforBlock results commit 99c028c31a2035623269d66417073d5ce527ffd8 Author: Josef Eisl Date: Wed Dec 21 13:23:16 2016 +0100 [fix] TraceRA: use ArrayList for split children in TraceInterval commit 5dd26d98c9b48b8118047c41d3e24f9e63c594d4 Author: Josef Eisl Date: Wed Dec 21 12:18:21 2016 +0100 [fix] TraceRA: use index instead of ListIterator commit cebca3f9a2eabb1c411240eae19ea23041d3dde0 Merge: 0176906 1f349d8 Author: Christian Wimmer Date: Mon Jan 9 03:01:27 2017 -0800 [fix] Spill store optimization must not move stores into loop commit 0176906c5dc53edd512d8f489fce3a8dcd59e340 Merge: f76dc33 43efd9d Author: Doug Simon Date: Mon Jan 9 01:05:28 2017 -0800 Improve consistency in the README terminology commit 2f22f70b450f3e089480b2347520b3610b1f1f96 Author: Thomas W?rthinger Date: Sat Jan 7 00:59:53 2017 +0100 Introduce new economic map and set implementation with low footprint (in particular for small number of entries) to replace java.util.* usage. commit f76dc33b4fd41569991eb4659be8028190804f41 Merge: 0063385 39c1579 Author: Christian Wimmer Date: Fri Jan 6 09:15:08 2017 -0800 Minor fixes for my work on typed Truffle entrypoints on Substrate VM commit 39c1579fc91ca9d401e1a55f37fa8655cc2033a9 Author: Christian Wimmer Date: Thu Jan 5 16:49:50 2017 -0800 [feature] Change order of objects in equality check Allows customizing graph().method() with a marker method that has an approriate implementation of equals() commit 28a72b5bff8ca41cb023bae7cfe6e83854493b99 Author: Christian Wimmer Date: Thu Jan 5 15:58:55 2017 -0800 [fix] Avoid NullPointerException commit 30724369f7353e6f7a3fdb0ae423434d6228a9e4 Author: Christian Wimmer Date: Thu Jan 5 15:50:49 2017 -0800 [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target commit 006338540a46a1a228eeed01060c94ddbc4cb2e4 Merge: cb09b1b 07518dd Author: Christian Humer Date: Thu Jan 5 06:25:46 2017 -0800 Truffle OSR compilation: synchronize / cancel on invalidate commit cb09b1be120594b7e4f6a291b229da52e9ae6da4 Merge: 0584562 8ba423d Author: Christian Wimmer Date: Wed Jan 4 17:51:24 2017 -0800 Update Truffle version commit 8ba423d0ae840eb8ad521f76e06a89d537ec95f1 Author: Christian Wimmer Date: Wed Jan 4 16:31:19 2017 -0800 Update ci overlay version commit 4876c7208991810e53de8e7b34be51279ba05bbb Author: Christian Wimmer Date: Wed Jan 4 15:56:54 2017 -0800 Update Truffle version commit 0584562485b4e259f99d31a3999ced0be12f43c9 Merge: 3cb2e3f 5394eb5 Author: Vojin Jovanovic Date: Wed Jan 4 15:20:34 2017 -0800 Use correct intellij init command commit 5394eb535ee09020bd44bd4ca639327547b9b0b8 Author: Vojin Jovanovic Date: Wed Jan 4 23:30:57 2017 +0100 Changing the ci overlay commit c4f207aba3e7e0a314c955ec45494518228cf91e Author: Vojin Jovanovic Date: Wed Jan 4 15:19:42 2017 +0100 Use the correct IntelliJ init command commit 07518dd5f2deac85f94f3c8d8f0f13e2e778f688 Author: Lukas Stadler Date: Wed Jan 4 09:59:41 2017 +0100 cancel compilation task when OptimizedCallTargets are invalidated commit 82f2ca37f6c90bfec631b7a248972aa5e209de05 Author: Lukas Stadler Date: Wed Jan 4 09:59:13 2017 +0100 synchronize OptimizedOSRLoopNode.invalidateOSRTarget commit 3cb2e3f2343ddde3607819a479ef84ee95666f38 Merge: e4b3fb4 76d7382 Author: Christian Humer Date: Mon Jan 2 05:37:37 2017 -0800 [fix] Truffle compilation canceled itself in case of recursion commit 1f349d8c284d102e219d6ab76ec20a3a0a5c7e7b Author: Christian Wimmer Date: Fri Dec 30 14:42:41 2016 -0800 [fix] Spill store optimization must not move stores into loop commit 01fa2211d4a22a3cb50f2cfa2c047c30b5060763 Author: Thomas W?rthinger Date: Fri Dec 30 15:27:36 2016 +0100 Make compilation predictable by removing System.identityHashCode and related effects such as HashMap key iteration order as main sources of indeterminism. commit e4b3fb4ea236cadf34d407ee8ab216b8d76c5e87 Merge: 0cefb9f 2369e57 Author: Thomas W?rthinger Date: Fri Dec 30 04:07:05 2016 -0800 Add unit tests and small fixes for Truffle performance warning stack traces. commit 0cefb9fd32e48c5df87b335b8eaeaf170a286f34 Merge: f9b93f3 d2861f6 Author: Tom Rodriguez Date: Thu Dec 22 11:02:57 2016 -0800 Merge: Remove folding of loads from $assertionsDisabled in AOT commit 43efd9d41a00c3af1b8d7c269ce9cb3aaf12220a Author: Benoit Daloze Date: Thu Dec 22 17:52:29 2016 +0100 Improve consistency in the README terminology commit f9b93f32173b3fbbba6a05de9f26a0e6596aebe2 Merge: 7e25820 22a5ec9 Author: Vojin Jovanovic Date: Thu Dec 22 08:32:02 2016 -0800 Adding IntellJ instructions commit 22a5ec9ed9650c4452fe39fe7b64381360e111df Author: Vojin Jovanovic Date: Wed Dec 21 20:18:23 2016 +0100 Adding IntellJ instructions commit d2861f6fd589ce28301af30031fd3f824ccd3f12 Author: Igor Veresov Date: Tue Dec 20 11:13:10 2016 -0800 Remove folding of loads from $assertionsDisabled in AOT commit 7e258203177a6b2c7414cfeb35a133cc2e6c9670 Merge: 10af3e9 a25f5c9 Author: Tom Rodriguez Date: Mon Dec 19 16:55:09 2016 -0800 Merge: Fix argument types of tiered callbacks commit 76d738205406860fb2a85c930e3b1907cdb44cca Author: Christian Wimmer Date: Mon Dec 19 10:05:36 2016 -0800 [fix] Truffle compilation canceled itself in case of recursion commit 10af3e90b068c6298a8f185606fd2566d7cc53a1 Merge: fad8200 b225edc Author: Gilles Duboscq Date: Mon Dec 19 10:13:11 2016 -0800 Use extended JavaVm API from mx commit b225edc82382ea7ea33bbb675836b3498b333b42 Author: Gilles Duboscq Date: Wed Dec 14 16:27:12 2016 +0100 Use extended JavaVm API from mx commit fad8200eb15881121add70ba7fae6ba23fa53b90 Merge: d279402 7baf0fb Author: Josef Eisl Date: Mon Dec 19 06:21:34 2016 -0800 [ci]: increase jmh timeouts commit 7baf0fb18ab35bb60c4be5a236af34118696859e Author: Josef Eisl Date: Mon Dec 19 10:55:18 2016 +0100 [dep] update ci-overlay commit a824d7027795a386a8e5261eda19b703ae1aefaa Author: Josef Eisl Date: Mon Dec 19 10:54:54 2016 +0100 [ci] increase timelimit for graal-micros commit d27940208dd5f7fbba90c80ae6744986d8c50897 Merge: ac1842f c00c0bf Author: Matthias Grimmer Date: Mon Dec 19 02:22:45 2016 -0800 Add PUBLICATIONS.md commit ac1842ffd07e038c0833526f02f65d67c674ce0d Merge: a348ee7 260a8a6 Author: Tom Rodriguez Date: Sun Dec 18 20:57:14 2016 -0800 Merge: Allow multiple file names per thread and gracefully handle interrupted threads commit a25f5c9656b4910204f35c5a33e6a0000b45d48b Author: Igor Veresov Date: Fri Dec 16 18:23:54 2016 -0800 Fix argument types of tiered callbacks commit 2369e57d367fa81048d087e7cf9dacd3f1782b30 Author: Thomas W?rthinger Date: Sat Dec 17 01:04:29 2016 +0100 Add unit tests and small fixes for Truffle performance warning stack traces. commit a348ee713af1046b297d2a0326a6d1322bba004e Merge: 01695c8 5adca69 Author: Christian Humer Date: Fri Dec 16 09:53:32 2016 -0800 Print approximated stack trace for performance warnings. commit 5adca69e81e626443f1df00493b1a556aef81e92 Author: Christian Humer Date: Fri Dec 16 18:19:09 2016 +0100 Print approximated stack trace for performance warnings. commit 260a8a6e8059b3e2b33ad756516bd0c12d4e52ba Author: Tom Rodriguez Date: Thu Dec 15 11:04:12 2016 -0800 Allow multiple file names per thread and gracefully handle interrupted threads commit 01695c855a62af8764fe97421b6341e6a2622b63 Merge: 45e1839 56a21fb Author: Gilles Duboscq Date: Fri Dec 16 06:34:13 2016 -0800 Run bootstraps on machines with 'manycores' commit 56a21fb6586dc33fec5d38233616ef517a0fe48e Author: Gilles Duboscq Date: Fri Dec 16 14:44:51 2016 +0100 Run bootstraps on machines with 'manycores' Bootstraps are multithreaded so they benefit from having many cores. commit 45e183972bd9dc0ed6b5405c101ff1907a92d774 Merge: 9e5cf7f 36d2215 Author: Gilles Duboscq Date: Fri Dec 16 05:27:18 2016 -0800 Aarch64 graal misc fixes commit 9e5cf7f3e3d16a41c64031887a84a5278ef0c415 Merge: dd087fd 950b11e Author: David Leopoldseder Date: Fri Dec 16 04:09:16 2016 -0800 [ci] split bootstrap tasks commit dd087fd6447e1d2dc2a61920bbb1ae431457b5ef Merge: e34a1a3 a829731 Author: Tom Rodriguez Date: Wed Dec 14 12:09:49 2016 -0800 Merge: Fold narrow and sign extend into memory operations commit a8297312cd4d0da16b05bee3d50b79721590087c Author: Tom Rodriguez Date: Tue Dec 6 17:52:08 2016 -0800 Fold narrow and sign extend into memory operations commit bbb7350518fefd8792bac9735941c421d7d36470 Author: Doug Simon Date: Wed Dec 14 17:49:54 2016 +0100 remove redundant AllocationContext.options field commit d3b971522b400a4ff6991e08b107c687c65336b4 Author: Doug Simon Date: Wed Dec 14 16:17:59 2016 +0100 remove use of StableOptionKey commit dd36a08fa7da15d39b2dba20298aa1cbfae3f2c9 Author: Doug Simon Date: Wed Dec 14 15:58:52 2016 +0100 remove use of OptionKey.setValue commit dd11ad4cc1f1de2a5bb9abae86fc3aff9dfac7aa Author: Doug Simon Date: Wed Dec 14 14:53:23 2016 +0100 disable Inline and InlineDuringParsing if they have default values and -XX:-Inline is specified commit 6463f9f60fbbdeefa0e48c68b82994689c714a78 Merge: 2bfa0b1 e34a1a3 Author: Doug Simon Date: Wed Dec 14 13:23:24 2016 +0100 Merge branch 'master' into topic/non-static-options commit 2bfa0b1818bd368629091fc6e621ac87bd7acd85 Author: Doug Simon Date: Sat Dec 10 01:03:23 2016 +0100 post-merge fixups commit e34a1a3130f275d7390d50fda3ecf3f1abe42200 Merge: b332b62 686e261 Author: Gilles Duboscq Date: Wed Dec 14 03:04:12 2016 -0800 Remove unused array allocation if possible commit 950b11ecbca37ed8331e6762ee788b19f4edcf84 Author: David Leopoldseder Date: Wed Dec 14 10:59:14 2016 +0100 [ci] move bootstrap tasks to separate hocon file commit 91488eca7df066abc589300b0c45578578c68862 Author: David Leopoldseder Date: Wed Dec 14 10:50:58 2016 +0100 [ci] update mx version commit b332b62735ba82137706265157d8432a8fb48f6e Merge: 26c0792 d9708df Author: David Leopoldseder Date: Wed Dec 14 01:57:01 2016 -0800 [ci] trigger TraceRA benchmark daily only commit d9708df27a5159b851d5c333868c0cf7f5dd760f Author: Josef Eisl Date: Wed Dec 14 10:23:42 2016 +0100 [ci] trigger TraceRA benchmarks daily only commit 26c07924c31e03795c17c3e6f6861a90b14a6d21 Merge: 35cc2e8 f322ca2 Author: Gilles Duboscq Date: Tue Dec 13 08:27:49 2016 -0800 Add more cases to MonitorSnippets commit 36d22155092abd67cce70c963873e95884553c8a Merge: f812ad3 35cc2e8 Author: Gilles Duboscq Date: Tue Dec 13 16:33:58 2016 +0100 Merge branch 'master' into aarch64_graal_misc_fixes commit 35cc2e8d5ad64626fd97b3b72012299137ade43b Merge: dea00ee 977b6e1 Author: David Leopoldseder Date: Tue Dec 13 05:17:41 2016 -0800 [fix] loop optimizations must respect ControlFlowAnchored interface commit dea00eee58b2bb355755cfad45ccae95c43380b1 Merge: 87b6ac0 ef00cd9 Author: Josef Eisl Date: Tue Dec 13 03:58:20 2016 -0800 [dep] update ci overlay version commit 977b6e18628b2ddbe590c1bfc6d71aaa303dbcab Author: David Leopoldseder Date: Fri Dec 2 14:58:02 2016 +0100 [fix] control flow anchored: loop optimizations must use controlflowanchored interface commit c00c0bf719d433fc549668f551c845cc8bf93a50 Author: Matthias Grimmer Date: Mon Dec 12 10:30:14 2016 +0100 Add all Graal and Truffle related publications to Publications.md commit ef00cd905b55c1348a7cfa597150e52ad45683e3 Author: Josef Eisl Date: Mon Dec 12 13:17:01 2016 +0100 [dep] update ci overlay version commit f812ad3b8d847f797b3123adda0b330e1f0d78af Author: Andrew Haley Date: Mon Dec 12 18:09:36 2016 +0000 The parameters a and b should not be assigned. commit d224c1c6d681c83914b78752ba932639fb9d2613 Author: Andrew Haley Date: Mon Dec 12 17:25:17 2016 +0000 Remove unused arguments. commit 686e261039d357f04026d7286c0cf0f2d8c17238 Author: Gilles Duboscq Date: Mon Dec 12 17:47:08 2016 +0100 NewArray: only simplify to guards before guard lowering commit 13610fab8df4dfebc0794f8fcf5b5bf09d175662 Author: Gilles Duboscq Date: Thu Nov 17 16:16:40 2016 +0100 Simplify unused NewArray to Guard If we can not prove that the length is positive, a guard is still cheaper than the full allocation. Add tests for negative and large newarray Add tests that unused NewArray nodes are eliminated commit 53b5ee55c4ad09a473c0d596c2d485f247c0e475 Author: Gilles Duboscq Date: Wed Nov 16 18:01:46 2016 +0100 Remove unused array allocation if possible Remove unused array allocations where the length is known to be positive. commit 87b6ac064e1497442ac0e3125e31496fff517791 Merge: fb63259 cf008ba Author: Codrut Stancu Date: Sun Dec 11 22:23:39 2016 -0800 Refactor Node collections factory methods. commit fb632591c6c36b55451e936b7e20a37a67a726ea Merge: 784baba dc3ecab Author: Codrut Stancu Date: Fri Dec 9 11:21:26 2016 -0800 Refactor phase classes statistics access. commit 784babac9f9b68526d91ac17d6a305fff6a50f8a Merge: 451c012 414f878 Author: Codrut Stancu Date: Fri Dec 9 10:15:54 2016 -0800 Small refactorings. commit 451c012ae740f28e0e296ad965fe48ad9e596447 Merge: 98bdc0d 81fcc75 Author: Aleksandar Prokopec Date: Fri Dec 9 08:15:01 2016 -0800 Update package name for Renaissance bench. commit 565cdc3b08a3620ee13905af9fb7d60d4bfc07f9 Merge: 98bdc0d b200740 Author: Doug Simon Date: Fri Dec 9 17:05:23 2016 +0100 Merge branch 'aarch64_graal_misc_fixes' of https://github.com/theRealAph/graal-core into theRealAph-aarch64_graal_misc_fixes commit f322ca24e9b10082931dbf2a201673c7ffdf1c44 Author: Gilles Duboscq Date: Fri Dec 9 16:39:37 2016 +0100 Fix typos an document verify_jvmci_ci_versions commit 81fcc75fe00578f70228ee54ad5262625790f804 Author: Aleksandar Prokopec Date: Fri Dec 9 16:06:05 2016 +0100 Update package name for Renaissance bench. commit a8cf4587485ccfd78226629c54c0757d7a043b2f Author: Gilles Duboscq Date: Fri Dec 9 15:04:49 2016 +0100 Relax verify_jvmci_ci_versions Allow travis jvmci versions to lag behind *dev* version of ci.hocon jvmci. Use that and make travis use 0.23. The fastdebug versions names have been changed: s/fastdebug-dev/dev-fastdebug/ commit da9279e3eae2cdacd3b75e3f34118d09e3789698 Merge: b1e8360 949f9d4 Author: Doug Simon Date: Fri Dec 9 13:22:00 2016 +0100 Merge branch 'master' into topic/non-static-options commit dc3ecabbbfa5df7ae3ed79d9b85a69c567585dd1 Author: Codrut Stancu Date: Fri Oct 28 22:27:35 2016 -0700 Refactor phase classes statistics access. commit 414f8788c9864645099207c22cec763fa8f467b3 Author: Codrut Stancu Date: Tue Dec 6 23:44:56 2016 -0800 Replace stream use with simple for. commit e71f7dd62d6e1afab9f4da8b5ba91f4f127cdee5 Author: Codrut Stancu Date: Tue Dec 6 22:47:07 2016 -0800 Small refactorings. commit cf008ba7259bc432a3b83149c3b2a90c5fedc97a Author: Codrut Stancu Date: Tue Dec 6 22:36:54 2016 -0800 Refactor node collections factory methods. commit b20074008b6c89b94ddcf1482872a0fdef3ca960 Author: Andrew Haley Date: Thu Dec 8 15:15:04 2016 +0000 Checkstyle fixes. commit b1e836066425b1037481f5dfd7ddf916c627be05 Author: Doug Simon Date: Thu Dec 8 15:21:45 2016 +0100 made StructuredGraph final commit c560a5a8e8ada8012d06e39f31e67ac0cc90b6ca Author: Doug Simon Date: Thu Dec 8 15:02:21 2016 +0100 moved global option parsing from HotSpotGraalCompilerFactory to OptionValues removed methods from OptionKey that did not have a OptionValues context commit 21a2d2ab1ed5f6763937a761852445e0b223c16d Merge: 94016fc 949f9d4 Author: Gilles Duboscq Date: Thu Dec 8 12:57:03 2016 +0100 Merge remote-tracking branch 'master' into topic/locking commit 94016fca16a6cf5c04921c9c75ff5d257db99505 Author: Gilles Duboscq Date: Wed Dec 7 20:54:07 2016 +0100 MonitorSNippet: adjust probabilities commit c95ad5d1f5ac34e1579671060bc57b7ff6fafc70 Author: Gilles Duboscq Date: Wed Dec 7 19:39:37 2016 +0100 Cleanup: remove logging and unused location commit 9760b9b83e306d009a2083c4307706c9d3457862 Author: Gilles Duboscq Date: Tue Dec 6 11:53:03 2016 +0100 MonitorSnippets: Check for inflated lock earlier commit df4017e2d7d35c3468985a4f2251a787ee808b84 Author: Gilles Duboscq Date: Mon Dec 5 16:40:45 2016 +0100 Add SimpleFastInflatedLocking option commit 578654103c4532db520dae79ee5b44f106bd7228 Author: Gilles Duboscq Date: Mon Dec 5 15:57:44 2016 +0100 WIP: log inflated fast locking support commit 6fb059580aec479cf107495e181b01c308ffbb58 Author: Gilles Duboscq Date: Fri Dec 2 18:20:13 2016 +0100 Remove fast-path handling of succ in monitor snippets commit 38d9197d3d68a8057b57b25546c6b8f6240b1094 Author: Gilles Duboscq Date: Fri Dec 2 16:30:55 2016 +0100 Use JVMCI 0.24-dev commit 17865b46b77c91b606c9300eb6a831bdcee292e6 Author: Gilles Duboscq Date: Wed Nov 30 21:01:54 2016 +0100 Implement fast-path unlocking of inflated locks commit 98728bf2030e1e90c2cc38fb4260fc23cf329607 Author: Gilles Duboscq Date: Wed Nov 30 17:25:57 2016 +0100 Adjust monitor snippet probabilities commit 31cd4bf6e45d8ea20f114f7a094d66af9e30af05 Author: Andrew Haley Date: Tue Dec 6 19:02:34 2016 +0000 Tidy up Arrays.equals() support. commit 4dab38e0ad61633392e64ee80ec4e9018c534941 Author: Andrew Haley Date: Tue Dec 6 18:13:37 2016 +0000 Implement Arrays.equals(). commit 0201dec4f6e13b8d97d1daf2459f6a5204a36813 Author: Andrew Haley Date: Tue Dec 6 13:45:32 2016 +0000 Allow SP and ZR forms of add and subtract instructions. commit 6b899c1321a6196c3dbefab4e7c253d80a864477 Author: Andrew Haley Date: Tue Dec 6 13:19:50 2016 +0000 Disable NativeFunctionInterfaceTest on AArch64 commit 1419900803c872265815b3973950013192f3382c Author: Andrew Haley Date: Mon Dec 5 17:47:34 2016 +0000 Fix compressed OOPs. commit 61ce002370b1b242412583c878bebebef253e5ee Author: Andrew Haley Date: Mon Dec 5 17:22:29 2016 +0000 Fix flag-setting arithmetic. commit 14b4dd5156e1a2b894c784eaa0452ffc5558ee40 Author: Andrew Haley Date: Mon Dec 5 17:22:05 2016 +0000 Fix compressed OOPs. commit 49021aaee377250ac3f51a453f092c233a8fb433 Author: Andrew Haley Date: Mon Dec 5 16:25:15 2016 +0000 Fix null checks for compressed OOPs. commit 919e22adfbe7e54eb8eee580bd446aa9068a5c17 Author: Doug Simon Date: Sat Dec 3 14:41:24 2016 +0100 removed extra semicolon commit aa93c9a61b7a30cb6afa5d0e8c014559f62e5bf9 Author: Doug Simon Date: Sat Dec 3 12:41:24 2016 +0100 improved name of instrumentation graphs commit e6a181c024eb2e21f83c80723c42b678bed66577 Author: Doug Simon Date: Sat Dec 3 12:41:00 2016 +0100 fixed creation of inlineable graphs commit 2dfe1821a024735e2f80e126b2d533ac1a35ebe8 Author: Doug Simon Date: Sat Dec 3 12:40:26 2016 +0100 fixed chaining in overloaded methods commit 7241d89909511e833a6e39da4a1b83c62d841cb5 Author: Doug Simon Date: Sat Dec 3 12:39:57 2016 +0100 improved assertion message commit c90e054a12ed0d2b8d84392e2cac3be83386db6c Author: Doug Simon Date: Sat Dec 3 12:39:32 2016 +0100 also dump graph on error if -Dgraal.Dump option is non-null commit 07871cc653a07fe232121151b19b644fdf825cda Author: Doug Simon Date: Sat Dec 3 02:43:53 2016 +0100 removed incorrect assertion commit aae87fcc32a05937fa62ef7b55ae57bdfa87604a Merge: 5ec5c96 beb0da8 Author: Doug Simon Date: Sat Dec 3 02:32:03 2016 +0100 Merged from master branch and added StructuredGraph.Builder commit 2024acb03c0080ae48cb304be40bdc7c7072c2b4 Author: Andrew Haley Date: Fri Dec 2 19:00:30 2016 +0000 Exclude a couple of features which are not supported on AArch64. commit b72dd5e5aac1d2faf6a401c3dc7d0ce5e1698bfd Author: Andrew Haley Date: Fri Dec 2 18:59:46 2016 +0000 We should only load SP from FP in old versions of HotSpot. commit 5ec5c9663778c4e5e541573eb18c22ddd51cb91e Author: Doug Simon Date: Fri Dec 2 11:56:35 2016 +0100 removed OptionKey.getValue() and added OptionValues argument to all OptionKey.getValue(OptionValues) call sites commit 06875b567b71f7ae501c05530f9da96fd6736a09 Author: Doug Simon Date: Fri Dec 2 11:53:11 2016 +0100 override sl command in graal-core to run on Graal commit f56f8fb0d01a89ba2c25afcaa6feadb867ef7982 Author: Andrew Haley Date: Thu Dec 1 17:57:41 2016 +0000 Call runtime versions of intrinsics for transcendental funtions. commit 691991eb69e7f49b59a34cfaefec17dfc531e2e4 Author: Andrew Haley Date: Thu Dec 1 16:58:08 2016 +0000 Integer arithmetic notes which set flags. commit 13571ae9e90e90f7e1ec21c24d55ebe76637c3b8 Author: Andrew Haley Date: Thu Dec 1 10:58:52 2016 +0000 Implement countTrailingZeros. commit e8b6a30ab4e8a5e4040cbaabeffcd83eaa225e79 Author: Andrew Haley Date: Wed Nov 30 17:14:29 2016 +0000 Make add and sub work with 64-bit immediate values. commit 30c5b3f28a206658a5071f95a7848b0c8cb61836 Author: Andrew Haley Date: Wed Nov 30 12:38:27 2016 +0000 Correct method prologue and epilogue. commit 5f4c55161ea5e9e2903d06820780828b32249bc2 Author: Andrew Haley Date: Tue Nov 29 12:25:38 2016 +0000 Fix more unused warnings. commit d019de960477f5231a3082ad5c4cb13b69f5afda Author: Andrew Haley Date: Mon Nov 28 18:05:45 2016 +0000 Fix a few style errors. commit 806776592214b8a56e81f5a2124bf0f1b334fff4 Author: Andrew Haley Date: Mon Nov 28 12:03:49 2016 +0000 Fix a few style errors. commit a948773abcc02f51215399035c9679451325d562 Author: Andrew Haley Date: Sun Nov 27 17:36:53 2016 +0000 Fix warnings. commit 32c443b5c7c84aa6b42737d1224ead44db2730a1 Author: Andrew Haley Date: Fri Nov 25 16:10:43 2016 +0000 Fix a few style errors. commit 539cbc147dea9e1fde5e87e139eadcb5648d1e36 Author: Andrew Haley Date: Fri Nov 25 16:09:37 2016 +0000 Fix a few style errors. commit 4add54a62a32008a65f4ebe3300af52b295967c0 Author: Andrew Haley Date: Fri Nov 25 10:05:15 2016 +0000 Add missing braces. commit 5bd69ae0bd9e7ee047030c070408d92c218ca6c0 Author: Doug Simon Date: Fri Nov 25 10:53:59 2016 +0100 fixed sourcing of UseGraalInstrumentation value to be compilation local commit 49a97ed46c1e9a6830c53593b359a595e665266b Author: Doug Simon Date: Fri Nov 25 00:45:44 2016 +0100 fixed bugs in option overriding commit 64a0c239a728c1f0312d6f0687968ec53034bbab Author: Doug Simon Date: Wed Nov 23 00:31:20 2016 +0100 removed OptionKey.OverrideScope, DerivedOptionValue and BailoutAndRestartBackendException commit bb7d832717ea86a33e7415e9c49b243166cd0389 Author: Doug Simon Date: Wed Nov 16 16:10:37 2016 +0100 moved StableOptionKey invariant checking to OptionValues commit ab6f8b6760da3dcc2ede4b4589b041293498b972 Author: Doug Simon Date: Sun Nov 13 14:24:24 2016 +0100 indirect through OptionValues for getValue/setValue/hasBeenSet commit 45ffff3171466ea9539cd2d358868e5ad8183d50 Author: Doug Simon Date: Sat Nov 12 13:37:51 2016 +0100 fixed failing unit tests commit 5d981456e4dca208039e6e3986f36075713248aa Author: Doug Simon Date: Sat Nov 12 00:51:46 2016 +0100 rename OptionValue to OptionKey and added OptionValues as the store for values associated with OptionKeys commit 22edd24ca2c8af9ef010271d563b7dfdf63733e5 Author: Doug Simon Date: Fri Nov 11 18:16:35 2016 +0100 removed OptionValue profiling commit 42c3e92a20105bde82005616a0955c01deeda152 Author: Andrew Haley Date: Thu Nov 24 16:26:01 2016 +0000 Many small AArch64 fixes From vladimir.x.ivanov at oracle.com Tue Mar 21 21:01:05 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 22 Mar 2017 00:01:05 +0300 Subject: RFR: 8177346: hotspot change for 8176513 breaks jdk9 build on Ubuntu 16.04 In-Reply-To: <5fdb29ea-d5cd-9514-6877-6b5a36d0d426@oracle.com> References: <36f1d303-9a2c-c32e-e2d4-900bfb414606@oracle.com> <82bb55bf-cac0-0bfe-682f-37a906e57c93@oracle.com> <5fdb29ea-d5cd-9514-6877-6b5a36d0d426@oracle.com> Message-ID: <7dca58c9-4737-6b13-3869-47fe48f45582@oracle.com> Looks good. (CCed hotspot-compiler-dev) Best regards, Vladimir Ivanov On 3/21/17 11:50 PM, David Holmes wrote: > Fix is trivial but this is a compiler file and should have been reviewed > on the hotspot-compiler-dev mailing list. There is no logical reason why > 8176513 should have triggered this - so seems like a GCC bug to me that > it wasn't flagged much earlier. > > Anyway, Reviewed. > > Thanks, > David > > On 22/03/2017 6:40 AM, Phil Race wrote: >> I am not blaming that change as being "bad" in any way. >> I don't see how anyone could have foreseen this side effect. >> >> -phil. >> >> On 3/21/2017 12:56 PM, Daniel D. Daugherty wrote: >>> Adding folks involved with the fix for 8176513. >>> >>> Dan >>> >>> >>> >>> On 3/21/17 1:40 PM, Phil Race wrote: >>>> Please review a small JDK 9 build fix for a build failure due to >>>> >>>> hotspot/src/share/vm/opto/library_call.cpp:2578:3: error: >>>> ?need_mem_bar? may be used uninitialized in this function >>>> [-Werror=maybe-uninitialized] >>>> if (need_mem_bar) insert_mem_bar(Op_MemBarCPUOrder); >>>> >>>> https://bugs.openjdk.java.net/browse/JDK-8177346 >>>> >>>> I can't explain why GCC 5.4 woke up and decided to start reporting >>>> this warning when >>>> nothing logically changed that would trigger it. However I think it >>>> should already have >>>> been triggered - it is clear to me that the compiler has a point. >>>> >>>> The fix is simple and provided in-line below :- >>>> --- >>>> >>>> hg diff src/share/vm/opto/library_call.cpp >>>> diff --git a/src/share/vm/opto/library_call.cpp >>>> b/src/share/vm/opto/library_call.cpp >>>> --- a/src/share/vm/opto/library_call.cpp >>>> +++ b/src/share/vm/opto/library_call.cpp >>>> @@ -2372,7 +2372,7 @@ >>>> // the barriers get omitted and the unsafe reference begins to >>>> "pollute" >>>> // the alias analysis of the rest of the graph, either >>>> Compile::can_alias >>>> // or Compile::must_alias will throw a diagnostic assert.) >>>> - bool need_mem_bar; >>>> + bool need_mem_bar = false; >>>> switch (kind) { >>>> case Relaxed: >>>> need_mem_bar = mismatched && !adr_type->isa_aryptr(); >>>> >>>> --- >>>> >>>> In fact this initialisation pattern is already used in other nearly >>>> identical cases in >>>> the same function. >>>> eg this one about 20 lines before my update >>>> bool mismatched = false; >>>> >>>> and this one about 20 lines after .. >>>> bool requires_atomic_access = false; >>>> >>>> So there is ample precedent. >>>> >>>> I will get the appropriate RDP2 approvals to push once code review is >>>> complete. >>>> I also anticipate that by the time this happens I will need to push >>>> it to >>>> http://hg.openjdk.java.net/jdk9/dev/hotspot/ >>>> as per the email here : >>>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2017-March/026155.html >>>> >>>> >>>> >>>> Let me know if you think otherwise. >>>> >>>> JPRT is being used to build/test the fix. >>>> >>>> -phil. >>>> >>> >> From igor.veresov at oracle.com Tue Mar 21 21:06:18 2017 From: igor.veresov at oracle.com (Igor Veresov) Date: Tue, 21 Mar 2017 14:06:18 -0700 Subject: RFR(XXXL): 8177046 Update Graal Message-ID: This is Graal refresh in JDK10. It required some changes to jaotc mostly related how Graal options are now handled. It all seems to work - aot, jprt, rbt hs-tier0-comp. There is one failure in rbt which occurs when Graal is used as a JIT. But I think it can be addressed later and fixed in the next refresh (if there are no objections). Webrevs: http://cr.openjdk.java.net/~iveresov/8177046/webrev-jdk.00/ http://cr.openjdk.java.net/~iveresov/8177046/webrev-hotspot.00/ Changes between JDK-8166417 and JDK-8177046 : commit 532c57329aa3a453ff4d2fefeb6fddc3cc03b8aa Merge: 7347014 bd02b2e Author: Thomas W?rthinger Date: Fri Mar 17 16:50:06 2017 -0700 [GR-3285] Fixes to support JDK AOT use cases correctly. commit 7347014a9ca6751f9f7c27436bdad8d50e7ea168 Merge: f06c39e 6d22782 Author: Doug Simon Date: Fri Mar 17 16:21:09 2017 -0700 [GR-3277] Gate on jdk9-ea+161. commit f06c39e247e74ec36d88af1552ee5a19d36a7bb0 Merge: 099df9f 52727fa Author: Thomas W?rthinger Date: Fri Mar 17 15:35:44 2017 -0700 [GR-3275] Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. commit bd02b2edb414a309e4ba68261c5f936ef0e0a40d Author: Igor Veresov Date: Fri Mar 17 12:16:55 2017 -0700 Fix a few things to make JDK AOT work agian commit 52727fadfae472ac361c8af02e015eed9730d7dd Author: Thomas W?rthinger Date: Fri Mar 17 15:43:05 2017 +0100 Rewrite recursive algorithm in PropagateDeoptimizeProbabilityPhase to be iterative. commit 145bebb7ebceea51c375ed715ad7dd82f002e6d4 Author: Thomas W?rthinger Date: Fri Mar 17 15:22:36 2017 +0100 Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. commit 099df9ff553086d10a4369f692559e7035fc24bf Merge: 31e5340 5dfcdf0 Author: Thomas W?rthinger Date: Fri Mar 17 11:01:30 2017 -0700 [GR-3274] Add additional canonicalizations to the multiplication node for the case where one operand is constant. commit 6d227828278a32f78defcb78fcc58bdd19b88066 Author: Doug Simon Date: Fri Mar 17 18:31:37 2017 +0100 gate on jdk9-ea+161 commit 5dfcdf0ae1902818cb681da9f2b81b5fedb5e50f Author: Thomas W?rthinger Date: Fri Mar 17 16:48:32 2017 +0100 Add additional canonicalizations to the multiplication node for the case where one operand is constant. commit 31e5340042fc8bb9fb22b5704da7189e3e05e9e8 Merge: eb57bf9 cc28520 Author: Doug Simon Date: Fri Mar 17 07:58:15 2017 -0700 [GR-3265] Support jdk9-ea+161. commit cc2852014b474b44e4f5cd685885d347c644701f Author: Doug Simon Date: Fri Mar 17 01:11:00 2017 +0100 support jdk9-ea+161 commit eb57bf9a2e3ec66dc82f8ec6ded118f596535632 Merge: 1f9dd5e 3b24c57 Author: Andreas Woess Date: Fri Mar 17 06:06:28 2017 -0700 [GR-3256] Fix TraceTruffleAssumptions stack trace output. commit 1f9dd5e79298f1a36d1bed99f3d24017052f5f85 Merge: ef5624c aa243ee Author: Doug Simon Date: Fri Mar 17 03:50:27 2017 -0700 [GR-3267] JMH intrinsics need to be optional. commit aa243ee242d6e6c1fdd8a615407051b5609bcd00 Author: Doug Simon Date: Fri Mar 17 10:24:22 2017 +0100 JMH intrinsics need to be optional commit ef5624c9839fe9258dbc858b759a7821187d4a89 Merge: 6a44fba f741158 Author: Thomas W?rthinger Date: Thu Mar 16 07:39:13 2017 -0700 [GR-3149] Fix an issue in the conditional elimination that could lead to pi nodes for phis picking up wrong guards. commit f7411584e6bb957a83b47b4591b1e9163160c654 Author: Thomas W?rthinger Date: Thu Mar 16 15:06:53 2017 +0100 Fix an issue in the new conditional elimination that could lead to pi nodes for phis picking up wrong guards if branches are killed while preparing the info elements. commit 3b24c57e9d227d390b1b15773458c98ce27db065 Author: Andreas Woess Date: Thu Mar 16 13:48:52 2017 +0100 Enable node source positions for Truffle compilations if shouldDebugNonSafepoints() or TruffleEnableInfopoints=true commit d214ec43996729def84313aa7316d342e5cc63ce Author: Andreas Woess Date: Wed Mar 15 21:39:09 2017 +0100 Remove leftover debug code commit 829ceef47a7b14fd13e291d5dd1228d7c1990990 Author: Andreas Woess Date: Wed Mar 15 18:19:23 2017 +0100 Cleanup: no need to subclass CachingPEGraphDecoder commit 001322b49be3822638d8a9e1652692dedaa57784 Author: Andreas Woess Date: Wed Mar 15 19:17:39 2017 +0100 [GR-3256] Fix TraceTruffleAssumptions stack trace output. commit 6a44fba8e8004fe12934dc31e4f5dbb8dc6b26b3 Merge: 2cdb24c 1fd6484 Author: Doug Simon Date: Wed Mar 15 17:38:06 2017 -0700 [GR-3226] Add ZipPy based OOPSLA14 paper. commit 2cdb24c193d7f491dbd2dcbb0ae115bdcdc8c689 Merge: 1879aca 7afd70a Author: Doug Simon Date: Wed Mar 15 05:45:42 2017 -0700 [GR-3246] Handle exceptions while opening a Debug scope better. commit 7afd70a750ffbe2f2df2885c837f2e5d94609264 Author: Doug Simon Date: Wed Mar 15 12:53:25 2017 +0100 better reporting of exception when opening a Debug scope commit 1879acafd6342623873b2cc69132960abb4e327e Merge: 2e50f8e e3e8dfe Author: Thomas W?rthinger Date: Wed Mar 15 04:17:21 2017 -0700 [GR-3245] Improve canonicalizations of NarrowNode and ZeroExtendNode. Add additional canonicalization after fixing reads. commit e3e8dfeb54443fcc0f5772f3273cf86b899e3365 Author: Thomas W?rthinger Date: Wed Mar 15 11:22:45 2017 +0100 Use result bits instead of stamp in ZeroExtendNode. commit 1fc9abbc64212df38add4df80bd45bead25451a8 Author: Thomas W?rthinger Date: Tue Mar 14 19:20:24 2017 +0100 Also clear last location access in fix reads phase. commit 9ecb01147f54dd7808dcbf0ee0147427e7f7b04d Author: Thomas W?rthinger Date: Tue Mar 14 19:13:12 2017 +0100 Make sure short circuit or nodes are not introduced by canonicalization after logic expansion phase was run. commit 9aa8fd04caec7458d78b5fb14be771a7464aa9ca Author: Thomas W?rthinger Date: Tue Mar 14 16:26:36 2017 +0100 Remove memory phis during fix reads phase. commit 7ae30083e7e8f8d6ab163e2caf5da731032c125c Author: Thomas W?rthinger Date: Tue Mar 14 16:26:09 2017 +0100 Run a canonicalizer without GVN after fixing reads and removing pi nodes. commit 9f496abc97c020e406f2073d1ff0d8bd4730224a Author: Thomas W?rthinger Date: Tue Mar 14 16:25:48 2017 +0100 Add ability to disable GVN in canonicalizer. commit 409d5d42f9929a4790a6d0ec30c7b8188a61e660 Author: Thomas W?rthinger Date: Tue Mar 14 15:51:56 2017 +0100 Improved canonicalizations for NarrowNode and ZeroExtendNode. commit 2e50f8edb5a3f33f772510b1eb0480a28eac7db2 Merge: 8ffb5cf cf1dd8f Author: Thomas W?rthinger Date: Wed Mar 15 03:11:00 2017 -0700 [GR-3244] Load all non simm13 constants for OP3 ops. commit cf1dd8ff253c115efba7e6ec5ed9496fa45aad8e Author: Stefan Anzinger Date: Wed Mar 15 09:22:01 2017 +0000 [GR-3244] Load all non simm13 constants for OP3 ops. commit 8ffb5cf6ff82a5bf33f265da780c3e4a322f2127 Merge: 4182260 92abdc9 Author: Doug Simon Date: Tue Mar 14 17:59:03 2017 -0700 [GR-3243] Make check for option descriptor existence overridable. commit 92abdc9d0a82db0b2679d92ac834e8cd70b8d9ea Author: Doug Simon Date: Wed Mar 15 00:20:06 2017 +0100 allow option descriptor existence check to be overridden commit 418226004e091c7b511c97ee62467c138bd9bf0f Merge: ff3feb9 c2a2447 Author: Doug Simon Date: Tue Mar 14 15:16:04 2017 -0700 [GR-3212] [GR-3057] Replace PiNode+NodeIntrinsicStamp with placeholder node. commit c2a2447ad86f404b66e2c102e375cfcb00ab34aa Author: Doug Simon Date: Mon Mar 13 17:27:45 2017 +0100 use placeholders for PiNodes that get their stamp from a snippet replacee commit ff3feb9b4d246779f37d551522782c9ef66243dd Merge: 8d3e056 853af95 Author: Doug Simon Date: Tue Mar 14 14:45:33 2017 -0700 [GR-3241] JDK9 aware mechanism for options loading must be universally applied. commit 853af9549616df9829af52860c8a2ee9bc40150d Author: Doug Simon Date: Tue Mar 14 21:56:53 2017 +0100 loading options must always be jdk9-modules aware commit 8d3e05605e59da9c4d576895c81ae04b4250efe8 Merge: 2cfd95a 3dac632 Author: Doug Simon Date: Tue Mar 14 14:13:36 2017 -0700 [GR-3240] Remove static field Stub.stubs. commit 1fd64845a4f1dc9b17d75edf045d4e88464d43f6 Author: Doug Simon Date: Tue Mar 14 22:11:19 2017 +0100 add "Accelerating iterators in optimizing AST interpreters" paper (OOPSLA14) commit 3dac632a0a789232cd405a622ef973ed3d2bc816 Author: Doug Simon Date: Tue Mar 14 21:04:19 2017 +0100 replace Stub.getStubs() with HotSpotForeignCallProvider.getStubs() commit 2cfd95a6a5ab2cd0785c67a1fe5264a5c3fdb42d Merge: 06fbf00 492bf4f Author: Thomas W?rthinger Date: Tue Mar 14 12:44:05 2017 -0700 [GR-3238] Improve killCFG to reliably delete nodes. commit 492bf4f48c3a7e8f5bfd0060b0ca681cbb0ddd5b Author: Gilles Duboscq Date: Thu Mar 9 17:42:44 2017 +0100 [GR-3195] Fix killCFG leaving 'unsafe' inputs Avoid using null for the input of Phi nodes, use Poison instead. commit 06fbf000db55cea8c15e0099415010adcb4984b0 Merge: 21ec724 0da5287 Author: Thomas W?rthinger Date: Tue Mar 14 06:53:40 2017 -0700 [GR-3227] Simplify and improve address lowering to swap index and base when appropriate. commit 0da528791a95721947a41ec5a33e65726ae443b8 Author: Thomas W?rthinger Date: Tue Mar 14 14:03:05 2017 +0100 Simplify and improve address lowering to swap index and base when appropriate. commit 21ec724defa8a0f08bbe5a512f45d0b8ed5146ad Merge: 7a12664 8fdd855 Author: Doug Simon Date: Tue Mar 14 05:47:15 2017 -0700 [GR-3222] Try detect missing @Option annotation processor. commit 7a1266444ead236c3dbb727b7faf39e3436f6d6c Merge: e78391d 6d84784 Author: Thomas W?rthinger Date: Tue Mar 14 04:26:27 2017 -0700 [GR-3225] Recognize implicit null checks as part of trapping null checks phase. commit 6d84784cb648102c191a1712e3dbfaad5a69f09e Author: Thomas W?rthinger Date: Tue Mar 14 01:44:07 2017 +0100 Recognize implicit null checks as part of trapping null checks phase. commit 8fdd8558be437b463cee5f04565eff2319530744 Author: Doug Simon Date: Mon Mar 13 23:38:55 2017 +0100 try detect missing @Option annotation processor dependency commit e78391dedad2787f274f28f156279472deb9aa45 Merge: bd6f7bf 89e208f Author: Thomas W?rthinger Date: Mon Mar 13 12:59:01 2017 -0700 [GR-3218] Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. commit 89e208f171d14306d1d6746e208ccb049e1df4be Author: Thomas W?rthinger Date: Mon Mar 13 20:32:02 2017 +0100 Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. commit bd6f7bffb0020b21a0d7b9628bd21bf03cd9b2bc Merge: 95ddee1 6f36b03 Author: Thomas W?rthinger Date: Mon Mar 13 10:48:35 2017 -0700 [GR-3217] Improve code for pointer compression. commit 6f36b03649c4012fbb2ed8656db4b01e451eb9fe Author: Thomas W?rthinger Date: Mon Mar 13 17:33:02 2017 +0100 Introduce mayNullCheckSkipConversion method in ConvertNode interface. Move address lowering after fixed read phase. commit 74fe0007e19dced56b07155b3ee5e95c7c0ce67e Author: Thomas W?rthinger Date: Mon Mar 13 15:16:07 2017 +0100 Add option to avoid barrier on unsafe stores. Rename unsafe store and load nodes to "raw" unsafe store and load nodes. commit 4a53d32d315925b766337f030cdaaf52ff0686be Author: Thomas W?rthinger Date: Thu Mar 9 14:18:15 2017 +0100 Fix write barrier verification phase. commit 9f67aa8d206369fba444345e4cc16389af8ebfd1 Author: Thomas W?rthinger Date: Wed Mar 8 17:56:31 2017 +0100 Adjust compressed null check test to not modify the graph and for the fact that this canonicalization now occurs in the IsNullNode. commit 45523aac92e8fcf2f4cb6725a70952ee0caea510 Author: Thomas W?rthinger Date: Wed Mar 8 15:32:14 2017 +0100 Add skip through lossless convert functionality to IsNullNode. commit 5ca64dd073772f43f10173cb7cef400823624dd9 Author: Thomas W?rthinger Date: Sun Feb 26 21:28:14 2017 +0100 Introduce init location and use this location to decide whether a write is an initialization write or not. commit 19ce207634905a612f94a441bd3e4881c9699995 Author: Thomas W?rthinger Date: Sun Feb 26 20:27:54 2017 +0100 Simplify ReadNode and WriteNode constructors. commit 05a3d7d8e53d16ec243d364ef24b6ef492b4cf0f Author: Thomas W?rthinger Date: Sun Feb 26 18:28:18 2017 +0100 Remove DirectObjectStoreNode and replace usages with UnsafeStoreNode. commit 60ba844f0bb94bbc9a0e4bdad2112cbc92fc72b4 Author: Thomas W?rthinger Date: Sun Feb 26 17:34:29 2017 +0100 Move CompressEncoding from HotSpot-specific to general part. Remove unused alignment field. commit 95ddee1ea392e4454b83264e4c0ef728821d0fad Merge: 64194d0 b560415 Author: Gilles Duboscq Date: Mon Mar 13 08:26:22 2017 -0700 [GR-2555] Fold `x - 1 |<| x || x == 0`. commit b56041582a6bbc19d871c5227b7fd6eff89f320b Author: Gilles Duboscq Date: Mon Mar 13 15:03:00 2017 +0100 ZeroExtend: avoid problems with empty stamps commit 64194d0b9be6e22ef948abaae3300b8051844407 Merge: 7281bc5 284e39f Author: Christian Humer Date: Mon Mar 13 05:59:25 2017 -0700 [GR-3182] Do not reuse frame descriptor for OSR root nodes. commit 42eb5d00d9abc466c8faa9f4bde5551a0807aa3c Author: Gilles Duboscq Date: Mon Feb 27 16:29:39 2017 +0100 Add NumUtil.sameSign and IntegerStamp.sameSignBounds commit 3dee10a429eef95104c192473a89909ef2d61f5f Author: Gilles Duboscq Date: Fri Feb 24 17:45:26 2017 +0100 Make sure splitIfAtPhi is not appliest before FSA commit 2163d91dac75656609a5b160f69e58db4ac9cbfd Author: Gilles Duboscq Date: Fri Feb 24 17:43:19 2017 +0100 Add more tests commit 1d453dfc3b7df282a842e1cb01d14d52e9d6ba80 Author: Gilles Duboscq Date: Fri Feb 24 17:41:18 2017 +0100 Canonicalize NormalizeCompare patterns commit e196bac444f1e95c018d0909af12d9a049b4be24 Author: Gilles Duboscq Date: Tue Mar 7 07:57:42 2017 -0800 Canonicalize `a + MIN < b + MIN` to `a |<| b` commit 2ef1eb30f194d140bbc762161dc5664c861f1c62 Author: Gilles Duboscq Date: Fri Feb 24 18:10:40 2017 +0100 Canonicalize x + c < x commit 85cc9ffe2a6b6e2d64c2a36a0e2ee9ab0b0a491b Author: Gilles Duboscq Date: Fri Feb 24 17:35:33 2017 +0100 Canonicalize x + c1 == c2 commit 4567b9e3602866ed367a8eea12959d7ba4d84f9a Author: Gilles Duboscq Date: Fri Jan 27 18:33:32 2017 +0100 [GR-2555] Fold `x - 1 |<| x || x == 0`. Added the `y + c |<| y` and `x |<| x + c` patterns for conditional elimination. Added `StampInverter`, make `IntegerConvert` implement it and use it in the new conditional elimination. This allows it to get a stamp for x when it has one for zeroExtand(x). commit 878a6d72927e4ca53f4ed028badde8be24e905a5 Author: Gilles Duboscq Date: Tue Feb 14 15:46:17 2017 +0100 Move NumUtil to core.common Also remove common and merge it into core.common commit 7281bc5cc25cb83e4ec7414b4804d33dab44384c Merge: a0848f5 a8a5023 Author: Doug Simon Date: Fri Mar 10 12:42:32 2017 -0800 [GR-3196] Remove obsolete ImmutableCode functionality. commit a8a50239411881f0f9f7a0fa215d7c38447ffdf1 Author: Doug Simon Date: Fri Mar 10 15:42:29 2017 +0100 removed obsolete ImmutableCode logic commit a0848f59192d1a60d1b8b7842b9afd7a13cd9762 Merge: 6453e48 7eceda8 Author: Tom Rodriguez Date: Fri Mar 10 08:55:24 2017 -0800 [GR-3179] Fixed register usage for string indexof assembly. commit 6453e489e796f009e1a4bcfec15f47aa393ed1aa Merge: bd0c1e6 27c119f Author: Vojin Jovanovic Date: Fri Mar 10 08:44:20 2017 -0800 [GR-3200] Update intellij instructions. commit 27c119fa93233a9662800b8ba57b8740e4d1e2b3 Author: Vojin Jovanovic Date: Fri Mar 10 16:22:49 2017 +0100 [doc] update intellij instructions commit 08c8f8ac24c366f70be86a113416dede8597e282 Author: Doug Simon Date: Fri Mar 10 12:43:35 2017 +0100 options should be taken from graph if possible commit bd0c1e6c2c405d2735f52d7459a377ba8ed00354 Merge: 9dfc7ba ec0bd51 Author: Doug Simon Date: Fri Mar 10 01:50:19 2017 -0800 [GR-2577] Make it possible to build Graal using only jdk9. commit ec0bd511c177a86742a9c9ea1e48b40ecb15817f Author: Doug Simon Date: Thu Mar 9 22:54:20 2017 +0100 update mx version commit 9dfc7baa47e299e224dda6d98963ad4491eda5ac Merge: 1bc5b55 e4baf69 Author: Thomas W?rthinger Date: Fri Mar 10 01:18:37 2017 -0800 [GR-3188] Add receiver null check for Truffle load nodes. commit 1bc5b55d432067f53b2c3ab2ae3769c773c740db Merge: 628fd73 ac4d892 Author: Aleksandar Prokopec Date: Thu Mar 9 14:30:22 2017 -0800 [GR-3186] Add the unfreeze method to Graph. commit e4baf69da8e898edfc4aeff245b38503fae9e123 Author: Thomas W?rthinger Date: Thu Mar 9 23:11:49 2017 +0100 Add receiver null check for Truffle load nodes. commit 628fd73bc0eabd520776b6ff70e594b628824779 Merge: 999da54 653fb60 Author: Josef Eisl Date: Thu Mar 9 14:07:54 2017 -0800 [GR-3175] Run DaCapo style benchmarks on both nodes in parallel. commit 7eceda86f64250769900d6822e2b003cc3f29f50 Author: Tom Rodriguez Date: Wed Mar 8 16:33:20 2017 -0800 Fixed register usage for string indexof assembly commit 653fb601e3dec18a4bee56ca80a662a036f5d982 Author: Josef Eisl Date: Thu Mar 9 13:21:39 2017 +0100 [ci] increase tmpfs for x32 to 25g commit a664309dd7012fb10443354112153ab10d1d395a Author: Josef Eisl Date: Thu Mar 9 11:37:26 2017 +0100 [ci] use curly braces for environment variables commit a37e70600b9bbb0f584aaacbc242a15e31a38cf6 Author: Josef Eisl Date: Thu Mar 9 10:54:47 2017 +0100 [ci] rename results file environment variables commit 15a25de31654dfddb9741ff929107a55198d19f6 Author: Josef Eisl Date: Thu Feb 23 16:54:44 2017 +0100 [ci] run DaCapo-style benchmarks in parallel on multi-node machines commit ac4d892824d40e9eec14d09bdd266ff127b0e8f4 Author: Aleksandar Prokopec Date: Thu Mar 9 14:02:05 2017 +0100 [feature] Add temporary graph freeze state, and allow unfreezing a graph. commit 3df3392bb818125288ab7f5a373e56061e77caaa Author: Doug Simon Date: Thu Mar 9 16:41:11 2017 +0100 IGV doesn't yet work with JDK 9 commit 999da5413324bfb8ed4e80ee432580a18f299928 Merge: feac9f6 21a99d7 Author: Thomas W?rthinger Date: Thu Mar 9 05:09:49 2017 -0800 [GR-3072] Fix non-null stamp machinery for other non-object pointers. commit 2d278ebaced888850305403c9e231eeb22ce8c09 Author: Doug Simon Date: Thu Mar 9 13:36:39 2017 +0100 made String.indexOf intrinsic optional commit 9eea440de6c54932fa07b4035931013aea20bc76 Author: Gilles Duboscq Date: Wed Feb 1 15:34:41 2017 +0100 make it possible to build against 9 alone Use newer mx Replace uses of internal ASM in test with external ASM jars Made some substitutions optional commit 284e39fda0613ec9e0f5f4bfcf44e0b95a4b6838 Author: Lukas Stadler Date: Thu Mar 9 12:02:55 2017 +0100 fix warning problem commit 5d5de01bec53de85de0142846db01f4cdea24a35 Author: Lukas Stadler Date: Thu Mar 9 11:53:04 2017 +0100 do not reuse frame descriptor for OSR root nodes commit feac9f656ade524ae81808ee81f47cb286f6653e Merge: 3cead4d 1ed06ff Author: Thomas W?rthinger Date: Thu Mar 9 04:00:21 2017 -0800 [GR-3077] The isSingleValueUser method returns wrong answer for guards. commit 3cead4d7405b6d55d1a7e6162c1295c987d5197d Merge: e9098f7 623d6f4 Author: Thomas W?rthinger Date: Thu Mar 9 03:20:41 2017 -0800 [GR-3184] Improve out of loop schedule to take frequency of latest block and block before the loop header into account. commit e9098f79a7c052ec6efe024cf1a3d76abf198301 Merge: 4edf987 d3c879f Author: Josef Eisl Date: Thu Mar 9 03:18:16 2017 -0800 [GR-3180] Move dump-on-error flags to gate command. commit 4edf987dc522a6147117a504c328dec3aca3fd52 Merge: 78521e4 681750b Author: Stefan Anzinger Date: Thu Mar 9 03:17:11 2017 -0800 [GR-2191] Extend inliner to start with a fixed list of invocations. commit 78521e45d34bac7ab4beb745c8ab9ec555d64d5a Merge: 2f7198e 9df9b45 Author: Lukas Stadler Date: Thu Mar 9 02:17:46 2017 -0800 [GR-3115] Inline methods with substitutions during partial evaluation. commit d3c879f84babaa6daa6a6d10c9d65c5bd4a86d33 Author: Josef Eisl Date: Thu Mar 9 10:59:02 2017 +0100 [ci] add DumpOnError and PrintGraphFile flags to the gate command commit 3bc433871313065fc8e3238e6359e6759baf6ecd Author: Josef Eisl Date: Thu Mar 9 10:56:37 2017 +0100 Revert "[feature] Capture bgv files on error." This reverts commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39. commit 2f7198e7f388e0d2f703a8de23c13880358c000f Merge: fde4a7c f61e0db Author: Codrut Stancu Date: Wed Mar 8 15:05:04 2017 -0800 [GR-3157] Trace constant roots. commit 623d6f44695a5670b1ee04d58f75b7894a763c3e Author: Thomas W?rthinger Date: Wed Mar 8 21:56:49 2017 +0100 Always move out of loops when value proxies are in the graph. commit 38468d9cf613d4f59a3f5706535b44f8b4f5993c Author: Thomas W?rthinger Date: Wed Mar 8 17:55:56 2017 +0100 Modify memory schedule test to include loop frequencies. commit f5353a213553b16e07a8ba4a5a54aba6e050ce5e Author: Thomas W?rthinger Date: Wed Mar 8 17:34:07 2017 +0100 Improve out of loop schedule to take frequency of latest block and block before the loop header into account. commit f61e0db76eb16726ffd2179ae2c2ee44cc075c0e Author: Codrut Stancu Date: Fri Mar 3 19:51:46 2017 -0800 Trace constant roots WIP. commit fde4a7c26c2d8d5323c51bc56e4bdc3392e73035 Merge: 8b69e82 e85077e Author: Josef Eisl Date: Wed Mar 8 10:06:13 2017 -0800 [GR-3039] Remove usage of AbstractBlockEndOp. commit e85077e645e4556c5256a545f22f9d99038ac38d Author: Josef Eisl Date: Fri Feb 24 22:09:18 2017 +0100 [fix] TraceRA: remove AbstractBlockEndOp commit 85f497f35b6bd544728f1057ad577a76add79e2a Author: Josef Eisl Date: Tue Feb 28 17:43:35 2017 +0100 [refactor] move outgoingValues to JumpOp (needed for phis only) commit 69af182ef55df980a8637763224a09ed40809eab Author: Josef Eisl Date: Tue Feb 28 17:50:37 2017 +0100 [fix] remove outgoing from BlockEndOp commit 19a7d71645326678af072f00faed7bcc6175cf1b Author: Josef Eisl Date: Wed Mar 8 09:49:11 2017 +0100 [fix] Remove addOutgoingValues ad forEachOutgoingValue from BlockEndOp commit 681750bf03f5f9bc9c63dd8d6d8d537ae1681ea3 Author: Stefan Anzinger Date: Fri Feb 24 13:26:42 2017 +0000 [feature] Extend inliner to start with a fixed list of invocations. commit 8b69e82739f0f8696b7e61cb2d0d10fa338d68a6 Merge: 6e73e85 d9c4c19 Author: Aleksandar Prokopec Date: Wed Mar 8 04:39:09 2017 -0800 [GR-3160] Always capture bgv files when Graal builds fail. commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39 Author: Aleksandar Prokopec Date: Wed Mar 8 11:15:56 2017 +0100 [feature] Capture bgv files on error. commit 6e73e855621572d2df86d9aa0aae9c7eab158b2d Merge: abf7690 3de73d2 Author: Roland Schatz Date: Wed Mar 8 03:12:02 2017 -0800 [GR-3161] Update truffle import. commit 3de73d21cc5e946f80366c3b330737ea967b94ff Author: Roland Schatz Date: Wed Mar 8 11:30:44 2017 +0100 Update truffle import. commit abf76900647664115b38cc46e4fcfd0a76c9f94e Merge: b3b9eb7 1e2e897 Author: Thomas W?rthinger Date: Wed Mar 8 01:28:39 2017 -0800 [GR-3080] Fix issues with pi rewiring and picking up wrong conditions in the conditional elimination. commit 1e2e89737fa43878186d94ae36cb5aacdb7dc7d9 Author: Thomas W?rthinger Date: Tue Mar 7 22:38:26 2017 +0100 Add documentation on the methods that pick up stamps and change getSafeStamp for the primary value. commit a9d7655bbc623e730291b95dc95b35a1376da90c Author: Thomas W?rthinger Date: Tue Mar 7 21:23:39 2017 +0100 Adding back AndNode second level structural conditional elimination. commit 42fe25cbfa75fd055cdc548bab626e6868d89560 Author: Thomas W?rthinger Date: Tue Mar 7 16:12:29 2017 +0100 Only look up info elements in own pi chain. commit 6f310e81d7733b91394fae785545828637aaf5ed Author: Thomas W?rthinger Date: Mon Mar 6 20:58:02 2017 +0100 Make getSafeStamp more aggressive. commit 875e510f8197bbe15de0f3b0af4707c76007f907 Author: Thomas W?rthinger Date: Mon Mar 6 19:46:50 2017 +0100 Do not rewire pis in new conditional elimination. Use safe stamps on both sides of binary operations. commit b3b9eb76f239a1d01cb2d2329c3c8d964c95f288 Merge: 553d83c b7fb999 Author: Thomas W?rthinger Date: Wed Mar 8 00:34:51 2017 -0800 [GR-3159] Make FixReadsPhase extensible to allow changing scheduling strategy. commit b7fb9991b3be11483e8318c2409eacca80535f92 Author: Thomas W?rthinger Date: Tue Mar 7 21:58:09 2017 +0100 Make FixReadsPhase extensible to allow changing scheduling strategy. commit 553d83c86231497effd130c5bd4e7ba92a04f37f Merge: 950f4d0 d11b37d Author: Aleksandar Prokopec Date: Tue Mar 7 07:31:02 2017 -0800 [GR-3143] Do profiling on @TruffleBoundary and not @TruffleCallBoundary. commit d11b37df3b28ab01cb294614f1b01ab61f170f88 Author: Aleksandar Prokopec Date: Tue Mar 7 12:34:07 2017 +0100 [fix] Instrument TruffleBoundary calls instead of TruffleCallBoundary calls. commit 950f4d030178eef043fb2ee2b19c31612790e774 Merge: 82d2de2 5122025 Author: Josef Eisl Date: Tue Mar 7 05:58:25 2017 -0800 [GR-3039] TraceRA: no longer store global liveness information in LIR. commit 512202516f20a4886f259eac8b24260bd55421ed Author: Josef Eisl Date: Wed Mar 1 15:01:46 2017 +0100 [refactor] TraceRA[GLI]: rename addIncoming/addOutgoing to setIncoming/setOutgoing commit d73a39e114c7c8903ef195e8cc62f37cacea1052 Author: Josef Eisl Date: Wed Mar 1 13:23:31 2017 +0100 [refactor] TraceRA[BU]: inline PhiVisitor commit 4367403e3926209294ee809763f6025b092ef073 Author: Josef Eisl Date: Sat Feb 25 15:16:32 2017 +0100 [feature] TraceRA[LS]: only materialize the locations array if there is an inter-trace edge commit 4e92fde8266aeb98b24ce53d13c4c2a16447a32e Author: Josef Eisl Date: Tue Feb 28 11:26:36 2017 +0100 [fix] TraceRA[LS]: do not insert spill moves at block begin commit 3047f501f54a0a7b6af351a78386496a77726677 Author: Josef Eisl Date: Sat Feb 25 14:09:09 2017 +0100 [feature] TraceRA[LS]: set inter-trace hints only if there is none commit 2beb022cc6fd0f90d338ffb8af299e6874eabaeb Author: Josef Eisl Date: Sat Feb 25 14:02:44 2017 +0100 [fix] TraceRA[LS]: set hints for phis again commit da6bbc89aa9edfa40a815f5923b3de65b699ddda Author: Josef Eisl Date: Fri Feb 24 23:32:38 2017 +0100 [refactor] TraceRA: remove remaining SSI references commit 376c4318fd2d26d4a7c6db015c3d7f99669ba7ac Author: Josef Eisl Date: Fri Feb 24 23:12:56 2017 +0100 [refactor] TraceRA: rename SSIConstructionPhase to GlobalLivenessAnalysisPhase commit 5a80c97c9307808a5f7be393dc87b7904cf52cc1 Author: Josef Eisl Date: Fri Feb 24 22:59:25 2017 +0100 [refactor] TraceRA: inline FastSSIBuilder commit c610210904138d997566ef71250f688a1cbcf429 Author: Josef Eisl Date: Fri Feb 24 22:49:29 2017 +0100 [refactor] TraceRA: remove SSIBuilderBase commit d243ee9785788cd8b2494253fb152496b2cad416 Author: Josef Eisl Date: Fri Feb 24 22:38:54 2017 +0100 [refactor] TraceRA: remove old SSIBuilder commit 5ad64f66d489e65b896fb32407231d9b25640924 Author: Josef Eisl Date: Fri Feb 24 21:43:48 2017 +0100 [refactor] TraceRA: remove SSIUtil commit adbec4d62dbdc279e86a8143f3b8ac5026c36743 Author: Josef Eisl Date: Tue Feb 28 17:50:09 2017 +0100 [fix] TraceRA: no longer use BlockEndOp commit 05b04309d260619f46c01816d6085f7a171344e6 Author: Josef Eisl Date: Fri Feb 24 18:17:02 2017 +0100 [fix] TraceRA: remove obsolete verification code commit ff40a6950ec55e9a122ad09a37feb09a3f0347c2 Author: Josef Eisl Date: Fri Feb 24 18:11:00 2017 +0100 [fix] TraceRA: reenable inter-trace hints commit 490a30c2bdecbbf4008622979c5e1001a4525bcd Author: Josef Eisl Date: Wed Feb 22 13:41:28 2017 +0100 [doc] TraceRA[BU]: fix javadoc commit 84e0436c5373100b74372e225a1c5698b6095cac Author: Josef Eisl Date: Fri Feb 24 17:31:47 2017 +0100 [feature] TraceRA: remove indirection for getBlockIn and getBlockOut in GlobalLivenessInfo commit dcf20531d5594bffd02f6dbbdeba804106c68657 Author: Josef Eisl Date: Fri Feb 24 17:08:23 2017 +0100 [feature] TraceRA: do not initialize live vars with empty lists commit 9f21a8cddef25b4c02d6e710cd90201f85b4cbdc Author: Josef Eisl Date: Fri Feb 24 15:24:29 2017 +0100 [feature] TraceRA: support GlobalLivenessInfo in CFGPrinter commit f9f749f707be597af432e59b8aa701f817b4a4f9 Author: Josef Eisl Date: Fri Feb 24 15:26:34 2017 +0100 [feature] TraceRA: do no longer store global liveness info in LIR commit 91947056239d8f3c0dcf7e2bf91c532e91bbd6a6 Author: Josef Eisl Date: Fri Feb 24 15:27:45 2017 +0100 [fix] Improve assertion message in RedundantMoveElimination commit 82d2de215cbec3582663556d92faaa2f4483fe94 Merge: ef0b935 736c34a Author: Doug Simon Date: Tue Mar 7 03:17:57 2017 -0800 [GR-2865] Print absolute IGV dump paths. commit 1ed06ff10c3b155131a81fbff31abb1aa4fd6779 Author: Tom Rodriguez Date: Tue Feb 28 14:07:34 2017 -0800 isSingleValueUser returns wrong answer for guards commit 9df9b455e1a62101055b5267c2711ce5e8b6e0fc Author: Christian Wimmer Date: Mon Mar 6 15:17:08 2017 -0800 Partial evaluation tests for String.hashCode commit ea7a1ace84c5f20498b3c66642e0c828e2edd385 Author: Christian Wimmer Date: Mon Mar 6 14:01:22 2017 -0800 Inline methods with substitutions during partial evaluation commit 736c34a602a67275222f69beecd7b56ec37f4844 Author: Stefan Anzinger Date: Mon Mar 6 18:16:13 2017 +0000 [GR-2865] Print absolute IGV dump paths. commit ef0b935e346c7708cf871ac0ec07d88fbd30921b Merge: 485dc46 490067c Author: Doug Simon Date: Mon Mar 6 03:31:11 2017 -0800 [GR-3048] Re-enable gating on JDK 9 snapshots. commit 490067c9cab133f2ee472f787cb6dd28df2a9cfb Author: Doug Simon Date: Sun Mar 5 21:01:47 2017 +0100 include app class loader when searching for services in modules that extend Graal commit f9ec74f473ffeba34506d416d85838d2618f21f7 Author: Doug Simon Date: Sun Mar 5 20:31:28 2017 +0100 added utility for concatenating iterables commit 5c6c4078ced8ce32a9d3f95d4458e9bc2aec68e7 Author: Doug Simon Date: Wed Mar 1 16:04:41 2017 +0100 re-enable JDK 9 snapshot related builds commit 155a9821cda95f01d87b47f4b3e4b625f76b95b5 Author: Doug Simon Date: Sun Feb 26 15:03:57 2017 +0100 fall back to app class loader for LayoutFactory provider on JDK 9 commit ebd6ffc196f496fa12d66083756bba7c119c09e8 Author: Doug Simon Date: Sun Feb 26 22:44:57 2017 +0100 adapt to JDK-8174879 commit 485dc462a0776cabadb5c8ac20932383b7465459 Merge: 05e6896 a2d19fb Author: Thomas W?rthinger Date: Fri Mar 3 13:22:15 2017 -0800 [GR-3068] [GR-3074] Try global value numbering after canonicalization. commit a2d19fbe720ad3e8ef35e1d853ee1f9503984472 Author: Gilles Duboscq Date: Fri Mar 3 19:24:16 2017 +0100 [fix] Try global value numbering after canonicalization. commit 05e6896b52143c50817a3ba62f3573711def8f96 Merge: d483351 e1fe589 Author: Thomas W?rthinger Date: Fri Mar 3 10:23:58 2017 -0800 [GR-3107] Compute better stamps for values at merges by meeting the stamps of values at the end of the incoming branches. commit d483351be40e8c047eda7d79efd20021f78ee088 Merge: fd4b395 e7351d8 Author: Lukas Stadler Date: Fri Mar 3 08:50:41 2017 -0800 [GR-3106] Stop processing canonicalized nodes at VirtualObjectNodes. commit e1fe589fdddf6a9927c480fc4ea5701d15ef125d Author: Thomas W?rthinger Date: Fri Mar 3 15:17:13 2017 +0100 Clean up and adding documentation. commit e7351d87bb0f18b5c4a0f0329a68c6b5325d1561 Author: Lukas Stadler Date: Fri Mar 3 16:24:51 2017 +0100 stop processing canonicalized nodes at VirtualObjectNodes commit 1567b6c23626864f89a512cc2c448bc423b12da6 Author: Thomas W?rthinger Date: Thu Mar 2 14:41:25 2017 +0100 Allow fixed read phase to be configurable with boolean whether inputs should be replaced with constants. Make sure canDeoptimize in SafeDivRemNode cannot change after removing PiNodes. commit 47fed0986421f0938f8379ba151529c0f8991039 Author: Thomas W?rthinger Date: Sun Feb 26 00:17:04 2017 +0100 Be more conservative when inserting pis to improve phis in order to prevent update cycles. commit 952ccb4f04c9535a964d3af990b4279527c32044 Author: Thomas W?rthinger Date: Sat Feb 25 23:32:59 2017 +0100 Introduce pi nodes in conditional elimination if phis can obtain a better stamp. commit 337a710bdc077322f05028c7e4dd7678a590581f Author: Thomas W?rthinger Date: Sat Feb 25 21:28:05 2017 +0100 Try to also improve phi stamps at merge points. commit 5b6b1c2815e2d8b4c0216f4c37e609836174bf4f Author: Thomas W?rthinger Date: Sat Feb 25 20:46:03 2017 +0100 Calculate union stamps at merge points. commit 6f22827967f1c7adecee26ba9d67856380f4189e Author: Thomas W?rthinger Date: Sat Feb 25 18:39:07 2017 +0100 Make sure constants with potentially wrong kind are not propagated by word cast. commit 1fca899db56f37100dc6c50bb1cd7b333b147dae Author: Thomas W?rthinger Date: Sat Feb 25 15:48:02 2017 +0100 Put constant input replacement behind flag. commit 11fd15f04cfd2989527a157f9a2f3069b4499d07 Author: Thomas W?rthinger Date: Sat Feb 25 15:35:42 2017 +0100 Add new test case for double compare against 0.0 and fix FloatStamp#asConstant to be more conservative due to 0.0 and -0.0 cases. commit 7315323b298c0b3cb54f4dc47bd538ce9717acd3 Author: Thomas W?rthinger Date: Sat Feb 25 14:14:08 2017 +0100 Replace inputs with constants when stamp is constant in raw conditional elimination. commit 8654aff9d4abc1b9be85c66f783c5ae52d07c2fa Author: Thomas W?rthinger Date: Sat Feb 25 13:50:47 2017 +0100 Handle conditional nodes in raw conditional elimination. commit fd4b395934002dceb55750d72de754faf2b3d271 Merge: eed04a6 d3e2667 Author: Gilles Duboscq Date: Fri Mar 3 05:36:37 2017 -0800 [GR-3074] Add unused `GuardNode` to loop fragment. commit d3e2667d06114c24d514f2ea0313ebbf7e9aa713 Author: Gilles Duboscq Date: Fri Mar 3 14:10:48 2017 +0100 [GR-3074] Add unused `GuardNode` to loop fragement This will help answer questions about induction variables. However it's not correct enough to make loop transformations: it might say some nodes are in the loop even though they can only be scheduled below the loop. commit eed04a6891a97fb9761326bbeacdfeee94c58684 Merge: 75791e5 e271f7e Author: Gilles Duboscq Date: Fri Mar 3 05:09:10 2017 -0800 [GR-3095] Keep workdir if dacapo benchmark fails. commit e271f7e8fd6383bda15ede51f176a9405128cac2 Author: Gilles Duboscq Date: Wed Mar 1 15:34:25 2017 +0100 [GR-3095] Keep workdir if dacapo benchmark fails This makes it easier to investigate the problem commit 75791e585e65ef34aff08aa0e0b2c3aad15a7bea Merge: 6293a8e aeff877 Author: Christian Wimmer Date: Thu Mar 2 16:16:35 2017 -0800 [GR-2032] Improve handling of NodeSourcePosition in Truffle. commit aeff877454c86a9bcba8d710b645cf01a4034510 Author: Christian Wimmer Date: Tue Feb 28 16:53:29 2017 -0800 Do not store Truffle options in static final field commit 51fb6c3aafbedef8aab3920e4b119426a0a4c590 Author: Christian Wimmer Date: Tue Feb 28 13:10:40 2017 -0800 Propagate NodeSourcePosition in more phases commit 3fc9d98f75b979433d29bb463a5102832500795d Author: Christian Wimmer Date: Tue Feb 28 13:09:53 2017 -0800 Allow customization of CompilationResult commit c597eef0d9c16797f748e6a9bf0549f8d31b3fd5 Author: Christian Wimmer Date: Tue Feb 28 13:09:30 2017 -0800 Allow to set debugId commit 6293a8e889d11b0d75156041221cc0e9bb169093 Merge: efe0365 999c554 Author: Christian Haeubl Date: Thu Mar 2 02:28:58 2017 -0800 [GR-3065] Reduce encoded graph footprint. commit efe03652d6408cb9f854f87a539ffa890a00f691 Merge: d142e7c bc959a3 Author: Christian Haeubl Date: Wed Mar 1 04:51:11 2017 -0800 [GR-3054] Performance- and footprint-related optimizations for the graph decoder. commit 999c55476888eba67716d59461bce3898a18d46b Author: Christian Haeubl Date: Tue Feb 28 10:40:58 2017 +0100 Reduce encoded graph footprint. commit d142e7cca297ad1dcacfb78e85ebd07384c606f7 Merge: 13902d9 29500eb Author: Boris Spasojevic Date: Tue Feb 28 22:24:26 2017 -0800 [GR-2148] Don't invalidate targets if a call to interpreter is made and the target is still valid. commit 13902d94221889f2ecfceed1c103fec3189798fd Merge: c616d03 1bb1135 Author: Tom Rodriguez Date: Tue Feb 28 13:59:15 2017 -0800 [GR-2955] Casts for MethodHandle arguments must be properly guarded. commit bc959a328ad099e7e0740049d9ab2251e9e09adc Author: Christian Haeubl Date: Mon Feb 27 13:25:07 2017 +0100 Minor cleanups. commit 094143a255235b914fd58319ab59fa4508dcb61e Author: Christian Haeubl Date: Mon Feb 27 13:06:15 2017 +0100 Place inputs before successors in the encoded graph. commit 15c6ded2fb529f3e5707e15d992ef097776ba84f Author: Christian Haeubl Date: Mon Feb 27 13:03:52 2017 +0100 Replace data structures to increase partial-evaluation performance while decreasing memory footprint. commit 0970ddd20594fb4fd28dec6cfde622ac1ead99ba Author: Christian Haeubl Date: Mon Feb 27 11:34:03 2017 +0100 Minor performance-related changes. commit 1bb1135a7c1c18723005017bb62f41c42145c31d Author: Tom Rodriguez Date: Fri Feb 24 11:27:34 2017 -0800 Casts for MethodHandle arguments must be properly guarded commit c616d03c0fa3315acb3a9db5b2a4fcb7b54baa4f Merge: a36e6c9 b71b9ab Author: Boris Spasojevic Date: Tue Feb 28 04:36:08 2017 -0800 [GR-3040] Per thread map passed to TraceCompilationListener. commit a36e6c94a62bc55f9d5bb8aebbd21862bb257f19 Merge: 2b5e28e 7ba0daa Author: Christian Humer Date: Tue Feb 28 04:14:05 2017 -0800 [GR-3056] More deterministic PerformanceTruffleInliningTest. commit 7ba0daa31a951806ce0c7a186355f9ae4d530409 Author: Boris Spasojevic Date: Tue Feb 28 10:44:20 2017 +0100 Formatting. commit 04c51474a9729ae5fd22c0be1fd17130960a1a75 Author: Boris Spasojevic Date: Tue Feb 28 10:31:09 2017 +0100 Formatting. commit 303e8784d6d338d6c203470593ed2192a219d75f Author: Boris Spasojevic Date: Tue Feb 28 10:12:26 2017 +0100 Run tests 10 times and use minimum duration to eliminate noise. commit 21a99d7cbab78f2d404a8e4e32a65e987de4e510 Author: Tom Rodriguez Date: Mon Feb 27 11:02:04 2017 -0800 Fix non-null stamp machinery for other non-object pointers commit 2b5e28e6ef4d66b1a08a81f6209d6c2d466e5940 Merge: 7b1a5b4 6fd1d1a Author: Christian Wimmer Date: Mon Feb 27 10:52:06 2017 -0800 [GR-3025] Add more hooks for subclasses to influence synthetic start / unwind code. commit 6fd1d1adb449a2d4c342086aa1b8435745454821 Author: Christian Wimmer Date: Thu Feb 23 16:43:59 2017 -0800 Add more hooks for subclasses to influence synthetic start / unwind code commit 7b1a5b4a0c934ab8e142fbbafa548ecc1c81e15c Merge: 519eba1 7d06bef Author: Christian Humer Date: Mon Feb 27 08:46:33 2017 -0800 [GR-2688] Use new copy uninitialized from Truffle. commit 7d06bef1cc636cf13129e20a44d8b198711998f4 Author: Christian Humer Date: Fri Feb 24 16:33:40 2017 +0100 Update Truffle version. commit 94cda073783b45bd9b500339adffbb282984d440 Author: Christian Humer Date: Tue Feb 21 12:25:33 2017 +0100 Simplify clone uninitialized support. commit d21c7ac9c24f568a1500b3aaed30845035ff1885 Author: Christian Humer Date: Tue Feb 21 12:25:15 2017 +0100 Fix typo in TVMCI. commit 7d9581a3f0a82ff7d5e9a9eb03642d1eb12b0dc2 Author: Christian Humer Date: Wed Feb 15 14:15:30 2017 +0100 Use TMVCI to access isCloneUnitializedSupported and cloneUnitialized . commit 596758d9acfd630414eeeea9dbb631a4d095c9fc Author: Christian Humer Date: Wed Feb 8 21:24:34 2017 +0100 Use new copy uninitialized from Truffle. commit b71b9ab7bc1aec3b50570bdde3547c720963c6c2 Author: Boris Spasojevic Date: Mon Feb 27 14:42:15 2017 +0100 Formatting. commit f454ea3e55695b360e2a5973c9cef22c9932d92a Author: Boris Spasojevic Date: Mon Feb 27 14:24:45 2017 +0100 Removing unused member map from TraceCompilationListener. commit 519eba1c375461b221d3cc22fa5a37cd379f079a Merge: 6ea8f00 ba001b4 Author: Lukas Stadler Date: Mon Feb 27 05:24:09 2017 -0800 [GR-2727] Remove faulty precondition check in PEA for virtual object compatibility. commit 6ea8f00f39f5070da80e92fa278725d5cfc0a10a Merge: 7c02f8d 14dc595 Author: Thomas W?rthinger Date: Mon Feb 27 05:21:17 2017 -0800 [GR-3049] Convert Math.*Exact operations to non-exact operations. commit bc9c311f02a6bbd2e446347d1849d07d696bf24f Author: Boris Spasojevic Date: Mon Feb 27 14:17:42 2017 +0100 Avoid problems stemming from a map shared among threads by passing a map to the listener per thread. commit ba001b4c2042ea668dc8b41445242f59b4567329 Author: Lukas Stadler Date: Mon Feb 27 13:55:23 2017 +0100 PEA: remove faulty precondition check for virtual object compatibility commit 14dc5950a9658b2ef5452a5e1b54b722adba5336 Author: Christian Haeubl Date: Wed Feb 22 17:16:52 2017 +0100 Variable name cleanup. commit cf9fb5af86173824049212b4ecdd1821a088fb39 Author: Christian Haeubl Date: Fri Feb 17 09:27:08 2017 +0100 Add exact math canonicalizations/simplifications. commit 342eccb0cf6e604c39f529a9cfe8ab8ef7781ca1 Author: Thomas W?rthinger Date: Sun Nov 6 19:22:01 2016 +0100 Canonicalize exact add to normal add if overflow can never happen based on the operand stamps. commit 7c02f8de6c98d8fdace6b399fe304ff3b9e4289e Merge: 72806d4 d278c21 Author: Boris Spasojevic Date: Sun Feb 26 04:50:02 2017 -0800 [GR-2632] [GR-1624] Truffle inlining performance improvements and tests. commit d278c21a7d95634a864fe26accccbaf9e652dfe1 Merge: 005fec5 72806d4 Author: Boris Spasojevic Date: Sun Feb 26 11:34:37 2017 +0100 Merge branch 'master' into tests/gr-2632 commit 72806d4c6606f754eafc0ec441980b04834e0ae1 Merge: f54ad5d c6f6374 Author: Thomas W?rthinger Date: Sat Feb 25 03:57:24 2017 -0800 [GR-3046] New conditional elimination after fixing reads. commit c6f63742edcf4349de0b273b1c59beeef7356a19 Author: Thomas W?rthinger Date: Sat Feb 25 01:04:15 2017 +0100 Correctly handle default successor when calculating switch node succeeding stamps. commit 5430c2ceba5e65db0530bb342cd2edeb136681db Author: Thomas W?rthinger Date: Fri Feb 24 23:34:26 2017 +0100 Remove redundant conditional elimination phase. commit b42e007bd1083f2e1c817b503e50ff77b34a95a9 Author: Thomas W?rthinger Date: Fri Feb 24 22:08:57 2017 +0100 Fix arithmetic stamp improveWith implementation to take stamp compatibility into account. commit b88a1b62f3af258d230ebee17d7aa37d83454b13 Author: Thomas W?rthinger Date: Fri Feb 24 22:03:31 2017 +0100 Replace nodes with constant stamps with constants in raw conditional elimination. commit 6d8e4f6a468fa70d41d5f545fb815cd0e2e2daf8 Author: Thomas W?rthinger Date: Fri Feb 24 21:42:05 2017 +0100 Add stamp parameters to binary logic node succeeding stamp method. commit 1d0cddeb2f4ff7316b92cd96712892215ae3f3a6 Author: Thomas W?rthinger Date: Fri Feb 24 20:29:08 2017 +0100 Fixed an issue in the getSuperclass snippet that could lead to an unsafe memory read. commit 81ef1cb31197ffdc58ca8c9fd709dcc491a62237 Author: Thomas W?rthinger Date: Fri Feb 24 19:45:45 2017 +0100 Add flag to stress test scheduling reads early. commit f54ad5d72a2d616e27b89dba6f15f676fe9fc48f Merge: 7d1ad12 3efa7a0 Author: Aleksandar Prokopec Date: Fri Feb 24 10:39:27 2017 -0800 [GR-3042] Correctly repair the number of measurements when a benchmark fails. commit 8b286f4b41c65cdaed10f9fee103a9a2c170e865 Author: Thomas W?rthinger Date: Fri Feb 24 17:55:08 2017 +0100 Propagate stamps for unary and binary operations. commit 3efa7a0ddf33b66292929cb89b2cf6efe3ead701 Author: Aleksandar Prokopec Date: Fri Feb 24 19:17:44 2017 +0100 [fix] Fix bug in calculation of total iterations when a benchmark fails. commit c60e255617564e654522e68294bd99ef6a4d00d7 Author: Thomas W?rthinger Date: Fri Feb 24 16:56:26 2017 +0100 Simplify integer switches in raw conditional elimination. commit fd006365d35c4fb539465fc422a1cfea0b58c204 Author: Thomas W?rthinger Date: Fri Feb 24 16:37:02 2017 +0100 Move succeeding stamp calculation to switch nodes as common utility and use from raw conditional elimination. commit 75f1d85125aeda2253fab45c65a38afb04c7b609 Author: Thomas W?rthinger Date: Fri Feb 24 16:28:45 2017 +0100 Fixed an issue in NewConiditionalEliminationPhase that prevented switches from correctly registering stamps. commit a7ca9170642ac1d7900869ddde34b02a9d7ad2ad Author: Thomas W?rthinger Date: Fri Feb 24 16:13:16 2017 +0100 Add new conditional elimination after fixing reads. commit bc4ef64f2c3218855d94dce45134b5768cf0340a Author: Thomas W?rthinger Date: Fri Feb 24 14:25:49 2017 +0100 Change block iteration order of FixReadsPhase to be dominator tree based. commit 7d1ad12cbd24723767be368d78399ca1e1f3a39a Merge: 193b418 730703a Author: Lukas Stadler Date: Fri Feb 24 05:09:57 2017 -0800 [GR-3034] Add message to assertion in ArithmeticStamp. commit 730703a1a2d3e895ad0401ada04bc8925ebe79da Author: Lukas Stadler Date: Fri Feb 24 12:12:36 2017 +0100 add message to assertion in ArithmeticStamp commit 193b41808b1145325d634b12a2965eef4838395e Merge: 5841886 455484f Author: Thomas W?rthinger Date: Fri Feb 24 02:44:50 2017 -0800 [GR-3031] Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. commit 455484fcf177118659d994c08cf1794356f00d5a Author: Thomas W?rthinger Date: Fri Feb 24 00:02:20 2017 +0100 Correctly take killing begin nodes into account when creating latest schedule. commit 58370156a1463b75617adaee996c8560f25b09dc Author: Thomas W?rthinger Date: Thu Feb 23 22:48:23 2017 +0100 Adjust AheadOfTimeCompilationTest to new fixed reads structure. commit 5313605f2da9cff0c1eeca32f13c3d7e33412a40 Author: Thomas W?rthinger Date: Thu Feb 23 22:33:29 2017 +0100 Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. commit 58418863f1ed601afa49f188f25e9630c193b49c Merge: 1efc1c5 67de314 Author: Thomas W?rthinger Date: Thu Feb 23 11:13:57 2017 -0800 [GR-3018] No more value anchors required for guards, new guard movement, removed push-through-pi as extra phase. commit 67de314e805596d19e1c9eaf7d3496fa3cf4a150 Author: Thomas W?rthinger Date: Thu Feb 23 19:36:58 2017 +0100 Add checkstyle directive to avoid complaint about jtt test. commit 8192e0c1f1d3ea537032702c88dd37e3b22e5ca1 Author: Thomas W?rthinger Date: Thu Feb 23 18:25:22 2017 +0100 Correctly handle empty instanceof branches and add jtt test for them. commit 0f75d70df46940ef95a68a08e842581273200e82 Author: Thomas W?rthinger Date: Thu Feb 23 15:44:45 2017 +0100 Fix an issue in the new guard movement that was adding new guards too early to the schedule. commit 016fed781f5a4d7e1f904b1df1956ed13524ae09 Author: Thomas W?rthinger Date: Thu Feb 23 04:22:55 2017 +0100 Relax FloatingReadNode constructor assertion. commit 279ac4015ed82a96cd3d46fc4e40cadd0e3375e8 Author: Thomas W?rthinger Date: Thu Feb 23 03:34:19 2017 +0100 Remove conditional elimination load field constant fold test. commit 4359681c9773d323705dfa162ce16822b5d9db05 Author: Thomas W?rthinger Date: Thu Feb 23 03:24:24 2017 +0100 Remove deprecated TODO in ReadNode. commit 3aab8cbb12d3ccf46906e4f1a470200c15509c51 Author: Thomas W?rthinger Date: Thu Feb 23 03:20:11 2017 +0100 Remove constant pointer comparison conditional elimination. commit ee1716fc5b0ed25ef7cf17b458f2718a900cbced Author: Thomas W?rthinger Date: Thu Feb 23 03:19:37 2017 +0100 Make implicit null check conversion more conservative. commit 0d6841907f45c6b9ce7983c2b31becd6a346bd2f Author: Thomas W?rthinger Date: Thu Feb 16 16:32:28 2017 +0100 Introduce new BytecodeExceptionMode.ExplicitOnly mode. Fix an issue in the write barrier verification phase. Fix IfNode canonicalization to take anchors on begin nodes into account. Adjust allowed code size increase of EarlyReadEliminationPhase. Correctly assume receiver type for special invoke. Do not skip over pi in instanceof node. Fix succeeding stamps. commit c250d432035442b078b54a29e33d31df450597e3 Author: Thomas W?rthinger Date: Thu Feb 16 14:39:11 2017 +0100 Add optional stamp parameter to FixedValueAnchorNode. Skip pi for instanceof only if no information is lost. commit 6c70f8efdb5a7a5f21b7f254a5bc9eef79b7d050 Author: Thomas W?rthinger Date: Wed Feb 15 23:43:39 2017 +0100 Make sure more nodes are canonicalized before they are even created. commit da2fc6f2d703eb3678a2faf8a3f277b9bfcb9dc7 Author: Thomas W?rthinger Date: Tue Feb 14 23:22:05 2017 +0100 Clean up phases. commit 7f4c1e5617be30b6d91c73a5bb33a6ed68da0e08 Author: Thomas W?rthinger Date: Mon Feb 13 00:40:13 2017 +0100 Keep guards alive while their anchor is alive. No longer require ValueAnchorNode for this purpose. commit c53b367770069e1a4a5cf4ae981611908061dd7d Author: Thomas W?rthinger Date: Sun Feb 12 23:56:05 2017 +0100 Make sure guards are always marked live and processed before any other node in earliest schedule. commit bb2905a5516cf4ba9771ba110794764d9c290278 Author: Thomas W?rthinger Date: Sun Feb 12 23:52:02 2017 +0100 Reduce number of node iterable types. commit a24455c0c77731ee92e137234a484ed1a1014087 Author: Thomas W?rthinger Date: Sun Feb 12 23:14:07 2017 +0100 Fix and rename GuardEliminationCornerCasesTest. commit 14fd0e523aa5b9ce0de6c7e9aeb9038e2c017f45 Author: Thomas W?rthinger Date: Sun Feb 12 22:29:08 2017 +0100 Refactor and simplify explicit exception code in the bytecode parser. commit 256a17b0ac3b9c8e1a9a70a5aec292239e74709e Author: Thomas W?rthinger Date: Sun Feb 12 21:07:37 2017 +0100 Special case the frequent case of GETFIELD/PUTFIELD after ALOAD*. commit 7049a6e41ce949ae7a8c0301bd71d28454b6883f Author: Thomas W?rthinger Date: Sun Feb 12 20:36:03 2017 +0100 Short cut creation of InstanceOfNode followed by IFEQ or IFNE bytecode. commit 68a7efa84e55775a1329a69a4012c1e67ebcd24d Author: Thomas W?rthinger Date: Sun Feb 12 19:48:56 2017 +0100 Skip pi when creating IsNullNode or InstanceofNode. Add pass to conditional elimination for moving guards present on both sides of an if upwards. Add conditional elimination tests. commit 1efc1c543acd7ed447c59788aeabc223be13e774 Merge: ba38953 7569452 Author: Doug Simon Date: Thu Feb 23 03:49:03 2017 -0800 [GR-2741] Remove OptionValues.GLOBAL. commit 75694522c823d828e12a677a303df3383cc4a09e Author: Doug Simon Date: Thu Feb 23 11:50:12 2017 +0100 consolidated test for whether assertions are enabled commit 8ab1a68fc84e83e742a3a8473c902acce2fe818f Author: Doug Simon Date: Thu Feb 23 11:49:39 2017 +0100 fixed regressions in CooperativePhaseTest commit 5c15ec46fada7f3aadc4f5197d8823e68319bc03 Author: Doug Simon Date: Thu Feb 23 01:17:22 2017 +0100 fixed issues detected by OptionsVerifierTest commit 1648cb56d88cc08c0426420618b5a0f3208a3b37 Author: Doug Simon Date: Thu Feb 23 00:47:42 2017 +0100 reduced reads of some options in hot code commit da08f0d7bc3f905f1891b76ae4191c8421410e6e Author: Doug Simon Date: Thu Feb 23 00:46:04 2017 +0100 restructured CompilationAlarm to reduce reads of CompilationExpirationPeriod option commit 14dcf1e9dde0cb1144e97137498dc28226a15f80 Author: Doug Simon Date: Thu Feb 23 00:41:17 2017 +0100 removed stats on how often OptionKeys are read commit a57a4a1363d86b55e5b916b43225583115d0bb60 Author: Doug Simon Date: Thu Feb 23 00:39:49 2017 +0100 added stats on how often OptionKeys are read commit da27ea11cfd5f5d5154eb5a1b0843a738acc4e64 Author: Doug Simon Date: Thu Feb 23 00:36:08 2017 +0100 removed OptionKey.defaultValue() commit bcdc9a1ecb06a03cd2f69ba8cc0dc4fbb7390308 Author: Doug Simon Date: Tue Feb 21 22:15:01 2017 +0100 Graal Truffle options made be accessed without a GraalTruffleRuntime being initialized commit 2bf40c5c843b79cf206285fc35106704048a1bd0 Author: Doug Simon Date: Thu Feb 23 12:21:49 2017 +0100 made snippet counters non-global - they are passed in by a Graal runtime replaced all uses of GLOBAL with GraalCompilerTest.getInitialOptions() check the invariant that @ConstantParameter, @VarargsParameter and @NonNullParameter are only used in @Snippet annotated methods removed VerifyNodeCostOnAccess option replaced all other uses of OptionValues.GLOBAL with options available from local context removed OptionValues.GLOBAL commit ba38953f2e560decfdc005a95736ae503fa5d3ce Merge: 06f78ea d95792a Author: Doug Simon Date: Thu Feb 23 02:05:52 2017 -0800 [GR-2946] Disable pinning mx to a revision in CI. commit 7fcb7ab158dc6132e339877f72b5264d331b39aa Author: Doug Simon Date: Mon Feb 20 17:06:23 2017 +0100 removed CloneNodesWithUnsafe option commit e0168e01b008b1790892120ac7ba5299c329fabc Author: Doug Simon Date: Wed Feb 15 23:45:46 2017 +0100 use service provider to get option values commit d69cad07503da0228f683c3df6ab93a15e18b833 Author: Doug Simon Date: Mon Feb 13 17:33:55 2017 +0100 removed GLOBAL from StructuredGraph.Builder commit 06f78ea471fae780af57cf762258c9a09501710a Merge: 5082f0e df2865d Author: Stefan Anzinger Date: Wed Feb 22 09:12:50 2017 -0800 [GR-2987] Force compile generated method in LargeConstantSectionTest. commit df2865d05f75381a9c78db1a9af82df404c75c5c Author: Stefan Anzinger Date: Wed Feb 22 14:31:41 2017 +0000 [fix] Force compile generated method in LargeConstantSectionTest commit 5082f0e7ee0919a5e670b9fe7712573e242a03eb Merge: 9898d2f b00edb0 Author: David Leopoldseder Date: Wed Feb 22 06:46:24 2017 -0800 [GR-1994] Inital groundwork for better compile cancelation from Truffle. commit d95792abb3e652cd5c6fff4994cb5740a2d3c840 Author: Doug Simon Date: Wed Feb 22 14:33:40 2017 +0100 disable pinning mx to a revision in CI commit b00edb0d8e6446ae20002e1a0f777cb5d1fc0853 Author: David Leopoldseder Date: Mon Feb 13 16:20:58 2017 +0100 [feature] Graal: Add cooperative compilation cancellation. commit 24d766e8b09bf0752ae49d44ce04e67a6502c6bd Author: Boris Spasojevic Date: Fri Feb 10 12:00:43 2017 +0100 Removed synchronisation and stored the CancelableCompileTask object in a local variable. commit 9e3e8f9b5f245b1e10bdfccb3ad85a12d224d8d5 Author: Boris Spasojevic Date: Fri Feb 10 08:56:39 2017 +0100 Synchronize assignment to compilation task. commit e889d0be9e95d4f6526bf2923fad2cae98541d87 Author: Boris Spasojevic Date: Fri Feb 10 07:51:52 2017 +0100 Javdoc for Cancelable. commit 7db8a020b755f26ad361081d24f67986a36b68ef Author: Boris Spasojevic Date: Fri Feb 10 07:45:26 2017 +0100 If CancelableCompileTask is canceled, soft cancel the future as well. commit 25ffd4f0286a5415927f2738f7fe7b4e28054cc2 Author: Boris Spasojevic Date: Thu Feb 9 18:13:14 2017 +0100 Moved the check to allow Cancelable to be loaded to checkAllowedGraalClasses.` commit 9a3a77f2db7c65303d0894cc733a21a3d769e985 Author: Boris Spasojevic Date: Thu Feb 9 17:59:17 2017 +0100 Renamed task to future. commit 582af20c9437a7ea1af1df00b3194edc4ea7bb5f Author: Boris Spasojevic Date: Thu Feb 9 15:45:36 2017 +0100 Added the CancelableCompileTask to the StructuredGraph. commit 57875f66bfd68641a8a66b85bcacd3151b063af0 Author: Boris Spasojevic Date: Thu Feb 9 15:42:02 2017 +0100 Renamed parameter to avoid hiding a field. commit 9809b131e10544dcc8ddfe3feeddd6ec7fde7ca8 Author: Boris Spasojevic Date: Thu Feb 9 15:32:51 2017 +0100 Adding a Cancelable field to StructuredGraph. commit 6dbd424731ae46fb9ee7b592b1d26c1315cd1ac1 Author: Boris Spasojevic Date: Thu Feb 9 15:04:08 2017 +0100 Extracted the CancelableCompileTask class and Cancelable interface. commit 46e2aadae72b85d6a043766d8968299431d6edb9 Author: Boris Spasojevic Date: Thu Feb 9 12:01:59 2017 +0100 Adding the CancelableCompileTask to wrap Futures resulting from submitting for compilation. This CancelableCompileTask object gets propagated until the partial evaluator builds the StructuredGraph. Tests pass null to all methods that expect a CancelableCompileTask object. commit 9898d2f9af65011a94fd0752a8e551a7cfdf9d9b Merge: 1bac1de 095a6dd Author: Josef Eisl Date: Wed Feb 22 03:06:58 2017 -0800 [GR-1021] TraceRA: Bottom-Up allocator does not need a full local data-flow resolution. commit 29500eb2158a944cb91f5b47b0cc106be92d0eab Author: Boris Spasojevic Date: Wed Feb 22 11:31:44 2017 +0100 Don't invalidate targets if a call to interpreter is made and the target is still valid. commit 1bac1de20fa3c78c824ea99b7caeb894bae3812e Merge: 45899d9 e340234 Author: David Leopoldseder Date: Wed Feb 22 02:22:48 2017 -0800 [GR-2956] Update overlay revision. commit 095a6dd95dd0dfd1348e40710159b04375cb0052 Author: Josef Eisl Date: Wed Feb 22 09:55:37 2017 +0100 [refactor] TraceRA[BU]: directly call resolve method commit dbdbd88cf4537abbd2793bf1c7701f28fb4507dc Author: Josef Eisl Date: Tue Feb 21 18:44:05 2017 +0100 [refactor] TraceRA[BU]: split loop back-edge handling and forward edges commit afc3cb46cea26c070e0908de7958c3e77890cb89 Author: Josef Eisl Date: Tue Feb 21 15:50:40 2017 +0100 [fix] TraceRA[BU]: no need for full local data-flow resolution commit e340234512f883f734c1bd4b3b995a2583780ad9 Author: David Leopoldseder Date: Tue Feb 21 16:44:54 2017 +0100 [dep] Update overlay revision. commit 45899d9b431f14adc86808d51542a6f14dccef91 Merge: 79f28ca 8db556e Author: Doug Simon Date: Wed Feb 22 00:55:03 2017 -0800 [GR-2980] Update overlay version. commit 8db556e58427c47aae2e7db5189f9fa10f67e886 Author: Doug Simon Date: Wed Feb 22 09:34:51 2017 +0100 update overlay version commit 005fec5ecd2ae5c6bc1646fc0213252bede13cc6 Author: Boris Spasojevic Date: Wed Feb 22 07:54:55 2017 +0100 Proper logging of cached decisions. commit 79f28caa4b0d88e4b4ff9026266378bf288f6959 Merge: d7761c8 7ce2c23 Author: Boris Spasojevic Date: Tue Feb 21 22:30:29 2017 -0800 [GR-2687] Remove ThreadLocal field from TraceCompilationListener. commit d7761c87824f64329c95d352b3468e9ed48768c8 Merge: 288aa91 32d37bb Author: Doug Simon Date: Tue Feb 21 08:23:47 2017 -0800 [GR-2976] Update doc regarding building JVMCI JDK8 binaries. commit 288aa9126e5185cb8466d2bbe526a149917da6f7 Merge: 11c757e b2cf4b0 Author: Doug Simon Date: Tue Feb 21 07:47:54 2017 -0800 [GR-2957] Update overlay to enable graalvm downstream testing. commit 11c757e12a1b4e35bfecc0b76defc161c8846cb1 Merge: 388e343 76b5cc3 Author: Aleksandar Prokopec Date: Tue Feb 21 07:36:50 2017 -0800 [GR-2962] Mx benchmark command should produce data points for failing benchmarks. commit 0aa31f3c01ec7363e1d8ff5cf933555355f02e8a Author: Josef Eisl Date: Thu Dec 22 12:32:45 2016 +0100 [fix] TraceRA: no need for delete for rewritten stack to stack moves commit d67931d90867994b4352b2fe500c1e4335e5e7fc Author: Josef Eisl Date: Tue Jan 17 16:12:47 2017 +0100 [fix] TraceRA[BU]: remove redundant code commit 54759284609e9ded8975fb65a47ed9059e1a7085 Author: Boris Spasojevic Date: Tue Feb 21 15:58:11 2017 +0100 Be more restrictive in what you can cache. commit 76b5cc3f344cf58034462654ece0bef18cecc1f7 Author: Aleksandar Prokopec Date: Tue Feb 21 14:33:06 2017 +0100 [feature] Repair partial DaCapo results after a benchmark failure. commit 32d37bb3add0346c7bece7020dd3bd8efb279304 Author: Doug Simon Date: Tue Feb 21 15:48:03 2017 +0100 update doc regarding building JVMCI JDK8 binaries commit 298580fc4cd9e4aa7f21bfc182a0ea48cf87923a Author: Boris Spasojevic Date: Tue Feb 21 10:27:21 2017 +0100 Added deep rejection cache. commit 7ce2c234fbf55a21aecb7805496aac70eb6520bb Author: Boris Spasojevic Date: Tue Feb 21 09:35:30 2017 +0100 Replaced the ThreadLocal with a map. commit dfb7a6c6af95572d2f1eefca184672cdbc8380d1 Merge: 371bafe 388e343 Author: Boris Spasojevic Date: Tue Feb 21 08:00:40 2017 +0100 Merge branch 'master' into bugfix/gr-2687. commit 371bafe23701a25fe4d3d6361a2d0832f2f6cc43 Author: Boris Spasojevic Date: Tue Feb 21 07:43:48 2017 +0100 Use ConcurrentHashMap instead of HashMap with sync. commit 388e343257342090512ec645290c79d6dee0d0af Merge: 6250cc2 192a2e7 Author: Doug Simon Date: Mon Feb 20 11:35:23 2017 -0800 [GR-2961] Remove all static state from the InstrumentPhase. commit b2cf4b067e456f0e371f8708dc276e4d9ff00146 Author: Doug Simon Date: Mon Feb 20 19:40:05 2017 +0100 update overlay to enable graalvm downstream testing commit 192a2e7c12a9c75937cd8f8bcbe1f61b0dd69b46 Author: Aleksandar Prokopec Date: Mon Feb 20 19:15:21 2017 +0100 [refactor] Move instrumentation state to the Truffle runtime. commit 6250cc29ca65d563eba167d189cfb07cc93f9f51 Merge: 065b10e 3f15d3a Author: Lukas Stadler Date: Mon Feb 20 07:26:39 2017 -0800 [GR-2904] Conditional Elimination: Always improve pi stamp if new guard provides additional information. commit 3f15d3a883967db64f79fb942a9ddc4f4310f713 Author: David Leopoldseder Date: Mon Feb 20 14:27:01 2017 +0100 [fix] Conditional Elimination: Always improve pi stamp if new guard provides additional information. commit 065b10eec31f3067027c97ab8c6fe76e3f1c4e75 Merge: 68af508 3cffbc8 Author: Lukas Stadler Date: Fri Feb 17 10:33:49 2017 -0800 [GR-2904] Revert change in NewConditionalEliminationPhase.registerNewStamp. commit 68af50839b4827eed0886c7a6e5129ba7bc682c2 Merge: 59e3dbd eabc45b Author: Tom Rodriguez Date: Fri Feb 17 09:54:19 2017 -0800 [GR-2910] Be more strict about whether StubRoutines are expected to be available in JDK8. commit 59e3dbdfd8a3da7db3b4e201076170ce3cdb4f7f Merge: 40b3c7c 158a5b2 Author: Christian Wimmer Date: Fri Feb 17 09:22:46 2017 -0800 [GR-1633] Use object from frame state for monitor exit. commit 40b3c7c32cac44a608df231262b8b69830ac5ace Merge: 71b0b4b deee6ed Author: Doug Simon Date: Fri Feb 17 08:35:44 2017 -0800 [GR-2916] Adapt to jdk.vm.* being renamed to jdk.internal.vm.*. commit deee6ed9c8c3c24b51531bcb306d252f6701783d Author: Doug Simon Date: Fri Feb 17 16:47:41 2017 +0100 fix tests that define snippets and replacements to work on jdk9 commit 402f092bc0d257e2398e3bf6051d41b5f2d93459 Author: Doug Simon Date: Fri Feb 17 16:44:40 2017 +0100 adapt to jdk.vm.* -> jdk.internal.vm.* renaming commit 6cf5d3711c6028602b95fbef470928499b396825 Author: Doug Simon Date: Fri Feb 17 16:41:12 2017 +0100 install hsdis library into JAVA_HOME if it doesn't already exist commit 0bfab5f11fbd863df3d62715bf3262f66e5315bb Merge: 563b95a 71b0b4b Author: Boris Spasojevic Date: Fri Feb 17 15:03:39 2017 +0100 Merge 'master' into tests/gr-2632 commit 3cffbc8f88f90590ff36c9d13fad7d84afd7cd4b Author: Lukas Stadler Date: Fri Feb 17 13:41:14 2017 +0100 revert change in NewConditionalEliminationPhase.registerNewStamp commit 71b0b4b9fd0fc495f534854ecc4f4697eb69d625 Merge: cb17ff5 cdf16cc Author: Roland Schatz Date: Fri Feb 17 02:57:40 2017 -0800 [GR-2901] Update truffle import to include native interface. commit cdf16cc83370c9bd1b0208b779abda247c74c517 Author: Roland Schatz Date: Thu Feb 16 17:16:09 2017 +0100 Update truffle import to include native interface. commit 563b95a69a6ffb9d8bf041b5fb085c8074773ea1 Merge: 8c9c09f cb17ff5 Author: Boris Spasojevic Date: Fri Feb 17 07:43:53 2017 +0100 Merge branch 'master' into tests/gr-2632 commit cb17ff5739546609f9a49b97808dbf377d4f9a5e Merge: 4501f91 4a02210 Author: Tom Rodriguez Date: Thu Feb 16 21:59:47 2017 -0800 [GR-2911] Ensure constants are on the right in commutative operations. commit 4a0221087ad448049a46ea5dfdde180ce778f99f Author: Tom Rodriguez Date: Sun Feb 12 23:09:01 2017 -0800 Ensure constants are on the right in commutative operations commit eabc45bdd389da076f3135d85bea533be261c7dc Author: Tom Rodriguez Date: Mon Feb 13 10:43:23 2017 -0800 Be more strict about whether StubRoutines are expected to be available in JDK8 commit 158a5b29d8a8dcee211c9573b64cb5388d102879 Author: Christian Wimmer Date: Thu Feb 16 10:43:45 2017 -0800 Use object from frame state for monitor exit commit 4501f91b32f16c55e9998554abb41e0a507fcdaf Merge: 803c0ec f524733 Author: Doug Simon Date: Thu Feb 16 06:39:26 2017 -0800 [GR-2897] Update CI to use jvmci-0.25. commit 803c0ecb5b0d35d1bc1789b4a89b0fd5494da3d6 Merge: cfbeb9a 65a9388 Author: David Leopoldseder Date: Thu Feb 16 06:16:45 2017 -0800 [GR-2898] MethodMetrics: Fix printing setup. commit f524733b51391748cd8c32da4c1134aaaa400880 Author: Doug Simon Date: Thu Feb 16 11:53:39 2017 +0100 update CI to use jvmci-0.25 commit cfbeb9a4b647e47e4c25c57f16dd7233e5ac6d4f Merge: 1691631 a105ce5 Author: David Leopoldseder Date: Thu Feb 16 05:48:01 2017 -0800 [GR-2877] Unsafe PEA Bug. commit 169163127a1e7d78218e324b8ae1d59a80a8af9d Merge: 7d7bc36 5debce5 Author: Aleksandar Prokopec Date: Thu Feb 16 04:02:49 2017 -0800 [GR-2710] Move static state out of InstrumentPhase. commit 5debce5fa8ca9bc18ce05b1c21cdcf47c19cd02d Author: Aleksandar Prokopec Date: Wed Feb 15 16:52:29 2017 +0100 [refactor] Use Truffle-runtime-specific instance of the instrumentation access table. commit 65a9388d2ee50c7d9be0186c4c6f1640efb7318c Author: David Leopoldseder Date: Thu Feb 16 12:17:01 2017 +0100 [fix] MethodMetrics: Fix printing setup. commit 8c9c09f6a6d1d8ca28c72a03f74ec6bbef6aba62 Author: Boris Spasojevic Date: Thu Feb 16 11:47:01 2017 +0100 Removed invisible UTF characters. commit a105ce5337f5d633f161e12ff37bc3105125c57a Author: David Leopoldseder Date: Thu Feb 16 10:44:08 2017 +0100 [fix] PEA: Keep better stamp information during node replacement for all nodes. commit b6425f9bdd2051f846752497048de5f7a45170bf Author: David Leopoldseder Date: Wed Feb 15 13:44:32 2017 +0100 [fix] PEA: Must respect stamps when virtualizing unsafe stores to one slot fields. commit 126441b8a5034d9e88de7f33daaf8546d53a8106 Author: Boris Spasojevic Date: Wed Feb 15 16:04:47 2017 +0100 Suppress Warning. commit dcd7db23164b876db36852ab093d7616e37056db Author: Boris Spasojevic Date: Wed Feb 15 13:16:02 2017 +0100 Non static counting of visited nodes. commit 7d7bc365d1fc52fcbcce4b9d505512c018c09c49 Merge: 7a18b1d 0c9f8cd Author: Tom Rodriguez Date: Tue Feb 14 17:08:38 2017 -0800 [GR-2872] Improve handling of PiNodes in address expressions. commit 0c9f8cd33a61ad92ba20204cc42fcee332a45e41 Author: Tom Rodriguez Date: Mon Feb 13 23:09:38 2017 -0800 Improve handling of PiNodes in address expressions commit 7a18b1d927dd324859f54665f1b6e00e670cd45d Merge: d0d9139 217d3f0 Author: Andreas Woess Date: Tue Feb 14 12:05:12 2017 -0800 [GR-2047] Use hasNeverInlineDirective() in PEGraphDecoder. commit 217d3f05eb042936fb78202925edbcc2009dc670 Author: Andreas Woess Date: Tue Feb 14 19:28:53 2017 +0100 Use hasNeverInlineDirective() instead of canBeInlined() in PEGraphDecoder. commit 1eae4894d43df492d4323d573e908d133e1cef88 Author: Boris Spasojevic Date: Tue Feb 14 17:23:11 2017 +0100 Cache and reuse inline decisions, and don't explore too many call sites. commit f22534c9416104559dbb8c75cb9bd04a6c22f608 Author: Boris Spasojevic Date: Tue Feb 14 17:21:31 2017 +0100 Removed junk and increased timeout for tests to 1 second. commit d0d913941f7cfc82f8da74c8f9d4e7858c910a04 Merge: 638ba23 4f2fe2b Author: Doug Simon Date: Tue Feb 14 01:43:44 2017 -0800 [GR-2842] Clean up some IGV options. commit 4f2fe2bbcdd02f48744dd8c434ec1a8dc4d5a5d1 Author: Doug Simon Date: Mon Feb 13 22:35:05 2017 +0100 deprecated options with ?Ideal? in their name commit 638ba239e23344fbc09056e45b7f764c2daa1298 Merge: bdd86ff 3bb4c58 Author: Thomas W?rthinger Date: Mon Feb 13 16:13:11 2017 -0800 [GR-2633] Fix assertions related to read elimination and PEA. commit 3bb4c5864ed9055810451feca45d97fd7bfd0768 Author: Thomas W?rthinger Date: Mon Feb 13 18:18:54 2017 +0100 Make sure value of proxy nodes is added before proxy node is added in PEA. commit 5598d39cf1bf68fee046709c97806bbf28445fb9 Author: Thomas W?rthinger Date: Mon Feb 13 16:58:02 2017 +0100 Make sure stamp does not get less precise when applying Graph effects from read elimination and PEA. commit 487759f848cb25889eb1482d4d3bd969390c0bb7 Author: Doug Simon Date: Mon Feb 13 20:58:18 2017 +0100 automatically fall back to dumping graphs to files when IGV is unavailable/unreachable commit bdd86ff9211ab26b82b2b295b79b9dee23927899 Merge: dde2f03 dbe905e Author: Doug Simon Date: Mon Feb 13 08:38:17 2017 -0800 [GR-2827] Clean up option changes merge artifacts. commit dbe905e43c3fdb5bbbe5095ab10cc4ca469a69f6 Author: Doug Simon Date: Mon Feb 13 17:18:05 2017 +0100 re-deleted accidentally revived test commit dde2f03e0f7e98fc8539e34a8be4d2789d7ea1ac Merge: 4372ef7 f67aaf1 Author: Doug Simon Date: Mon Feb 13 07:13:56 2017 -0800 [GR-2800] Update truffle import. commit 4372ef7f9a24f8d6c659b8d3c0ff2b5f6ca3946e Merge: 759d763 a1249cb Author: Doug Simon Date: Mon Feb 13 02:26:39 2017 -0800 [GR-2825] Explicitly select compiler configuration for graal-core. commit a1249cb10101f0636bb44708397a35765d24ece9 Author: Doug Simon Date: Mon Feb 13 11:04:37 2017 +0100 explicitly select compiler configuration for graal-core commit 759d7635dedbea1c7efb835e06d8f904615ace33 Merge: 7d5433e c07bcb5 Author: Thomas W?rthinger Date: Sat Feb 11 11:44:02 2017 -0800 [GR-235] Avoid aggressive guard optimization for guards without action. commit c07bcb594a381c3409d4186f145db7a0f21dd4b5 Author: Thomas W?rthinger Date: Sat Feb 11 16:20:36 2017 +0100 New assertions when replacing nodes. Change PiNode canonicalization. Fix conditional elimination to currectly work with unproxified input. commit 582bd97675e05ba51a9c3493c6a8c2206e93d56b Author: Thomas W?rthinger Date: Fri Feb 10 15:00:09 2017 +0100 Avoid aggressive guard optimization for guards without action. commit 7d5433ec8c8594f33f68b46624e0b5f4a434479a Merge: 06c1a89 0a5fd96 Author: Codrut Stancu Date: Fri Feb 10 14:42:59 2017 -0800 [GR-2813] Illegal stream usage fix. commit 06c1a8934e40520649ede585cf51bb10bb110831 Merge: cf6665b 9f29f84 Author: Thomas W?rthinger Date: Fri Feb 10 14:23:47 2017 -0800 [GR-2819] Modify schedule phase to guarantee earliest schedule for floating nodes. Fixes #252. commit cf6665bba490ca2161031bc980553c7c42f59d6a Merge: e16c69a 523bb8d Author: Christian Wimmer Date: Fri Feb 10 14:04:46 2017 -0800 [GR-2816] Update javaCompliance of NFI project to 1.8. commit 9f29f840c11992d70dcbbf99cafb919f58261aa1 Author: Thomas W?rthinger Date: Fri Feb 10 22:05:07 2017 +0100 Document and simplify new version of earliest schedule. commit 76863a35cf96b273469ce131020efc0255cd62d3 Author: Tom Rodriguez Date: Fri Feb 10 11:58:45 2017 -0800 Handle both inputs of BinaryOpLogicNode when folding tests commit fd3a9f440fe836b5ea13731be078eb6b3ae2c22b Author: Thomas W?rthinger Date: Fri Feb 10 18:31:00 2017 +0100 Modify schedule phase to guarantee earliest schedule for floating node - i.e., a floating node is always scheduled before a fixed node if it does not depend on it. commit e1f64bf4cab3abd3e80fb926e4e532646adf055a Author: Thomas W?rthinger Date: Thu Feb 9 23:34:11 2017 +0100 Create test case exercising a corner case of guard movement. commit e16c69a1af7c625f0f1f0b45f24cf335556f6382 Merge: 5b8cebe 3831c99 Author: Christian Wimmer Date: Fri Feb 10 11:48:34 2017 -0800 [GR-2796] More aggressive constant folding of useFrameWithoutBoxing. commit 0a5fd96a31bda0e0c3fcff10ae85facead7dd353 Author: Codrut Stancu Date: Fri Feb 10 11:38:50 2017 -0800 Illegal stream usage fix. commit 523bb8d670cf3eb8ab68b10b58f109d613aae5e4 Author: Christian Wimmer Date: Fri Feb 10 11:28:08 2017 -0800 Update javaCompliance of NFI project to 1.8 commit 3831c9902c57aaedbdde799b09e476bc5f263dd8 Author: Christian Wimmer Date: Fri Feb 10 10:55:56 2017 -0800 More aggressive constant folding of useFrameWithoutBoxing commit 5b8cebee8a66240869de0449d200280ac103b642 Merge: e1a8546 958d3ce Author: Vojin Jovanovic Date: Fri Feb 10 08:31:52 2017 -0800 [GR-2654] Adapt to jvmci-0.24 changes. commit 958d3ce16c527b3d1b9d6338cfa03a32c1518ca1 Author: Vojin Jovanovic Date: Fri Feb 10 16:34:17 2017 +0100 [ci] remove dev from jvmci commit c8db502996f6c2f44202b8ba0dc2dfd98d4b77b5 Author: Boris Spasojevic Date: Fri Feb 10 14:22:58 2017 +0100 Replaced the ThreadLocal with a map. commit 5ee7023084bca89ba3e662d3494d3d2bf997e9f9 Author: Doug Simon Date: Wed Feb 8 15:03:00 2017 +0100 update jvmci-0.24 reference commit 4e2a862c94a9b2e09e660471488251f7365c17ba Author: Doug Simon Date: Mon Feb 6 21:46:45 2017 +0100 broaden class file search for test with @Snippet methods commit f3d7bce9cc2b2ddbf4d5792a141c192c6202fad5 Author: Doug Simon Date: Sat Feb 4 11:12:05 2017 +0100 fixed internal field equivalence test commit 3e2893ba7c5c965748ec404bb32fc260836ef8c1 Author: Doug Simon Date: Fri Feb 3 12:00:04 2017 +0100 update required jvmci version commit 0dc4878d300e5aa6cde422afcf2f2fc6e81dedf1 Author: Doug Simon Date: Fri Feb 3 11:42:41 2017 +0100 adapt to removal of HotSpotVMConfigAccess.getTypeSize commit f67aaf13324e2eae6eaff4691d63f7c19e0fdfc3 Author: Doug Simon Date: Fri Feb 10 11:13:39 2017 +0100 update truffle import commit faa0ae2eaaaba6d4bba88489c615a157f6d4b1ec Author: Boris Spasojevic Date: Fri Feb 10 11:10:15 2017 +0100 Removed some accidental logging. commit 327307f15f8e06cbdf9a3687d633d9cff7bbe31b Author: Boris Spasojevic Date: Fri Feb 10 11:03:05 2017 +0100 Initial commit for Truffle inlining performance tests. commit e1a854653dea3c067320d4e6ea4bfcfc84b4eb72 Merge: 1960e3e 53425c3 Author: David Leopoldseder Date: Fri Feb 10 01:02:27 2017 -0800 [GR-1383] Add weekly G1GC benchmarks. commit 1960e3e2b45acac3766a26844739ab7e12f3638f Merge: 0584bce f8fcb50 Author: Codrut Stancu Date: Thu Feb 9 14:36:23 2017 -0800 [GR-2726] Refactor stream usage. commit f8fcb500150f40d3e52d5954a868f489842a7b64 Author: Codrut Stancu Date: Fri Feb 3 21:41:17 2017 -0800 Refactor stream usage. commit 0584bce96fddfe28fcbdae2f5f13855033a7d982 Merge: 0d9e753 0253981 Author: Christian Wimmer Date: Thu Feb 9 13:23:26 2017 -0800 [GR-2748] Allow forced re-initialization of debug environment. commit 025398147a1937ca08f98d70f63f7a3dffe1d4de Author: Christian Wimmer Date: Thu Feb 9 12:59:51 2017 -0800 Allow forced re-initialization of debug environment commit 0d9e7533a49564f341cb9db085ffea0295f72e33 Merge: 8b26660 c01850f Author: Thomas W?rthinger Date: Thu Feb 9 09:36:39 2017 -0800 [GR-2790] Do not drop guards on reads during read elimination. commit c01850fb004167b5f939d96a562f0bade3629f44 Author: Thomas W?rthinger Date: Thu Feb 9 18:02:04 2017 +0100 Do not drop guards on reads during read elimination. commit 8b26660b523198d1b7485957d845d67577b0ee41 Merge: 9d3fe02 2f73a38 Author: Boris Spasojevic Date: Thu Feb 9 06:17:24 2017 -0800 [GR-2632] Adding a test suite for Truffle Inlining. commit 2f73a38fc28c4bfffdcda7090bb66358e2550736 Merge: 3594f1e 9d3fe02 Author: Boris Spasojevic Date: Thu Feb 9 15:01:46 2017 +0100 Merge branch 'master' into tests/inlining commit 3594f1e44c5ac24f8e5f7e17909402eedf5df858 Author: Boris Spasojevic Date: Wed Feb 8 08:52:10 2017 +0100 Updated the usage of compiler options. commit 4f57bc029daa3b69c5310572155e34169c533422 Merge: 4bb7407 f72bfeb Author: Boris Spasojevic Date: Wed Feb 8 08:51:28 2017 +0100 Merge branch 'master' into tests/inlining commit 9d3fe02ee3f556c8efa7286e7cda6caaebae531a Merge: 757c76a 32e6808 Author: Thomas W?rthinger Date: Thu Feb 9 04:25:40 2017 -0800 [GR-2770] Set new PiStamp if new guarding condition proves more precise information. commit 32e6808116d7dd30c49bd74453f0debd3d2c1249 Author: Thomas W?rthinger Date: Thu Feb 9 11:49:21 2017 +0100 Set new PiStamp if new guarding condition proves more precise information. commit 757c76a40a46593b22f5baf0a211395d11739224 Merge: 4b3ccb1 675e604 Author: Thomas W?rthinger Date: Wed Feb 8 15:21:12 2017 -0800 [GR-2754] Use pi instead of guard for read access. commit 675e60477ab0fb3bfecfd9ba9c487706c638dd1d Author: Thomas W?rthinger Date: Wed Feb 8 17:25:13 2017 +0100 Fix dynamic object allocation snippet. commit 62442f5f48c70b41e5f4cd0e8a3d3ec7556d50ee Author: Thomas W?rthinger Date: Tue Feb 7 20:48:14 2017 +0100 Fix array store exception stub and Unsafe.allocateInstance intrinsification. commit 2ee3be6a47df9fc6a17a3ec27ab7da2d361afa04 Author: Thomas W?rthinger Date: Tue Feb 7 20:19:43 2017 +0100 Fix constant pool intrinsification to check for non-null. commit d0f3293c827dbe9eaba883c12f8de18e61e76658 Author: Thomas W?rthinger Date: Tue Feb 7 16:59:51 2017 +0100 Fix createClassCastException to have NonNullParameter. commit b82278f3bcc9d8de8b00329c5235a46e6a06aef7 Author: Thomas W?rthinger Date: Tue Feb 7 15:15:59 2017 +0100 Add assertion that FloatingReadNode inputs have non-null stamp. Fix violators. commit d077baf51b8bce9d4a3a9909b0764b8915a45a53 Author: Thomas W?rthinger Date: Tue Feb 7 13:35:31 2017 +0100 Reduce number of guarded nodes. commit bfb911da3ecae08d637d4e763bcd03ea2f49dd77 Author: Thomas W?rthinger Date: Mon Feb 6 16:48:53 2017 +0100 Modify WriteBarrierVerificationTest. commit 469811fcdf0ca13207a3b8559318cc4b3eaa147c Author: Thomas W?rthinger Date: Mon Feb 6 04:43:22 2017 +0100 Fix lowering phase to clear guards only when actually exiting the block. commit 03b3023b17e635e3e646d27832855523b1d24a61 Author: Thomas W?rthinger Date: Mon Feb 6 02:08:50 2017 +0100 Use guard instead of pi for array bounds check. Fix klass pointer null check. Simplify read node and clean up after graph building. commit 867d9def5d68605dd83600d47126e8ccfd65347a Author: Thomas W?rthinger Date: Sun Feb 5 20:18:42 2017 +0100 Change lowering for memory access nodes to use PiNode instead of directly guarding the access. commit 4b3ccb1cec1b4aec6474076656a6b82a8db4b619 Merge: 5e2d27f d47aa7d Author: Tom Rodriguez Date: Wed Feb 8 10:31:50 2017 -0800 [GR-2672] Properly handle 0 length strings in String.indexOf intrinsic. commit d47aa7dce4954cdab51223c2755c2167cc06dff7 Author: Tom Rodriguez Date: Mon Feb 6 17:40:31 2017 -0800 Properly handle 0 length strings in String.indexOf intrinsic commit 5e2d27fe53b72f958a536997ac8c9856dc66320a Merge: 33635af fb14123 Author: Doug Simon Date: Wed Feb 8 09:08:43 2017 -0800 [GR-2752] Fixed NPE in DebugValuesPrinter.printDebugValues. commit fb141236280a0241b6a4b5a620824cbed908e94c Author: Doug Simon Date: Wed Feb 8 17:44:16 2017 +0100 fixed NPE in DebugValuesPrinter.printDebugValues commit 33635afdc032789ee58b05ef9fd650cd8beddb79 Merge: 2a56c90 c943010 Author: Doug Simon Date: Wed Feb 8 08:06:06 2017 -0800 [GR-2736] Cleanup after GR-1979. commit 2a56c903712f457cc13b09da7f6b914ff7d0d2f4 Merge: 4176c41 20f5567 Author: David Leopoldseder Date: Wed Feb 8 05:22:20 2017 -0800 [GR-2724] OsrLockTest: Remove printing to stdout. commit 4176c41ea0785ad5875b96f0bbee78279733567f Merge: f72bfeb 9498f74 Author: Josef Eisl Date: Wed Feb 8 05:12:08 2017 -0800 [GR-2729] Reduce the number of TraceRA task in the CI. commit c94301037e76531fc191b1558ba289c4de4056b1 Author: Doug Simon Date: Wed Feb 8 11:58:53 2017 +0100 fixed comment to reflect code changes commit 0545cdc7a321b6d503624807f3c8550d9ebca20a Author: Doug Simon Date: Wed Feb 8 11:58:32 2017 +0100 removed accidentally added code commit 9498f7488df6a54852983c10bd864a9f8c26bdcc Author: Josef Eisl Date: Wed Feb 8 11:55:06 2017 +0100 [ci] update overlay revision commit 20f5567072248e713cba51914a0dcc8a85118bac Author: David Leopoldseder Date: Wed Feb 8 11:50:21 2017 +0100 [fix] OsrLockTest: Remove printing to stdout. commit b6971b5982996b6fda257ed56195313e4c672656 Author: Josef Eisl Date: Wed Feb 8 10:11:39 2017 +0100 [ci]: reduce TraceRA tasks commit f72bfeb6def8c41ae6426661f6d4aaead4cb94df Merge: 60b1818 9fa7538 Author: Doug Simon Date: Tue Feb 7 14:15:45 2017 -0800 [GR-1979] Replace static options with context based options. commit 9fa753893414aa6c86763d6606bea6a053ec5217 Author: Doug Simon Date: Tue Feb 7 20:49:52 2017 +0100 removed accidentally added code commit 9298ad801978e49c0c35b1e4def2e5bda3aba5c1 Merge: e3b1959 41d3dc9 Author: Doug Simon Date: Tue Feb 7 17:11:33 2017 +0100 Merge. commit e3b19596f886be9bad689f36014c20cac678b9f5 Author: Doug Simon Date: Tue Feb 7 17:03:32 2017 +0100 merge fixes commit 76d0454add6142ee6dd3e757f9ed4fd2ed00f081 Merge: 33b07c3 60b1818 Author: Doug Simon Date: Tue Feb 7 16:03:29 2017 +0100 Merge. commit 33b07c33d295af8b51164704abf277d459881445 Merge: 1aebf17 39ed5ab Author: Doug Simon Date: Tue Feb 7 15:31:12 2017 +0100 Merge branch 'master' into topic/non-static-options commit 4bb7407cd19cf8ba837e59542cde2196bb8f9ed1 Author: Boris Spasojevic Date: Tue Feb 7 14:33:50 2017 +0100 Removed a comment to please Checkstyle. commit aec325ead8a20227be53cc3dc62ba74c2d96fcc1 Author: Boris Spasojevic Date: Tue Feb 7 14:14:33 2017 +0100 Separate methods to build targets and decisions. commit edfa581f5a914238d99ec938dea1107aac6e54a5 Author: Boris Spasojevic Date: Tue Feb 7 11:08:59 2017 +0100 Fixed Checkstyle issues. commit 7c1889bac1f4c83e82e2b0781a7d22ee6491f3e5 Author: Boris Spasojevic Date: Tue Feb 7 10:50:28 2017 +0100 Removed unused builtins. commit 00cbe331a1d81bb1a4cb5ea31d9e0dfeb420149e Author: Boris Spasojevic Date: Tue Feb 7 10:18:20 2017 +0100 Deleted the SL based inline tests. commit cb02c7a667a90db66f1bb3ce70afd399ba4c5686 Author: Boris Spasojevic Date: Tue Feb 7 10:07:37 2017 +0100 Added a few more test inspired by the SL inlining tests. commit c9453c55f3360e3a867138d92fdd66b9bf93a530 Merge: 18f66f4 60b1818 Author: Boris Spasojevic Date: Tue Feb 7 09:11:06 2017 +0100 Merge branch 'master' into tests/inlining commit 60b1818bee085341e23569c44deb5454fbb509b4 Merge: 83a58e7 38e128b Author: Gilles Duboscq Date: Mon Feb 6 14:44:18 2017 -0800 [GR-2691] Refactored magic number to a named constant. commit 38e128bf668b5d2735222b8bdbcf6d6fee291714 Author: Doug Simon Date: Mon Feb 6 23:22:08 2017 +0100 fixed capitalization commit 83a58e75857f1ba333263df812d8815bd2161d16 Merge: dac323d e70fb16 Author: Tom Rodriguez Date: Mon Feb 6 10:55:34 2017 -0800 [GR-2528] Stubs hang onto intermediate compiler state forever. commit dac323d62da179252b59f0c6c6c7aafcacc07585 Merge: 39ed5ab b71e065 Author: Tom Rodriguez Date: Mon Feb 6 10:16:40 2017 -0800 [GR-2663] Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported(). commit 8e935d8dd9f5a301e89bcef488b9fdcfe56a60ce Author: Doug Simon Date: Mon Feb 6 19:03:44 2017 +0100 refactored magic number to a named constant commit 39ed5ab670fbb3493ed2907b3289934b5577d5c0 Merge: 34dc32c ca6b5e8 Author: Aleksandar Prokopec Date: Mon Feb 6 07:31:51 2017 -0800 [GR-2686] Rename extra.value.name field to metric.object. commit ca6b5e81d90cba476e833023ca152bf88d64ebad Author: Aleksandar Prokopec Date: Mon Feb 6 15:33:44 2017 +0100 Rename extra.value.name field to metric.object. commit 53425c33a3055d9614cbdfa7ca27ec08fe6cf180 Author: David Leopoldseder Date: Mon Feb 6 15:35:09 2017 +0100 [ci] Add g1gc weekly benchmarks. commit c26fc090a79f6a3a76ac64f55974ee0695877b79 Author: David Leopoldseder Date: Mon Feb 6 15:34:36 2017 +0100 [feature] Add g1gc jvm config. commit 18f66f4e9c59ec178ff87067ef0ca5f819267631 Author: Boris Spasojevic Date: Mon Feb 6 15:28:25 2017 +0100 Fixed the SuppressWarnings annotation. commit ff50da30517c0cbbf49ffc314790a8b54541886a Author: Boris Spasojevic Date: Mon Feb 6 15:10:07 2017 +0100 Merged target instructions in to one class and one map. commit d810f2c84799a0755b7d42512330f6212e0b65d7 Author: Boris Spasojevic Date: Mon Feb 6 14:50:42 2017 +0100 Making fields final and a bit of cleanup. commit f1a94d4559d4fcf4fb58887c99467831ee62b0c4 Author: Boris Spasojevic Date: Mon Feb 6 14:42:09 2017 +0100 Fixed a typo. commit 5943dec3a829d40906b2847327f746934201258a Author: Boris Spasojevic Date: Mon Feb 6 14:30:34 2017 +0100 Fixed the expected/actual order in assertions. commit 56d90e3085e76b47658a716687d6f391978fbab8 Author: Boris Spasojevic Date: Mon Feb 6 14:26:57 2017 +0100 Added a test to confirm inlining if size * number of call sites is close to limit. commit 0635641eec81a202a3b7a2bc0a36b745e4e51529 Author: Boris Spasojevic Date: Mon Feb 6 14:06:46 2017 +0100 Moving each period to end of line. commit b5b4ff98c59c57b8730063c5485995ec4598c7cd Author: Boris Spasojevic Date: Mon Feb 6 14:01:15 2017 +0100 Suppress unused warning for override scope. commit 34dc32ce647bb0732428854049b0c12cdbeab35a Merge: 82e9913 f725f5a Author: David Leopoldseder Date: Mon Feb 6 04:57:14 2017 -0800 [GR-1501] Support OSR with locks on the stack. commit f725f5a1a7d924098e9cca5ff485c0778a8a903e Author: David Leopoldseder Date: Wed Jan 25 17:59:28 2017 +0100 [feature] osr: support OSR with locks Make sure all monitor operations on the same MonitorIdNode are locking the same object when building the OSR entry point Remove liveness changes and handle final barrier in OSR compiled constructor commit 74ff69efc0b036d2cba0f43dec058dcbdc099eda Author: Boris Spasojevic Date: Mon Feb 6 10:45:20 2017 +0100 Making TruffleInliningTest an abstract class. commit 92741bedf4274fdab7f15da4ffcf9851bd377974 Author: Boris Spasojevic Date: Mon Feb 6 10:17:50 2017 +0100 Extract policy as a field to enable testing different policies. commit d73100773fb990fe5bcb4918c58def77a2cb75b2 Author: Boris Spasojevic Date: Mon Feb 6 10:05:39 2017 +0100 Upgraded and assert. commit 0e38631f3579a65137fcfd0420bc5c895a1ba694 Author: Boris Spasojevic Date: Mon Feb 6 10:03:00 2017 +0100 Test the ability to disable inlining by flag. commit 82e9913cb31b93399402e1b0d312a49b0556194d Merge: 7b3aa72 9dd0eed Author: Doug Simon Date: Sun Feb 5 12:57:57 2017 -0800 [GR-2664] Avoid unnecessary annotation reification. commit 9dd0eedd13f13086a92704b107176f78bd7e7b76 Author: Doug Simon Date: Sat Feb 4 17:17:55 2017 +0100 moved annotation retrieval to exception path commit b71e0657e760003a1aa101abdb9a167c5e963c79 Author: Igor Veresov Date: Mon Jan 30 23:23:13 2017 -0800 Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported() commit 7b3aa723c71960b1ae7d80463a5186826842b3f5 Merge: 6b198a9 51dc4ac Author: Roland Schatz Date: Fri Feb 3 07:16:06 2017 -0800 [GR-2657] Add support for Truffle on Aarch64 (#248). commit 0fdb0ff41c202c8a6934f1cf656174db79e88c62 Author: Boris Spasojevic Date: Fri Feb 3 15:02:09 2017 +0100 Cut dependency to GraalTest. commit c19ca721cf4552a7d2a5f391accbf25f2538a343 Author: Boris Spasojevic Date: Fri Feb 3 14:52:09 2017 +0100 Cut dependency to GraalTest. commit 4c631fd7ee149ee8b5c27d6e85d88e055a5c1c46 Author: Boris Spasojevic Date: Fri Feb 3 14:46:34 2017 +0100 Maximize Truffle Compilation Threshold. commit 29538a8bca0a0f5b18c2e8e37b7249947186087c Author: Boris Spasojevic Date: Fri Feb 3 14:35:45 2017 +0100 Separate tests (BasicTruffleInliningTest) and base class (TruffleInliningTest). commit 5bb09aa1700d5889915eaba5e30efb4439ba52fd Author: Boris Spasojevic Date: Fri Feb 3 12:32:03 2017 +0100 Removed duplicate test. commit 48f99a4f16d37b477ae9729638efc83735d5c56e Author: Boris Spasojevic Date: Fri Feb 3 12:30:24 2017 +0100 Use custom formatting when using the builder. commit 098998155b53eb27b8c0ab5b1d086b0423e0eb63 Author: Boris Spasojevic Date: Fri Feb 3 12:06:37 2017 +0100 Changed the default execution count for call sites to 0. commit 4b71ef3a9353a45e06ec77252494b13ccebc7a40 Author: Boris Spasojevic Date: Fri Feb 3 11:53:29 2017 +0100 Fixed some Checkstyle errors. commit 21d740d27beddb73d5fc3ed10c4576ddef4a00d5 Author: Boris Spasojevic Date: Fri Feb 3 11:47:54 2017 +0100 Removed a few unused variables. commit a158cfd4831521d7c6afa4d1886df6e330f7cbcd Author: Boris Spasojevic Date: Fri Feb 3 11:42:59 2017 +0100 Removed redundant cast. commit 6fc3f0d8db3098621039fb2b84378659f78b60c5 Author: Boris Spasojevic Date: Fri Feb 3 11:05:39 2017 +0100 Adding support to control frequency. commit 6b198a931fb9c3fd7509eb74f88b1416fec7b802 Merge: fd19afc ea4de57 Author: Boris Spasojevic Date: Fri Feb 3 00:04:02 2017 -0800 [GR-1552] Use 2 compilation threads by default, regardless of processor core count. commit 04888ab5cdaee42f249c2fdd32e9bb45db25eaf6 Author: Boris Spasojevic Date: Fri Feb 3 08:53:54 2017 +0100 Removed build method with argument. commit fd19afc72851dc6b6f1a13bf0dd77b3f9c4ccc9f Merge: eeead7d eb19756 Author: Kevin Menard Date: Thu Feb 2 16:51:19 2017 -0800 [GR-2168] Update to latest ci-overlays. commit 51dc4ac45f881a628ae34425c591a528846d4b07 Merge: 39124f8 eeead7d Author: theRealAph Date: Thu Feb 2 18:20:46 2017 +0000 Merge remote-tracking branch 'master/master' into aarch64-truffle commit 39124f80d8de1aebd3c6b7770c637dd93dbd4159 Author: theRealAph Date: Thu Feb 2 17:14:12 2017 +0000 Chackstyle fix. commit e545e0dbbbfaf582ad33b4c12be9f25084f2e0a2 Author: theRealAph Date: Thu Feb 2 17:03:31 2017 +0000 Minor fix for dependencies and tests. commit eb19756edb9f74ff4387e09295149cab799b459a Author: Kevin Menard Date: Thu Feb 2 11:17:13 2017 -0500 Update to latest ci-overlays. commit aa7b73b04ba966011dd726575cedf5d39cbf9607 Author: Boris Spasojevic Date: Thu Feb 2 15:28:28 2017 +0100 Removed duplicate test and renamed another. commit 410784bd3f6f98d0a4d1f8e4f43b5252f1e7e92c Author: Boris Spasojevic Date: Thu Feb 2 15:23:30 2017 +0100 A few more tests testing deep and wide call graphs. commit 75d71f23c4f23d944241ba30468304918667cc1c Author: Boris Spasojevic Date: Thu Feb 2 14:27:11 2017 +0100 Removed unused frame slot. commit 09d0aac816d6aad1c02b85a9159a7a4cf9fa47fd Author: Boris Spasojevic Date: Thu Feb 2 14:15:03 2017 +0100 Added testIndirectRecursiveInline. commit eeead7d36a3d3559a222c27ad25b8b6ca18f8ac3 Merge: 9f6de20 fb7bc56 Author: Doug Simon Date: Thu Feb 2 05:14:11 2017 -0800 [GR-2599] Revert back to jvmci-0.23 for CI. commit c8e9a6f65cb6693433d78ae87bcb085c66d3016c Author: Boris Spasojevic Date: Thu Feb 2 13:56:03 2017 +0100 Introducing the TruffleInliningTest class. commit fb7bc5684af90202ab79eaf33408cdfe71e0f9d6 Author: Doug Simon Date: Wed Feb 1 12:38:41 2017 +0100 revert back to jvmci-0.23 for CI commit 9f6de2086654be3138018ae143cc79a0346b7566 Merge: 948bdb1 97bb567 Author: David Leopoldseder Date: Thu Feb 2 04:46:42 2017 -0800 [GR-2394] Schedule used to verify a valid graph should not mutate the graph. commit 948bdb10689ecd5be7cc517a65ab7ef865ec6fd4 Merge: f60c2af fb1573c Author: David Leopoldseder Date: Thu Feb 2 03:54:11 2017 -0800 [GR-2626] Block iteration compilation alarm bailout must be permanent. commit 97bb567bfa8029a8f5504a76e614e25df423dc0c Author: David Leopoldseder Date: Wed Jan 18 17:08:31 2017 +0100 [fix] GraphOrder: Schedule used to verify a valid graph should not mutate the graph commit fb1573c4fc181986f4b2e348c2c6c39d83083401 Author: David Leopoldseder Date: Thu Feb 2 11:27:09 2017 +0100 [fix] Block iteration compilation alarm bailout must be permanent. commit f60c2af4731aade509b1c199932849d53548b40e Merge: 2510c49 4698fcd Author: Aleksandar Prokopec Date: Wed Feb 1 13:54:41 2017 -0800 [GR-2574] Add instructions for branch instrumentation. commit 4698fcdc57eafc8def6083dfbad023c9c5483b17 Author: Aleksandar Prokopec Date: Mon Jan 30 15:29:06 2017 +0100 Add instructions for branch instrumentation. commit 2510c49fe053e6325b615b0b73d3ba9cba691f46 Merge: 0890343 3a13148 Author: Tom Rodriguez Date: Wed Feb 1 12:22:35 2017 -0800 [GR-2620] Add high level optimization for String.indexOf. commit 3a13148bb48b5ab6990fe91bf74fa7cc4d0f7433 Author: Tom Rodriguez Date: Thu Dec 8 12:04:23 2016 -0800 Add high level optimization for String.indexOf on constant strings commit 0890343e16fc45b4e8251418958f02eb1e0fbf05 Merge: ce50d02 cf66d51 Author: David Leopoldseder Date: Wed Feb 1 09:53:17 2017 -0800 [GR-2600] ControlFlowGraph visitDominatorTreeDeferLoopExits deferres exits for invalid loops. commit 9aeaff2b6cb62eb9b4d01c46ee366bb584e1b2a1 Merge: 99e2248 ce50d02 Author: theRealAph Date: Wed Feb 1 16:57:08 2017 +0000 Merge remote-tracking branch 'master/master' into aarch64-truffle Conflicts: graal/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java graal/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java commit cf66d51211bb2f06fc2064b833790c886b87e804 Author: David Leopoldseder Date: Wed Feb 1 13:06:50 2017 +0100 [fix] ControlFlowGraph: Fix deferred exit traversal deferred loop computation. commit ce50d0238efb67a2fdf939678fcec2f1b76a7e9c Merge: 0c9091a 2f5ed18 Author: David Leopoldseder Date: Wed Feb 1 06:38:23 2017 -0800 [GR-2605] Revert DynamicPiNode removal. commit 2f5ed181f99699394a7721509f358cdbb0218c01 Author: David Leopoldseder Date: Wed Feb 1 14:10:22 2017 +0100 Revert "Remove DynamicPiNode (PiNode if beneficial should be inserted on demand)". commit ea4de5792dd9ca66020677210e410cb99ca7dd32 Author: Boris Spasojevic Date: Wed Feb 1 09:13:46 2017 +0100 Use 2 compilation threads if there are 4 or more available processors. commit 0c9091a5a9a5bd3d4862c7df630244e19cab368d Merge: a2c9f4d 8be794e Author: Thomas W?rthinger Date: Tue Jan 31 21:20:01 2017 -0800 [GR-2247] Remove unused parts of the code (salver, instrumentation, Graal deopt stubs). commit 8be794e2d7740d070cea792e7aeeebd2cd1ff3fc Author: Thomas W?rthinger Date: Tue Jan 31 17:21:43 2017 +0100 Remove DynamicPiNode (PiNode if beneficial should be inserted on demand). Reduce usage patterns of GuardedValueNode to only without stamp and use PiNode in other cases. commit d7ea41c93a15946e0f096b591b530eb5667698e4 Author: Thomas W?rthinger Date: Mon Jan 30 20:22:24 2017 +0100 Remove unused Graal stubs for deoptimization. Remove unused node intrinsics. commit 5028bbd39074609dfcfd4943a67b829677f369bb Author: Thomas W?rthinger Date: Mon Jan 30 19:28:06 2017 +0100 Move SnippetAnchorNode from HotSpot-specific project to general project. commit 7d281217e61a9b7621179c102fa2b5cd500d2568 Author: Thomas W?rthinger Date: Mon Jan 30 19:09:49 2017 +0100 Temporarily remove InstrumentationPhase and associated functionality. commit 35f0fcef088c323a89fa982c97074147b024510a Author: Thomas W?rthinger Date: Mon Jan 30 18:31:35 2017 +0100 General clean up. Remove unused salver project. commit a2c9f4dabd2f1dca73727f7fa08e56d45221c8a2 Merge: 36d1fc5 18ee8e8 Author: Doug Simon Date: Tue Jan 31 10:35:16 2017 -0800 [GR-2595] Fix mx version used in CI. commit 36d1fc586c855109c41d4acc4d3d917871f454c4 Merge: ffe25b8 5fa9408 Author: Doug Simon Date: Tue Jan 31 09:03:05 2017 -0800 [GR-2593] Cache methods for lookup in ClassfileBytecodeProvider. commit ffe25b87d5f22d9b2f7d351f5775f8d9e75e20e4 Merge: 9d75033 4b68038 Author: Doug Simon Date: Tue Jan 31 08:52:04 2017 -0800 [GR-2440] Removed reference to Method::_jfr_towrite. commit 18ee8e8933c0e19bff72ef07e69e2a952bac1ca4 Author: Doug Simon Date: Tue Jan 31 16:50:25 2017 +0100 fix mx used in CI to a specific commit commit 4b68038ceb3c72d2f8670a76e6a69f3643900da1 Author: Doug Simon Date: Fri Jan 20 14:50:41 2017 +0100 Method::_jfr_towrite was removed by JDK-8171960 commit 5fa9408ff9afe596e45a08ead284a5c2f317059a Author: Doug Simon Date: Tue Jan 31 16:22:44 2017 +0100 cache methods for lookup in ClassfileBytecodeProvider commit 9d7503325342a3570eda5cbff22c469ea344d991 Merge: 62cbd52 8011c0f Author: Doug Simon Date: Tue Jan 31 06:06:48 2017 -0800 [GR-2545] Add fast path for inlining trivial accessors. commit 62cbd528cca628739a1a77c13d1fe453a076c248 Merge: 6224cc5 f058bfa Author: Boris Spasojevic Date: Tue Jan 31 05:14:43 2017 -0800 [GR-2444] Rewrite SL Truffle tests to not require background compilation. commit 8011c0fa6da86c4b5114b9da619606f2c188fa0c Author: Doug Simon Date: Thu Jan 26 23:39:11 2017 +0100 added BytecodeParser fast path for inlining accessors commit 6224cc5e406256ea92fe619f16353946eeb77bcc Merge: ca81523 4f86a9c Author: Tom Rodriguez Date: Mon Jan 30 17:29:58 2017 -0800 [GR-2580] Add missing ValueNode import for generated match rules. commit e70fb16e4b76a6add5b6984fd3cf5cf3d45844a4 Author: Tom Rodriguez Date: Tue Jan 24 11:43:22 2017 -0800 Stubs hang onto intermediate compiler state forever commit 4f86a9c2d968880f1286af7f3d58ca3383531df0 Author: Tom Rodriguez Date: Mon Jan 30 12:12:47 2017 -0800 Add missing ValueNode import for generated match rules commit 41d3dc962874742e925bb051f508f74e26ce07ce Author: Christian Wimmer Date: Mon Jan 30 16:55:46 2017 -0800 Do not use GLOBAL option values in debug and graph dumping code commit f058bfa2c51da5b88733a44d1b8f4522e343525c Author: Boris Spasojevic Date: Mon Jan 30 17:07:50 2017 +0100 Removed waitForCompilation from callUntilOptimized. commit 7e7c9f24a7ec6047b4f52531305bbad519b5efc5 Author: Boris Spasojevic Date: Mon Jan 30 17:06:59 2017 +0100 Removed waitForOptimization from SL files. commit c05c3c291185142b2c4fbd56933ec71f3d9e0700 Author: Boris Spasojevic Date: Mon Jan 30 17:06:21 2017 +0100 SLTruffleGraalTestSuite extends TestWithSynchronousCompiling. commit ca815239f932dd28e0b8a32fbef8844b2489bc00 Merge: d94ca56 cb2c76d Author: Aleksandar Prokopec Date: Mon Jan 30 06:20:58 2017 -0800 [GR-2135] Add profiling for @TruffleBoundary-annotated methods. commit cb2c76d57e4b213ade8451f3c2a99ce9a82dff5f Author: Aleksandar Prokopec Date: Mon Jan 30 14:50:09 2017 +0100 Prune and merge instrumentation options, and make instrumentation filters all by default. commit d94ca5682413eb7fa1292247e2bd2a7e33ac282a Merge: 177563e 0051351 Author: Christian Humer Date: Mon Jan 30 05:00:31 2017 -0800 [GR-1766] Remove callnode frame argument. commit 005135140de06ff99f8479f1789073108e865c62 Author: Christian Humer Date: Mon Jan 30 13:39:56 2017 +0100 Remove frame argument from call node methods. commit 99e224842e06e6f0db8f94c9e501d44b8a0fb119 Author: theRealAph Date: Mon Jan 30 12:03:37 2017 +0000 Fix dependencies for AArch64 truffle. commit 177563e51882bc2a676c6c9d298325af1baf6f4b Merge: 5e0015e 6c10037 Author: Felix Kaser Date: Mon Jan 30 02:58:23 2017 -0800 [GR-2572] Remove git for darwin build. commit 7d888f7189ab3eca4cedb6ff9666db8284185d7b Author: Boris Spasojevic Date: Mon Jan 30 11:14:58 2017 +0100 Use 2 compilation threads by default, regardless of processor core count. commit 5e0015ea87fe92c527da02967e2b00d4947ca624 Merge: f137082 3b1641f Author: Boris Spasojevic Date: Sat Jan 28 02:31:58 2017 -0800 [GR-2444] Rewrite Truffle tests to not require background compilation. commit 06f33371f40f1ccb18d8da07c09a45586f32438e Author: Christian Wimmer Date: Fri Jan 27 19:40:07 2017 -0800 Remove StableOptionKey, OptionKey.setValue commit 4e886be3270d02e280c028c8c580735e58f3a69f Author: Christian Wimmer Date: Fri Jan 27 18:15:43 2017 -0800 Truffle must constant fold flag UseFrameWithoutBoxing during partial evaluation commit e0475d007d5521b1667b594c7a90a6bd62727bef Author: Christian Wimmer Date: Fri Jan 27 18:15:00 2017 -0800 Use standard way to check for disallowed null argument commit f137082e685e3827cb498cf16aa04d43092042d0 Merge: dab40f5 7b6931d Author: Thomas W?rthinger Date: Fri Jan 27 09:18:20 2017 -0800 [GR-2506] Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. commit dab40f5772d149ac62f39cc476a52cdd58ab5366 Merge: 2ba2150 f35e9a4 Author: Gilles Duboscq Date: Fri Jan 27 08:35:41 2017 -0800 [GR-2362] Skip unnecessary Pi nodes when lowering array length. commit 7b6931dd5e3f90f44139350ad3777b722245f4dc Author: Thomas W?rthinger Date: Fri Jan 27 16:12:05 2017 +0100 Add new test cases to IntegerStampTest and fix a missing canonicalization when creating IntegerStamps. commit f35e9a49e15ef59b9c3795f4918ba724a093e069 Author: Gilles Duboscq Date: Thu Jan 26 18:18:29 2017 +0100 [GR-2362] Skip unnecessary Pis when lowering array length This should help ensure that various array length of the same array common-out. Added `GraphUtil.skipPiWhileNonNull` Also factor out the code used to create array length reads in `DefaultJavaLoweringProvider`. commit 3b1641f4c29590b93468c078a83d00b5ef973413 Author: Boris Spasojevic Date: Fri Jan 27 15:41:26 2017 +0100 Removed useless throws. commit 0abbe7d37d5ab491b5bcf98e1b53a5daf6f9a5f8 Author: Boris Spasojevic Date: Fri Jan 27 15:29:18 2017 +0100 Fixed imports. commit 6c100373d5561b010ca12c07827a1c68c1f8761f Author: Felix Kaser Date: Fri Jan 27 06:01:55 2017 -0800 remove git for darwin build it's installed system wide already commit 35018a6416c5ac6051698f504199daf714e6c222 Author: Boris Spasojevic Date: Fri Jan 27 14:58:36 2017 +0100 Fixed testOuterInvalidationTriggersOSR to work when not using background compilation. commit 4f4f34e1c229937d97e9c45e42f45a351d5f0e96 Author: Aleksandar Prokopec Date: Thu Jan 26 16:20:18 2017 +0100 Add InstrumentTruffleBoundariesPhase. commit f97dd08f6ac358f0c1bf01a4a20ce34a715d3776 Author: Aleksandar Prokopec Date: Thu Jan 26 13:08:06 2017 +0100 Refactor common instrumentation functionality from branch instrumentation. commit 2ba21503435fcf890335470acae67f6f2574f0cd Merge: 6415e5c c6a1f0d Author: Codrut Stancu Date: Thu Jan 26 14:01:32 2017 -0800 [GR-2544] Unsafe access of edges should use wrappers in Edges class. commit 6415e5ccc3c8a506290578f35e2d9d34ae4f98fc Merge: 70e8985 eae4712 Author: Doug Simon Date: Thu Jan 26 13:14:21 2017 -0800 [GR-2536] Reduce dynamic usage of ResolvedJavaField.getName. commit bf6ade69b8c4662e878e3b806e60837d0398fcbd Author: Thomas W?rthinger Date: Thu Jan 26 22:07:11 2017 +0100 Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. commit eae4712e581390fa1aa8691863ac6fc4d816c495 Author: Doug Simon Date: Thu Jan 26 15:13:44 2017 +0100 replace HashMap with EconomicMap commit 45e7fbd23f64689e2d1c0f633569cd296d4cb12f Author: Doug Simon Date: Thu Jan 26 14:30:12 2017 +0100 reduce dynamic usage of ResolvedJavaField.getName() commit c6a1f0d2ea034a8360badab8adb6ea8f54fdca0b Author: Codrut Stancu Date: Thu Jan 26 12:27:45 2017 -0800 [GR-2544] Unsafe access of edges should use wrappers in Edges.class. commit 70e8985f0857ae07b8b50d8434079ec3a89daaf6 Merge: c1ed814 6d21cb6 Author: Gilles Duboscq Date: Thu Jan 26 08:58:21 2017 -0800 [feature] Allows to force `ANY_LOCATION` for a truffle unsafe store plugin commit 6d21cb6c60d67b484f3de98d5a5628571bae2430 Author: Gilles Duboscq Date: Fri Jan 13 16:34:55 2017 +0100 [GR-2482] Allow to force `ANY_LOCATION` for a truffle unsafe store plugin Adds a flag to `UnsafeStore` to avoid canonicalizations that would lose `ANY_LOCATION`. Truffle unsafe store plugins can have a constant that represents this forced `ANY_LOCATION`. `null` still represents the non-forced `ANY_LOCATION`. commit c1ed814e1b0b943c10a4ed9a63a79282cd35b8a9 Merge: 4b8d2f7 e0339c2 Author: Stefan Anzinger Date: Thu Jan 26 06:16:14 2017 -0800 [GR-2534] Use AllocatableValue in SPARC LIR instructions whenever possible. commit 4b8d2f7ce7f624cc31a5d444254587f7e2bbd70a Merge: b416c07 eef3827 Author: Lukas Stadler Date: Thu Jan 26 06:12:49 2017 -0800 [GR-2516] Cleanups/documentation in PEA commit eef3827797d57377140057967235d1f26d4cfc66 Author: Lukas Stadler Date: Wed Jan 25 17:36:03 2017 +0100 cleanups in PEA commit 5e7e6510c50e09356e0f22dc38210fc6083dce63 Author: Lukas Stadler Date: Wed Jan 25 17:03:45 2017 +0100 use ?null? to represent default values in VirtualObjectState commit e0339c22bbceffefb58ed4ad1a61a3e7edbe1244 Author: Stefan Anzinger Date: Thu Jan 26 13:30:34 2017 +0100 [fix] Use AllocatableValue in SPARC LIR instructions whenever possible. commit b416c07f65d0db9548d77d85b8372b6ad0c7055c Merge: 4159a17 1229053 Author: Doug Simon Date: Thu Jan 26 02:23:21 2017 -0800 [GR-1984] CompilerWatchdog: Swallow VMErrors. commit 4159a1753cec341089ca35fc1d56dab63d3c355e Merge: 23acd8b c3b322e Author: Doug Simon Date: Thu Jan 26 02:21:37 2017 -0800 [GR-2407] CompilationWatchDog: Disable per default. commit 1229053e031a7eff870a9900e31464a79e3d09aa Author: David Leopoldseder Date: Thu Jan 26 10:11:36 2017 +0100 [fix] CompilerWatchdog: Swallow VMErrors. commit c3b322e8efd55aae8b278dcc9a5589403abee148 Author: David Leopoldseder Date: Thu Jan 26 10:07:10 2017 +0100 [feature] Bootstrap: Enabled CompilationWatchDog explicitly during bootstrap. commit 589e1b50f588e2449ce57812fab0fb45832dddbe Author: David Leopoldseder Date: Mon Jan 23 17:32:26 2017 +0100 [fix] CompilationWatchDog: Disable per default & increase trace interval and number of fatal stack traces. commit 23acd8b195a3ccbe8ef080c4690567afc9b1fe8c Merge: 99dcac4 f2f59b1 Author: Doug Simon Date: Wed Jan 25 14:45:13 2017 -0800 [GR-2462] [GitHub PR #245] Avoid zero-shift with AOT. commit 99dcac46adc51bbeb3a7ea00c47a1e66bad5e7a2 Merge: 71af6bb 1f884e8 Author: Doug Simon Date: Wed Jan 25 14:36:06 2017 -0800 [GR-2526] Fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found. commit f2f59b1485dd4968a33f3965a71cb448ea65e6f4 Author: Igor Veresov Date: Sat Jan 21 11:31:06 2017 +0300 Avoid zero-shift compressed oops for AOT code commit 1f884e81922e5d9c5c690c3866a50b47c6b65b05 Author: Doug Simon Date: Wed Jan 25 22:27:16 2017 +0100 fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found commit cc9b186f28d1d282cafbb40829218c3446560f13 Author: theRealAph Date: Wed Jan 25 18:13:50 2017 +0000 Enable AArch64 native calls for truffle. commit 71af6bb834013817a6057f8517fd27923d7f7b07 Merge: 69dcf99 3b5290f Author: Vojin Jovanovic Date: Wed Jan 25 09:24:14 2017 -0800 [GR-2498] collect SVM compilation logs commit 3b5290f72bf1105a116339ca15e65311eda2ea11 Author: Vojin Jovanovic Date: Wed Jan 25 17:51:47 2017 +0100 [doc] explain python for intellij commit 96d56e5fc2d3b50f738edb26f5bc528d89aa8731 Author: Vojin Jovanovic Date: Wed Jan 25 16:40:56 2017 +0100 [ci] collect SVM compilation logs commit 2f82f2eea5d72707f2201217f1e4c01b3037dc32 Author: Boris Spasojevic Date: Wed Jan 25 16:47:56 2017 +0100 OptimizedOSRLoopNodeTest extends TestWithSynchronousCompiling. Ignore testOSRFrameSlotChangeDuringOSR. commit 69dcf99730429dd235bbc33bab3e88c58f1b6fd4 Merge: 92e1f5e 0a7b8f2 Author: Aleksandar Prokopec Date: Wed Jan 25 06:06:38 2017 -0800 [GR-2477] Further improve stability of DaCapo measurements commit dc80887f4c8e6f1b04e42e2eb51acfbc8f4bb088 Author: Boris Spasojevic Date: Wed Jan 25 14:13:48 2017 +0100 Updated OptimizedCallTargetTest to sublcass TestWithSynchronousCompiling. commit 1a39724354ee9add1aa72bb03808b5e05c71b4a5 Author: Boris Spasojevic Date: Wed Jan 25 14:11:46 2017 +0100 Updated ExplodeLoopBlockDuplicationTest to subclass TestWithSynchronousCompiling. commit de63397eb82668c07484a4a3f10fb0974d4968ca Author: Boris Spasojevic Date: Wed Jan 25 14:09:51 2017 +0100 Introducing TestWithSynchronousCompiling. This class serves as a superclass for Truffle tests that require synchronous (i.e. no background) compilation. commit 0a7b8f218b6d242ad7beea18151a78d6b1be2cee Author: Aleksandar Prokopec Date: Wed Jan 25 11:03:53 2017 +0100 Increase the number of warmup runs used for averaging the result. commit 92e1f5ed5ac6014ece7cad342e5bc59e4c6f162c Merge: 576bb34 0d8833b Author: Thomas W?rthinger Date: Tue Jan 24 12:22:46 2017 -0800 [GR-2502] PEA object identity improvement at merges and loops. commit 0d8833be1692c5a7165c575b92d5ea73cc2d15fc Author: Lukas Stadler Date: Tue Aug 9 15:02:02 2016 +0200 more extensive checks to determine whether object identity survives in PartialEscapeClosure commit e7bdeb7cce18027db9dfbc11b556a8b117a379e8 Author: Lukas Stadler Date: Tue Aug 9 15:00:39 2016 +0200 remove broken (and unused) Arrays.asList call in PartialEscapeClosure commit 576bb34268ff4215c7cfa529407182411478ea7f Merge: 3654604 9cef763 Author: Aleksandar Prokopec Date: Tue Jan 24 06:04:35 2017 -0800 [GR-2477] Check if benchmark warmup iterations exist before computing the average. commit 9cef76322fa9aa069586c0aae65afbb349b1d4b2 Author: Aleksandar Prokopec Date: Tue Jan 24 14:38:47 2017 +0100 Check if benchmark warmup iterations exist before computing the average. commit 3654604bf93ddb89f5e6aab5662b6c4455218362 Merge: faae2c4 0a78eaf Author: Aleksandar Prokopec Date: Tue Jan 24 04:38:48 2017 -0800 [GR-2483] Average out latest results on Renaissance. commit 0a78eaf353fc54a2f1cd1218852c44d7069f3b97 Merge: c690a0e faae2c4 Author: Aleksandar Prokopec Date: Tue Jan 24 12:26:02 2017 +0100 Merge branch 'master' into fix/average-renaissance commit c690a0eabdc319077390b1e888b9d62fc76ecf66 Author: Aleksandar Prokopec Date: Mon Jan 23 18:41:21 2017 +0100 Average out latest results on Renaissance. commit 1aebf17977a721d5dfa61eaa3d7a44a8ad478b5d Merge: 264d4f8 faae2c4 Author: Doug Simon Date: Tue Jan 24 12:03:18 2017 +0100 Merge branch 'master' into topic/non-static-options commit 264d4f83dcd8eaee2d0363ac932000efd43c94c5 Merge: 579d29b a9e612b Author: Doug Simon Date: Tue Jan 24 00:57:03 2017 +0100 Merge branch 'master' into topic/non-static-options commit faae2c42c7a6f8c3c05a3f1433f5fab3635676f1 Merge: 7ea0a75 20ad9a0 Author: Thomas W?rthinger Date: Mon Jan 23 19:37:37 2017 -0800 [GR-2450] Do not assume array length input to AbstractNewArrayNode to be >= 0. commit 7ea0a7503d37ba8b375a4c2c83f239b0e82282ef Merge: 072a47f 1c8c5ec Author: Thomas W?rthinger Date: Mon Jan 23 19:24:18 2017 -0800 [GR-2456] New approach to dominator conditional elimination phase. commit 1c8c5ec8da477187f372cfb514702651b667b5be Author: Thomas W?rthinger Date: Tue Jan 24 02:19:16 2017 +0100 Reduce usage of java.util.ArrayList for dominator tree data structure and in new conditional elimination phase. commit ad2fd50cb65f386708562eb242516374de25a1ca Author: Thomas W?rthinger Date: Mon Jan 23 00:17:48 2017 +0100 New approach to dominator conditional elimination phase. commit 072a47fc236b94d39f1945b00ef8ee54a82c4255 Merge: a9e612b c5cd1e2 Author: Tom Rodriguez Date: Mon Jan 23 16:20:46 2017 -0800 [GR-2431] Use NodeEventScope for tracking inlining graph changes commit c5cd1e22d66a2aa6d248b1004874a9f14fa0a4e5 Author: Tom Rodriguez Date: Mon Dec 12 12:26:48 2016 -0800 Simplify tracking of nodes changed by inlining commit 579d29bf2400b007584f1e298f4a3771e5b412d2 Author: Doug Simon Date: Mon Jan 23 13:54:03 2017 +0100 EconomicMap may never called hashCode on keys commit a9e612b96b51d54583cc70e5c0fb38a863e6f42b Merge: 83c63c7 8747569 Author: Thomas W?rthinger Date: Mon Jan 23 14:12:12 2017 -0800 [GR-2465] Improve EconomicMap, EconomicSet, and Pair utilities. commit 8747569833141f7a9248d72cc3a545301dcb179a Author: Thomas W?rthinger Date: Mon Jan 23 22:31:20 2017 +0100 Add more utilities to EconomicMap interface. Change ImmutableMapCursor to UnmodifiableMapCursor. commit 28321d92d862502e5cbe60ae2e2878449d8d0e12 Author: Thomas W?rthinger Date: Mon Jan 23 21:59:19 2017 +0100 Improve EconomicMap, EconomicSet, and Pair utilities. commit 83c63c73d68bebb7ea76efdc2632747234b5aff5 Merge: 21a2b8a 2067d07 Author: Aleksandar Prokopec Date: Mon Jan 23 09:14:34 2017 -0800 [GR-2477] Compute average of last 20% of iterations reported in DaCapo. commit 2067d07a18ad6ffa4b4f628476c6d0440de39aeb Author: Aleksandar Prokopec Date: Mon Jan 23 15:08:03 2017 +0100 [fix] Compute average of last 20% of iterations reported in DaCapo. commit 1d3d549be6e359eb6867b394245d24c134f2bdea Merge: 6e8740d 21a2b8a Author: Doug Simon Date: Mon Jan 23 13:23:23 2017 +0100 Merge branch 'master' into topic/non-static-options commit 6e8740de791654f665d89e2bece0a568bfa53038 Author: Doug Simon Date: Mon Jan 23 12:43:42 2017 +0100 merge fixes commit 21a2b8ad61d7443fac74efa87c37b924680eb9ce Merge: 88ecb57 de50f19 Author: Doug Simon Date: Mon Jan 23 03:57:34 2017 -0800 [GR-2455] Update truffle import. commit 6dcd2f08eb1573f4c9851348eccd5c27fe5f23c6 Merge: bbb7350 d993012 Author: Doug Simon Date: Sun Jan 22 22:57:10 2017 +0100 Merge branch 'master' into topic/non-static-options commit 88ecb5768b0bdb38e6585ecb54cf3b71f2979de7 Merge: 3f09e66 1c826a3 Author: Thomas W?rthinger Date: Sun Jan 22 06:15:19 2017 -0800 [GR-2126] Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. commit 1c826a3511737a5a1f22c70dc2b4f65cfb5a2c42 Author: Thomas W?rthinger Date: Fri Jan 20 22:30:15 2017 +0100 Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. commit 3f09e66b48db47cc01f3a158a61f0c40ada65c4a Merge: d993012 b5ea038 Author: Doug Simon Date: Sun Jan 22 05:34:31 2017 -0800 [GR-2454] Remove invalid DebugTimer tests. commit de50f19e96e2f4d6d3de2cf79e3239a228866e73 Author: Doug Simon Date: Sun Jan 22 14:17:40 2017 +0100 update truffle import commit b5ea038574159a30428bc74d7368a8157bf5ed7e Author: Doug Simon Date: Sun Jan 22 14:11:17 2017 +0100 remove invalid DebugTimer tests commit d99301247326a30f6ddf1d7658ef5e6edc873c1b Merge: d0a2800 c2d5d89 Author: Thomas W?rthinger Date: Sat Jan 21 05:24:12 2017 -0800 [GR-2390] Avoid need for placeholder variable as they represent mutable static state. commit c2d5d89bc9e504c2a4a23f0116bfb351e5ea16c9 Author: Thomas W?rthinger Date: Sat Jan 21 03:32:19 2017 +0100 Change the API of PhiNode#singleValue and PhiNode#singleBackValue to avoid need for marker return value. commit bc68ed9567c049ba524fa53fd887ea0478953f98 Author: Thomas W?rthinger Date: Sat Jan 21 03:11:29 2017 +0100 Remove placeholder node Graph#PLACE_HOLDER. commit 20ad9a04b287a78809ee76d96ebf622ce2157869 Author: Thomas W?rthinger Date: Sat Jan 21 02:46:05 2017 +0100 Do not assume array length input to AbstractNewArrayNode to be >= 0. commit d0a280059b27efaa8df6007a183031f64ecae476 Merge: c295f9b 127a87a Author: Thomas W?rthinger Date: Fri Jan 20 13:36:31 2017 -0800 [GR-2387] Allow metaspace constants to inline into compares. commit c295f9b498e327be9ffa418936d03d7306c4fc67 Merge: 30498e7 b48ced9 Author: Thomas W?rthinger Date: Fri Jan 20 12:23:21 2017 -0800 [GR-2427] Remove Graph#addWithoutUniqueWithInputs. commit 30498e77c6d83df754f074e0bedb8c5502b7b2b5 Merge: dca1fda a9410de Author: Christian Humer Date: Fri Jan 20 09:12:08 2017 -0800 Increase timeout for compilations in OptimizedCallTargetTest. commit a9410decba0097ad45d289ad032ca6df14c39b12 Author: Christian Humer Date: Fri Jan 20 17:49:40 2017 +0100 Increase timeout for compilations in OptimizedCallTargetTest. commit dca1fda18c83e349b9f2a40b231e17ec342a8af0 Merge: f30952d 6879b7f Author: Thomas W?rthinger Date: Fri Jan 20 08:35:01 2017 -0800 [GR-2395] Refactor RecursiveInliningTest. commit b48ced9826d90b0448e7f14bf1f23b4a94a9862b Author: Thomas W?rthinger Date: Fri Jan 20 16:48:54 2017 +0100 Remove Graph#addWithoutUniqueWithInputs. Support using Graph#addOrUniqueWithInputs in the PEA phase. commit f30952da4636c2f7b5a486b4701025e9abe6cf53 Merge: 31fc791 9e33cfa Author: Boris Spasojevic Date: Fri Jan 20 03:29:34 2017 -0800 [GR-756] Disable Truffle inlining when flag TruffleFunctionInlining is set to false. commit 31fc79174d022e2fe5dbccea06655f25bffdcd76 Merge: 922be31 8b5e20c Author: David Leopoldseder Date: Fri Jan 20 02:55:12 2017 -0800 [GR-2414] Refactor tests to avoid redundant unsafe initialization. commit 127a87a46c5d12398ca43ea99ef759b5869ae09f Author: Tom Rodriguez Date: Tue Jan 17 23:41:51 2017 -0800 allow metaspace constants to inline into compares commit 922be31e046e3295a6005ca52cbd96746824a40f Merge: 8bea4ab 48b43c5 Author: Thomas W?rthinger Date: Thu Jan 19 14:35:44 2017 -0800 [GR-2426] IterativeConditionalEliminationPhase should clean up dead nodes commit 48b43c57ec791f9aa9a0ef16036829610a9b95a0 Author: Tom Rodriguez Date: Thu Jan 19 11:25:40 2017 -0800 IterativeConditionalEliminationPhase should clean up dead nodes commit 9e33cfad08f160e456c93f8e8a06a7a2f458478e Author: Boris Spasojevic Date: Thu Jan 19 16:57:54 2017 +0100 Fixed formatting. commit 81882082b441c24309520f0b634fcdd5cce4ea30 Author: Boris Spasojevic Date: Thu Jan 19 16:49:55 2017 +0100 Use of API method to create an empty list. commit 2da27e1ef76dee63040bab24007d512d5d0a535b Author: Boris Spasojevic Date: Thu Jan 19 16:48:48 2017 +0100 Positive condition check rather then early return. commit 22b9733d01bc0f5d933a670e58e41f7e6d446104 Author: Boris Spasojevic Date: Thu Jan 19 16:36:41 2017 +0100 Removed a '.*' import. commit 940ebf974e60ecdcdb63f5bb1d0faf41c75678e2 Author: Boris Spasojevic Date: Thu Jan 19 15:46:11 2017 +0100 Print an informative message if Truffle inlining is disabled but tracing of inlining is enabled. commit 1fb981b9f69bca2371530e7ce8685686d71bf59c Author: Boris Spasojevic Date: Thu Jan 19 15:28:09 2017 +0100 Stop all Truffle inlining if the TruffleFunctionInlining flag is set to false. commit 8b5e20cd527803604795a9fe1da1ee8b7adb875f Author: David Leopoldseder Date: Thu Jan 19 09:47:09 2017 +0100 Refactor tests to avoid redundant unsafe initialization. commit 6879b7f1491f7ac57d73d0599ab99d2006ba6d1c Author: David Leopoldseder Date: Wed Jan 18 18:38:46 2017 +0100 Refactor RecursiveInliningTest. commit 8bea4abff573a7ca2caad2af0772e3f8b3514b49 Merge: ef543d2 14562ce Author: Doug Simon Date: Wed Jan 18 04:33:53 2017 -0800 [GR-2397] Use the MethodParameters class file attribute if available. commit ef543d26790d28cb9b066fae8b822e9318f5fadb Merge: c965099 8d3d0a8 Author: Doug Simon Date: Wed Jan 18 02:51:48 2017 -0800 [GR-2393] workaround eclipse import static bug commit 14562ce2813f370f2c0c7ece59bc47634c47d2fe Author: Doug Simon Date: Tue Nov 8 23:45:22 2016 +0100 use the MethodParameters class file attribute if available commit 8d3d0a8a9ce9a235034e8c628e6984ee1e8b480e Author: Tom Rodriguez Date: Tue Jan 17 23:23:17 2017 -0800 workaround eclipse import static bug commit c96509900a464dfa109aa7aa0599bbc4ffb0aef7 Merge: 016786d c187ca0 Author: Codrut Stancu Date: Tue Jan 17 23:03:43 2017 -0800 [GR-2389] Remove illegals calls to @Fold annotated method. commit 016786dad08fa3b7d91ccb67fbc1c0afca64ac94 Merge: 1b6f5e4 54cc31d Author: Thomas W?rthinger Date: Tue Jan 17 17:36:55 2017 -0800 [GR-2370] Added canonicalization for cascades of short circuit or nodes. commit 54cc31dfc1c42c2f204d13f495b5f19466b7880c Author: Thomas W?rthinger Date: Wed Jan 18 02:06:17 2017 +0100 Perform systematic testing of short circuit or canonicalizations. Add boolean comparison canonicalization to normalize to the 0 test case. commit 62f1c01fc8e91dc4fb01292ab129376353dfa9c6 Author: Thomas W?rthinger Date: Tue Jan 17 14:49:50 2017 +0100 Added clarifying comments. commit 2cbd0dc112134e23a56addd2b0cbc2dfb8c3c1fe Author: Thomas W?rthinger Date: Tue Jan 17 05:26:16 2017 +0100 Added canonicalization for cascades of short circuit or nodes. commit c187ca03a5ced0d6e0cad5466e5fce8aae76e0d9 Author: Doug Simon Date: Tue Jan 17 21:46:30 2017 +0100 removed calls to @Fold methods that have a parameter annotated with @InjectedParameter commit 1b6f5e428afa21a0e34362b038dff6ed0d9d4ba2 Merge: d190b7d f14f28a Author: Thomas W?rthinger Date: Tue Jan 17 12:18:38 2017 -0800 [GR-2114] More efficient LoopsData.outerFirst and innerFirst. commit f14f28abb2e2aa59f50358eb9d3a689c9fbcf121 Merge: 29636d5 d190b7d Author: Thomas W?rthinger Date: Tue Jan 17 17:29:10 2017 +0100 Merge branch 'master' into topic/loopsdata commit d190b7d5e2bd2c5a5f4d5a99f6b4efce64be033a Merge: 13384d4 5fa3448 Author: Doug Simon Date: Tue Jan 17 06:59:16 2017 -0800 [GR-2368] Disable JDK 9 gates until JDK-8172850 is fixed. commit 13384d48e1f6b4fc9e4c9f07668e9706fc90eb40 Merge: 9a8d652 d2545b7 Author: Andreas Woess Date: Tue Jan 17 06:54:59 2017 -0800 [GR-2367] Truffle: ensure Assumption.isValid() is inlined for indirect calls commit 5fa3448f7b6d053096e4cad353e938f68329418e Author: Doug Simon Date: Tue Jan 17 15:03:18 2017 +0100 update overlay version commit 006841ed93b00065d9386e108a5038c1f9fc68be Author: Doug Simon Date: Tue Jan 17 14:34:03 2017 +0100 disable JDK 9 gates until JDK-8172850 is resolved commit 29636d5f1bc133436e0033e86c517d276326e766 Merge: 25b471c 8f1ad40 Author: Thomas W?rthinger Date: Tue Jan 17 14:21:06 2017 +0100 Merge branch 'master' into topic/loopsdata commit 92c7244c16972daf244f10afc3e5bf32a8ee8f05 Author: Doug Simon Date: Tue Jan 17 14:33:19 2017 +0100 update to current compatible JDK 9 EA build commit d2545b7e067f872137ea60f429439f488e369afa Author: Andreas Woess Date: Wed Jan 11 00:38:29 2017 +0100 [fix] Truffle: ensure Assumption.isValid() is inlined for indirect calls Use concrete type for profiledArgumentTypesAssumption field so that isValid() can be statically resolved and inlined without profiling info, i.e. during PE. commit 9a8d652b1810f1d7ffbdd225d5d8d577a11f13ca Merge: 8f1ad40 ed17a0d Author: Thomas W?rthinger Date: Tue Jan 17 04:33:09 2017 -0800 [GR-2365] Fix probabilities assigned to if nodes during logic expansion phase. commit ed17a0d7eebcb07fad0847515671542024ae04b1 Author: Thomas W?rthinger Date: Tue Jan 17 05:32:18 2017 +0100 Fix probabilities assigned to if nodes during logic expansion phase. commit 8f1ad406d78f2f57104a8edaaf5aecbb3616fd35 Merge: d1057cb f64c234 Author: Thomas W?rthinger Date: Mon Jan 16 06:31:23 2017 -0800 [GR-2325] New map and set implementations for better footprint and deterministic compilation. commit f64c234e4fa7ce8991db16f782ec355b159ce9b2 Author: Thomas W?rthinger Date: Mon Jan 16 14:47:18 2017 +0100 Rename CompareStrategy to Equivalence. Make org.graalvm.util.Pair class immutable. Fix issues and compress also during iterator removal for EconomicMapImpl. commit ff500d8a7e0017d8bdbfcea2a635f3438b2a6c8f Author: Thomas W?rthinger Date: Sun Jan 15 23:17:33 2017 +0100 Add compression functionality to EconomicMapImpl. Add unit tests measuring memory footprint. commit 1d3ee0b3c524727577ed856553d876a2013fdd84 Author: Thomas W?rthinger Date: Sun Jan 15 00:59:17 2017 +0100 Create new project org.graalvm.util and move new collection classes there. commit 1ec570a5ed6a99d72dc1847a45f4ca29b7c0bad2 Merge: e7f50be d1057cb Author: Thomas W?rthinger Date: Sat Jan 14 23:57:33 2017 +0100 Merge branch 'master' into fix/predictable-compilation commit e7f50be9af761c18c05df0c87f39baa9db25ee45 Author: Thomas W?rthinger Date: Sat Jan 14 22:53:26 2017 +0100 Add capability to customize EconomicMap/EconomicSet with CompareStrategy. commit d1057cb806157581b47ed071cf7a73ccc63dc59b Merge: 45bc46a 67a36df Author: Gilles Duboscq Date: Sat Jan 14 10:12:01 2017 -0800 [merge] Change killCFG strategy commit 67a36df61043d464f170ff2a0e1bf11cba8bf2e8 Author: Gilles Duboscq Date: Fri Jan 13 15:36:42 2017 +0100 [fix] Verify killCFG under VerifyGraalGraphEdges These verification slow things down significantly so we should not perform them all the time. Currently VerifyGraalGraphs is on by default. commit dd969b6f84370ff38ffa10c0d5d5310157d10ec4 Author: Gilles Duboscq Date: Wed Jan 11 20:27:11 2017 +0100 [fix] killCFG: only verify new unused nodes under a special flag If there were unused nodes in the intial graph it's non-trivial to make sure there will be no new unused nodes. Also it shouldn't be a big problem to create new unused nodes. The flag is still usefull has it might indicate problems in killCFG. The "unsafe node" verification remains on by default as it should hold and indicates real problem that can lead to later crashes. commit 8507c94a1f8f06913bd42ec13f13c1ce70226f5c Author: Gilles Duboscq Date: Mon Jan 9 18:48:50 2017 +0100 [fix] Change killCFG strategy Instead of killing usages eagerly, just add them to the worklist. Add removeNewNodes Make public killCFG interface operate only on FixedNode to simplify the implementation: we can assume that fixed nodes that need to be deleted will be reached while working on the CFG and not only through data-flow. commit 45bc46a3d7f73c5affbc113d57794a64952d720f Merge: 2e1fc7b 6b0d63b Author: Tom Rodriguez Date: Fri Jan 13 19:21:14 2017 -0800 [merge] [fix] Rearrange debug environment initialization commit 6b0d63b856d8eb92eb406e3d94b1d2b9c42fc4dd Author: Tom Rodriguez Date: Thu Dec 15 11:04:12 2016 -0800 [fix] Rearrange debug environment initialization commit 2e1fc7bcb1a5c02cc47218d9224fbfdc7563f789 Merge: a8c7c57 6f37e24 Author: Gilles Duboscq Date: Fri Jan 13 09:05:59 2017 -0800 [merge] changes to work with jdk9-ea+152 commit 6f37e24a702e3025e3b09bad50861b2c01dddb21 Author: Doug Simon Date: Fri Jan 13 16:49:49 2017 +0100 [ci] use non-dev jdk9 snapshot commit a32ac5a6e16caa242d0c7948a1339253f52cc495 Author: Doug Simon Date: Fri Jan 13 16:03:29 2017 +0100 [feature] updated README.md for jdk9-ea+152 commit a8c7c57cab4518d647aa751fb2161790eb0027ef Merge: 6d9a9ef 380c861 Author: Lukas Stadler Date: Fri Jan 13 06:42:33 2017 -0800 [merge] [fix] PEA: more accurately detect situations in which applying effects is necessary commit 380c861cd4b3fcc3976e460d333e71da9d4585fa Author: Lukas Stadler Date: Thu Jan 12 14:39:19 2017 +0100 [fix] PEA: more accurately detect situations in which applying effects is necessary commit ad4f9ea3091d924d2fd4185063f80672bdafc775 Author: Doug Simon Date: Fri Jan 13 13:58:53 2017 +0100 [fix] added missing header commit 3e4501b691257154e527be59697248d1ec8dec46 Author: Doug Simon Date: Fri Jan 13 11:58:35 2017 +0100 [feature] update to jdk9 ea b152 commit 2a225bcf63b5dbbecbcf367412c6ffd2eca7ea5d Author: Doug Simon Date: Tue Jan 10 12:02:02 2017 +0100 [fix] fix merge conflict commit 099ca2f8b68b5e2183613e5ce77a8e5218ba62a8 Author: Doug Simon Date: Tue Jan 10 11:21:28 2017 +0100 [feature] update CheckGraalInvariants for new module name and upgrade module path property commit 8c15872a6e73df205dc52ed91f5e3e5ea73717ef Author: Doug Simon Date: Tue Jan 10 11:20:26 2017 +0100 [feature] added more AddExports annotations as required commit c547ab53f854338ea68e72ecbedd3312021351c8 Author: Doug Simon Date: Tue Jan 3 10:17:42 2017 +1000 [feature] export ASM to all GraalCompilerTests commit e52b1328705be145460d2612a2690590d41caeb3 Author: Doug Simon Date: Fri Dec 30 23:42:57 2016 +1000 [feature] use @AddExports support; force Graal to be compiled with JDK8 commit f617bd6589a70acb0ede080f785d89b40a836631 Author: Doug Simon Date: Mon Dec 12 19:06:36 2016 +0100 [feature] support module changes from JDK-8169069 commit 6d9a9ef2e164076362f8efc30b6ec80b6317d373 Merge: 879be4e 69c7657 Author: Andreas Woess Date: Thu Jan 12 01:24:47 2017 -0800 Merge pull request #686 in G/graal-core from ~ANDREAS.WOESS_ORACLE.COM/graal-core:truffle_aarch64 to master * commit '69c7657a18a76b2d6c090b5cf777c1d4822edb4a': [feature] implement AArch64OptimizedCallTargetInstumentationFactory commit 879be4e0f21b74b7912b665f82f4ed1cca8edc24 Merge: 64cb154 a8260a7 Author: Gilles Duboscq Date: Wed Jan 11 11:33:54 2017 -0800 Merge pull request #708 in G/graal-core from topic/canonicalizer-kill-unused to master * commit 'a8260a759b9113ca82bdf718b8bed31a35c976ab': [fix] Try to kill unused nodes only once during node canonicalization commit 64cb154509391ea336cad5c50bdc5d9ad2952f0b Merge: a50992c 5561cef Author: David Leopoldseder Date: Wed Jan 11 03:19:34 2017 -0800 Merge pull request #705 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:test/recur-inline-test-reduce-iterations to master * commit '5561cef43c5f3dd5bdb368cca540f4e3a7013e58': [test] recursive inlining test: reduce number of iterations commit a8260a759b9113ca82bdf718b8bed31a35c976ab Author: Gilles Duboscq Date: Wed Jan 11 12:07:21 2017 +0100 [fix] Try to kill unused nodes only once during node canonicalization commit a50992c84db271041a53fd33400de6e2328ee967 Merge: a2255cc 61aa854 Author: Gilles Duboscq Date: Wed Jan 11 02:51:44 2017 -0800 Merge pull request #682 in G/graal-core from topic/cas to master * commit '61aa854fccee7537caf603bac3ad7bf334b75e44': [feature] Add match rules for if(cas) [feature] Add Word CAS operations commit a2255cc27855e6c1b7c9637b6e44671c7452bb04 Merge: 0cd413d 3c054a0 Author: Gilles Duboscq Date: Wed Jan 11 02:50:45 2017 -0800 Merge pull request #706 in G/graal-core from topic/debug-timeout-test to master * commit '3c054a05728f1e7e00693079f99868860fcf259f': [fix,test] Make sure debug is initialized for timeout tests commit 0cd413d6ba3293044ec378a0a5769d300d808833 Merge: 73d6f9b 78104d6 Author: David Leopoldseder Date: Wed Jan 11 00:11:25 2017 -0800 Merge pull request #704 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:fix/box-node-nodecosts to master * commit '78104d6a2aa30872054eebc00cfb54096e0b6218': [fix] node costs: box node is a normal allocation commit 69c7657a18a76b2d6c090b5cf777c1d4822edb4a Author: Andreas Woess Date: Wed Dec 7 18:02:45 2016 +0100 [feature] implement AArch64OptimizedCallTargetInstumentationFactory commit 3c054a05728f1e7e00693079f99868860fcf259f Author: Gilles Duboscq Date: Tue Jan 10 15:27:37 2017 +0100 [fix,test] Make sure debug is initialized for timeout tests Added GraalCompilerTest.initializeForTimeout() Call it from tests with a timeout (JUnit runs those on a different thread). commit 73d6f9ba1d2c5b5d1ee86776520935ec02955129 Merge: 2aee8e8 163d970 Author: Tom Rodriguez Date: Tue Jan 10 10:18:45 2017 -0800 Merge pull request #703 in G/graal-core from igor/aot-unverified-entry-point to master * commit '163d970ac39d810404963ffdf26a76272947cb59': [fix] Fix AOT unverified entry point commit 2aee8e88c9b9b5c1f6b17671f24e474d5b8a9589 Merge: b0175e5 3072436 Author: Christian Wimmer Date: Tue Jan 10 09:53:15 2017 -0800 Merge pull request #698 in G/graal-core from cwi/invocation-plugin to master * commit '30724369f7353e6f7a3fdb0ae423434d6228a9e4': [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target commit 25b471c8b2a80bb6b8c96da6069774113f6a315a Author: Gilles Duboscq Date: Wed Jan 4 18:42:17 2017 +0100 [fix] More efficient LoopsData Improved outerFirst This assumes the order of the loops retruned by the CFG. The loops are kept in an array instead of being sources from the maps. Removed innerFirst (added ReversedList which can be used to emulate it) Removed one of the maps commit 163d970ac39d810404963ffdf26a76272947cb59 Author: Igor Veresov Date: Thu Jan 5 15:26:18 2017 -0800 [fix] Fix AOT unverified entry point commit 61aa854fccee7537caf603bac3ad7bf334b75e44 Author: Gilles Duboscq Date: Mon Dec 19 18:56:07 2016 +0100 [feature] Add match rules for if(cas) commit b0175e57a242a454a5cc75add35b3a19e192f61a Merge: 848c88a 67d77ed Author: Josef Eisl Date: Tue Jan 10 04:15:43 2017 -0800 Merge pull request #702 in G/graal-core from ~JOSEF.E.EISL_ORACLE.COM/graal-core:compiler-test-retry-failed-code-installation to master * commit '67d77ed31c0b18169917c9d746380bc4218e0a89': [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout commit 67d77ed31c0b18169917c9d746380bc4218e0a89 Author: Josef Eisl Date: Mon Jan 9 16:12:43 2017 +0100 [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout This happens, e.g., if Graal is executed the first time and Graal code invalidates assumptions that where true before. commit 848c88a0945ae71622b49f425ee76bffe3b15c56 Merge: 11ecdc0 1cbe976 Author: Codrut Stancu Date: Tue Jan 10 01:30:05 2017 -0800 Merge pull request #659 in G/graal-core from cs/refactor-interval to master * commit '1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe': [misc] Interval and Range refactoring. commit 5561cef43c5f3dd5bdb368cca540f4e3a7013e58 Author: David Leopoldseder Date: Tue Jan 10 10:05:51 2017 +0100 [test] recursive inlining test: reduce number of iterations commit 78104d6a2aa30872054eebc00cfb54096e0b6218 Author: David Leopoldseder Date: Tue Jan 10 09:49:44 2017 +0100 [fix] node costs: box node is a normal allocation commit 1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe Author: Codrut Stancu Date: Tue Dec 6 23:49:09 2016 -0800 [misc] Interval and Range refactoring. commit 11ecdc05a48b77db4718dc7cb5c31f0ff562ad5e Merge: cebca3f 718a7da Author: Josef Eisl Date: Mon Jan 9 06:19:55 2017 -0800 [fix] use ArrayList in LIR where appropriate commit d0017ebcac25a598fcc3347549b9c34ee7f5d2c4 Author: Gilles Duboscq Date: Fri Dec 9 16:22:45 2016 +0100 [feature] Add Word CAS operations Add CAS operation to Word and use them in snippets Rename `LoweredCompareAndSwap` to `LogicCompareAndSwap` Rename `CompareAndSwap` to `UnsafeCompareAndSwap` Introduce `AbstractCompareAndSwap` and `ValueCompareAndSwap` Remove old cas nodes commit 718a7da231ba2f34354125c4deaf0c241c4bfce2 Author: Josef Eisl Date: Mon Jan 9 14:36:37 2017 +0100 [fix] TraceRA: assert that splitChildren list is always non-empty or null commit 9085352ea2337a4e49bab6f02e6a5e56fd5b2567 Author: Josef Eisl Date: Wed Dec 21 15:49:40 2016 +0100 [fix] use ArrayList instead of List in Linear Scan commit 4e87b12c86109a090b0060c80df3c9609ed4d642 Author: Josef Eisl Date: Wed Dec 21 14:17:44 2016 +0100 [fix] Use ArrayDeque in LinearScanLifetimeAnalysisPhase commit 5b922da3d7ca9e641aeb3db2dd766ba2cb1d0b33 Author: Josef Eisl Date: Wed Dec 21 14:10:53 2016 +0100 [fix] TraceRA: use ArrayList in TraceBuilderPhase commit 0f61ffd3a690e082c67dc217ced4bd40c8f7c239 Author: Josef Eisl Date: Wed Dec 21 14:01:45 2016 +0100 [fix] use ArrayList in RegisterVerifier commit 45a5e1fce556453fc2ac37f8a63966e2c72a1586 Author: Josef Eisl Date: Wed Dec 21 13:55:20 2016 +0100 [fix] TraceRA: use ArrayList in TraceLocalMoveResolver commit 432b97221d90df67ac1ce8d9b72468ad7e716bcc Author: Josef Eisl Date: Wed Dec 21 13:54:59 2016 +0100 [fix] TraceRA: use ArrayList in TraceLinearScanWalker commit 956cd75f3d938aeb00ba9d8e9e0e0487ec8248ae Author: Josef Eisl Date: Wed Dec 21 13:42:41 2016 +0100 [fix] use ArrayList for storing getLIRforBlock results commit 99c028c31a2035623269d66417073d5ce527ffd8 Author: Josef Eisl Date: Wed Dec 21 13:23:16 2016 +0100 [fix] TraceRA: use ArrayList for split children in TraceInterval commit 5dd26d98c9b48b8118047c41d3e24f9e63c594d4 Author: Josef Eisl Date: Wed Dec 21 12:18:21 2016 +0100 [fix] TraceRA: use index instead of ListIterator commit cebca3f9a2eabb1c411240eae19ea23041d3dde0 Merge: 0176906 1f349d8 Author: Christian Wimmer Date: Mon Jan 9 03:01:27 2017 -0800 [fix] Spill store optimization must not move stores into loop commit 0176906c5dc53edd512d8f489fce3a8dcd59e340 Merge: f76dc33 43efd9d Author: Doug Simon Date: Mon Jan 9 01:05:28 2017 -0800 Improve consistency in the README terminology commit 2f22f70b450f3e089480b2347520b3610b1f1f96 Author: Thomas W?rthinger Date: Sat Jan 7 00:59:53 2017 +0100 Introduce new economic map and set implementation with low footprint (in particular for small number of entries) to replace java.util.* usage. commit f76dc33b4fd41569991eb4659be8028190804f41 Merge: 0063385 39c1579 Author: Christian Wimmer Date: Fri Jan 6 09:15:08 2017 -0800 Minor fixes for my work on typed Truffle entrypoints on Substrate VM commit 39c1579fc91ca9d401e1a55f37fa8655cc2033a9 Author: Christian Wimmer Date: Thu Jan 5 16:49:50 2017 -0800 [feature] Change order of objects in equality check Allows customizing graph().method() with a marker method that has an approriate implementation of equals() commit 28a72b5bff8ca41cb023bae7cfe6e83854493b99 Author: Christian Wimmer Date: Thu Jan 5 15:58:55 2017 -0800 [fix] Avoid NullPointerException commit 30724369f7353e6f7a3fdb0ae423434d6228a9e4 Author: Christian Wimmer Date: Thu Jan 5 15:50:49 2017 -0800 [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target commit 006338540a46a1a228eeed01060c94ddbc4cb2e4 Merge: cb09b1b 07518dd Author: Christian Humer Date: Thu Jan 5 06:25:46 2017 -0800 Truffle OSR compilation: synchronize / cancel on invalidate commit cb09b1be120594b7e4f6a291b229da52e9ae6da4 Merge: 0584562 8ba423d Author: Christian Wimmer Date: Wed Jan 4 17:51:24 2017 -0800 Update Truffle version commit 8ba423d0ae840eb8ad521f76e06a89d537ec95f1 Author: Christian Wimmer Date: Wed Jan 4 16:31:19 2017 -0800 Update ci overlay version commit 4876c7208991810e53de8e7b34be51279ba05bbb Author: Christian Wimmer Date: Wed Jan 4 15:56:54 2017 -0800 Update Truffle version commit 0584562485b4e259f99d31a3999ced0be12f43c9 Merge: 3cb2e3f 5394eb5 Author: Vojin Jovanovic Date: Wed Jan 4 15:20:34 2017 -0800 Use correct intellij init command commit 5394eb535ee09020bd44bd4ca639327547b9b0b8 Author: Vojin Jovanovic Date: Wed Jan 4 23:30:57 2017 +0100 Changing the ci overlay commit c4f207aba3e7e0a314c955ec45494518228cf91e Author: Vojin Jovanovic Date: Wed Jan 4 15:19:42 2017 +0100 Use the correct IntelliJ init command commit 07518dd5f2deac85f94f3c8d8f0f13e2e778f688 Author: Lukas Stadler Date: Wed Jan 4 09:59:41 2017 +0100 cancel compilation task when OptimizedCallTargets are invalidated commit 82f2ca37f6c90bfec631b7a248972aa5e209de05 Author: Lukas Stadler Date: Wed Jan 4 09:59:13 2017 +0100 synchronize OptimizedOSRLoopNode.invalidateOSRTarget commit 3cb2e3f2343ddde3607819a479ef84ee95666f38 Merge: e4b3fb4 76d7382 Author: Christian Humer Date: Mon Jan 2 05:37:37 2017 -0800 [fix] Truffle compilation canceled itself in case of recursion commit 1f349d8c284d102e219d6ab76ec20a3a0a5c7e7b Author: Christian Wimmer Date: Fri Dec 30 14:42:41 2016 -0800 [fix] Spill store optimization must not move stores into loop commit 01fa2211d4a22a3cb50f2cfa2c047c30b5060763 Author: Thomas W?rthinger Date: Fri Dec 30 15:27:36 2016 +0100 Make compilation predictable by removing System.identityHashCode and related effects such as HashMap key iteration order as main sources of indeterminism. commit e4b3fb4ea236cadf34d407ee8ab216b8d76c5e87 Merge: 0cefb9f 2369e57 Author: Thomas W?rthinger Date: Fri Dec 30 04:07:05 2016 -0800 Add unit tests and small fixes for Truffle performance warning stack traces. commit 0cefb9fd32e48c5df87b335b8eaeaf170a286f34 Merge: f9b93f3 d2861f6 Author: Tom Rodriguez Date: Thu Dec 22 11:02:57 2016 -0800 Merge: Remove folding of loads from $assertionsDisabled in AOT commit 43efd9d41a00c3af1b8d7c269ce9cb3aaf12220a Author: Benoit Daloze Date: Thu Dec 22 17:52:29 2016 +0100 Improve consistency in the README terminology commit f9b93f32173b3fbbba6a05de9f26a0e6596aebe2 Merge: 7e25820 22a5ec9 Author: Vojin Jovanovic Date: Thu Dec 22 08:32:02 2016 -0800 Adding IntellJ instructions commit 22a5ec9ed9650c4452fe39fe7b64381360e111df Author: Vojin Jovanovic Date: Wed Dec 21 20:18:23 2016 +0100 Adding IntellJ instructions commit d2861f6fd589ce28301af30031fd3f824ccd3f12 Author: Igor Veresov Date: Tue Dec 20 11:13:10 2016 -0800 Remove folding of loads from $assertionsDisabled in AOT commit 7e258203177a6b2c7414cfeb35a133cc2e6c9670 Merge: 10af3e9 a25f5c9 Author: Tom Rodriguez Date: Mon Dec 19 16:55:09 2016 -0800 Merge: Fix argument types of tiered callbacks commit 76d738205406860fb2a85c930e3b1907cdb44cca Author: Christian Wimmer Date: Mon Dec 19 10:05:36 2016 -0800 [fix] Truffle compilation canceled itself in case of recursion commit 10af3e90b068c6298a8f185606fd2566d7cc53a1 Merge: fad8200 b225edc Author: Gilles Duboscq Date: Mon Dec 19 10:13:11 2016 -0800 Use extended JavaVm API from mx commit b225edc82382ea7ea33bbb675836b3498b333b42 Author: Gilles Duboscq Date: Wed Dec 14 16:27:12 2016 +0100 Use extended JavaVm API from mx commit fad8200eb15881121add70ba7fae6ba23fa53b90 Merge: d279402 7baf0fb Author: Josef Eisl Date: Mon Dec 19 06:21:34 2016 -0800 [ci]: increase jmh timeouts commit 7baf0fb18ab35bb60c4be5a236af34118696859e Author: Josef Eisl Date: Mon Dec 19 10:55:18 2016 +0100 [dep] update ci-overlay commit a824d7027795a386a8e5261eda19b703ae1aefaa Author: Josef Eisl Date: Mon Dec 19 10:54:54 2016 +0100 [ci] increase timelimit for graal-micros commit d27940208dd5f7fbba90c80ae6744986d8c50897 Merge: ac1842f c00c0bf Author: Matthias Grimmer Date: Mon Dec 19 02:22:45 2016 -0800 Add PUBLICATIONS.md commit ac1842ffd07e038c0833526f02f65d67c674ce0d Merge: a348ee7 260a8a6 Author: Tom Rodriguez Date: Sun Dec 18 20:57:14 2016 -0800 Merge: Allow multiple file names per thread and gracefully handle interrupted threads commit a25f5c9656b4910204f35c5a33e6a0000b45d48b Author: Igor Veresov Date: Fri Dec 16 18:23:54 2016 -0800 Fix argument types of tiered callbacks commit 2369e57d367fa81048d087e7cf9dacd3f1782b30 Author: Thomas W?rthinger Date: Sat Dec 17 01:04:29 2016 +0100 Add unit tests and small fixes for Truffle performance warning stack traces. commit a348ee713af1046b297d2a0326a6d1322bba004e Merge: 01695c8 5adca69 Author: Christian Humer Date: Fri Dec 16 09:53:32 2016 -0800 Print approximated stack trace for performance warnings. commit 5adca69e81e626443f1df00493b1a556aef81e92 Author: Christian Humer Date: Fri Dec 16 18:19:09 2016 +0100 Print approximated stack trace for performance warnings. commit 260a8a6e8059b3e2b33ad756516bd0c12d4e52ba Author: Tom Rodriguez Date: Thu Dec 15 11:04:12 2016 -0800 Allow multiple file names per thread and gracefully handle interrupted threads commit 01695c855a62af8764fe97421b6341e6a2622b63 Merge: 45e1839 56a21fb Author: Gilles Duboscq Date: Fri Dec 16 06:34:13 2016 -0800 Run bootstraps on machines with 'manycores' commit 56a21fb6586dc33fec5d38233616ef517a0fe48e Author: Gilles Duboscq Date: Fri Dec 16 14:44:51 2016 +0100 Run bootstraps on machines with 'manycores' Bootstraps are multithreaded so they benefit from having many cores. commit 45e183972bd9dc0ed6b5405c101ff1907a92d774 Merge: 9e5cf7f 36d2215 Author: Gilles Duboscq Date: Fri Dec 16 05:27:18 2016 -0800 Aarch64 graal misc fixes commit 9e5cf7f3e3d16a41c64031887a84a5278ef0c415 Merge: dd087fd 950b11e Author: David Leopoldseder Date: Fri Dec 16 04:09:16 2016 -0800 [ci] split bootstrap tasks commit dd087fd6447e1d2dc2a61920bbb1ae431457b5ef Merge: e34a1a3 a829731 Author: Tom Rodriguez Date: Wed Dec 14 12:09:49 2016 -0800 Merge: Fold narrow and sign extend into memory operations commit a8297312cd4d0da16b05bee3d50b79721590087c Author: Tom Rodriguez Date: Tue Dec 6 17:52:08 2016 -0800 Fold narrow and sign extend into memory operations commit bbb7350518fefd8792bac9735941c421d7d36470 Author: Doug Simon Date: Wed Dec 14 17:49:54 2016 +0100 remove redundant AllocationContext.options field commit d3b971522b400a4ff6991e08b107c687c65336b4 Author: Doug Simon Date: Wed Dec 14 16:17:59 2016 +0100 remove use of StableOptionKey commit dd36a08fa7da15d39b2dba20298aa1cbfae3f2c9 Author: Doug Simon Date: Wed Dec 14 15:58:52 2016 +0100 remove use of OptionKey.setValue commit dd11ad4cc1f1de2a5bb9abae86fc3aff9dfac7aa Author: Doug Simon Date: Wed Dec 14 14:53:23 2016 +0100 disable Inline and InlineDuringParsing if they have default values and -XX:-Inline is specified commit 6463f9f60fbbdeefa0e48c68b82994689c714a78 Merge: 2bfa0b1 e34a1a3 Author: Doug Simon Date: Wed Dec 14 13:23:24 2016 +0100 Merge branch 'master' into topic/non-static-options commit 2bfa0b1818bd368629091fc6e621ac87bd7acd85 Author: Doug Simon Date: Sat Dec 10 01:03:23 2016 +0100 post-merge fixups commit e34a1a3130f275d7390d50fda3ecf3f1abe42200 Merge: b332b62 686e261 Author: Gilles Duboscq Date: Wed Dec 14 03:04:12 2016 -0800 Remove unused array allocation if possible commit 950b11ecbca37ed8331e6762ee788b19f4edcf84 Author: David Leopoldseder Date: Wed Dec 14 10:59:14 2016 +0100 [ci] move bootstrap tasks to separate hocon file commit 91488eca7df066abc589300b0c45578578c68862 Author: David Leopoldseder Date: Wed Dec 14 10:50:58 2016 +0100 [ci] update mx version commit b332b62735ba82137706265157d8432a8fb48f6e Merge: 26c0792 d9708df Author: David Leopoldseder Date: Wed Dec 14 01:57:01 2016 -0800 [ci] trigger TraceRA benchmark daily only commit d9708df27a5159b851d5c333868c0cf7f5dd760f Author: Josef Eisl Date: Wed Dec 14 10:23:42 2016 +0100 [ci] trigger TraceRA benchmarks daily only commit 26c07924c31e03795c17c3e6f6861a90b14a6d21 Merge: 35cc2e8 f322ca2 Author: Gilles Duboscq Date: Tue Dec 13 08:27:49 2016 -0800 Add more cases to MonitorSnippets commit 36d22155092abd67cce70c963873e95884553c8a Merge: f812ad3 35cc2e8 Author: Gilles Duboscq Date: Tue Dec 13 16:33:58 2016 +0100 Merge branch 'master' into aarch64_graal_misc_fixes commit 35cc2e8d5ad64626fd97b3b72012299137ade43b Merge: dea00ee 977b6e1 Author: David Leopoldseder Date: Tue Dec 13 05:17:41 2016 -0800 [fix] loop optimizations must respect ControlFlowAnchored interface commit dea00eee58b2bb355755cfad45ccae95c43380b1 Merge: 87b6ac0 ef00cd9 Author: Josef Eisl Date: Tue Dec 13 03:58:20 2016 -0800 [dep] update ci overlay version commit 977b6e18628b2ddbe590c1bfc6d71aaa303dbcab Author: David Leopoldseder Date: Fri Dec 2 14:58:02 2016 +0100 [fix] control flow anchored: loop optimizations must use controlflowanchored interface commit c00c0bf719d433fc549668f551c845cc8bf93a50 Author: Matthias Grimmer Date: Mon Dec 12 10:30:14 2016 +0100 Add all Graal and Truffle related publications to Publications.md commit ef00cd905b55c1348a7cfa597150e52ad45683e3 Author: Josef Eisl Date: Mon Dec 12 13:17:01 2016 +0100 [dep] update ci overlay version commit f812ad3b8d847f797b3123adda0b330e1f0d78af Author: Andrew Haley Date: Mon Dec 12 18:09:36 2016 +0000 The parameters a and b should not be assigned. commit d224c1c6d681c83914b78752ba932639fb9d2613 Author: Andrew Haley Date: Mon Dec 12 17:25:17 2016 +0000 Remove unused arguments. commit 686e261039d357f04026d7286c0cf0f2d8c17238 Author: Gilles Duboscq Date: Mon Dec 12 17:47:08 2016 +0100 NewArray: only simplify to guards before guard lowering commit 13610fab8df4dfebc0794f8fcf5b5bf09d175662 Author: Gilles Duboscq Date: Thu Nov 17 16:16:40 2016 +0100 Simplify unused NewArray to Guard If we can not prove that the length is positive, a guard is still cheaper than the full allocation. Add tests for negative and large newarray Add tests that unused NewArray nodes are eliminated commit 53b5ee55c4ad09a473c0d596c2d485f247c0e475 Author: Gilles Duboscq Date: Wed Nov 16 18:01:46 2016 +0100 Remove unused array allocation if possible Remove unused array allocations where the length is known to be positive. commit 87b6ac064e1497442ac0e3125e31496fff517791 Merge: fb63259 cf008ba Author: Codrut Stancu Date: Sun Dec 11 22:23:39 2016 -0800 Refactor Node collections factory methods. commit fb632591c6c36b55451e936b7e20a37a67a726ea Merge: 784baba dc3ecab Author: Codrut Stancu Date: Fri Dec 9 11:21:26 2016 -0800 Refactor phase classes statistics access. commit 784babac9f9b68526d91ac17d6a305fff6a50f8a Merge: 451c012 414f878 Author: Codrut Stancu Date: Fri Dec 9 10:15:54 2016 -0800 Small refactorings. commit 451c012ae740f28e0e296ad965fe48ad9e596447 Merge: 98bdc0d 81fcc75 Author: Aleksandar Prokopec Date: Fri Dec 9 08:15:01 2016 -0800 Update package name for Renaissance bench. commit 565cdc3b08a3620ee13905af9fb7d60d4bfc07f9 Merge: 98bdc0d b200740 Author: Doug Simon Date: Fri Dec 9 17:05:23 2016 +0100 Merge branch 'aarch64_graal_misc_fixes' of https://github.com/theRealAph/graal-core into theRealAph-aarch64_graal_misc_fixes commit f322ca24e9b10082931dbf2a201673c7ffdf1c44 Author: Gilles Duboscq Date: Fri Dec 9 16:39:37 2016 +0100 Fix typos an document verify_jvmci_ci_versions commit 81fcc75fe00578f70228ee54ad5262625790f804 Author: Aleksandar Prokopec Date: Fri Dec 9 16:06:05 2016 +0100 Update package name for Renaissance bench. commit a8cf4587485ccfd78226629c54c0757d7a043b2f Author: Gilles Duboscq Date: Fri Dec 9 15:04:49 2016 +0100 Relax verify_jvmci_ci_versions Allow travis jvmci versions to lag behind *dev* version of ci.hocon jvmci. Use that and make travis use 0.23. The fastdebug versions names have been changed: s/fastdebug-dev/dev-fastdebug/ commit da9279e3eae2cdacd3b75e3f34118d09e3789698 Merge: b1e8360 949f9d4 Author: Doug Simon Date: Fri Dec 9 13:22:00 2016 +0100 Merge branch 'master' into topic/non-static-options commit dc3ecabbbfa5df7ae3ed79d9b85a69c567585dd1 Author: Codrut Stancu Date: Fri Oct 28 22:27:35 2016 -0700 Refactor phase classes statistics access. commit 414f8788c9864645099207c22cec763fa8f467b3 Author: Codrut Stancu Date: Tue Dec 6 23:44:56 2016 -0800 Replace stream use with simple for. commit e71f7dd62d6e1afab9f4da8b5ba91f4f127cdee5 Author: Codrut Stancu Date: Tue Dec 6 22:47:07 2016 -0800 Small refactorings. commit cf008ba7259bc432a3b83149c3b2a90c5fedc97a Author: Codrut Stancu Date: Tue Dec 6 22:36:54 2016 -0800 Refactor node collections factory methods. commit b20074008b6c89b94ddcf1482872a0fdef3ca960 Author: Andrew Haley Date: Thu Dec 8 15:15:04 2016 +0000 Checkstyle fixes. commit b1e836066425b1037481f5dfd7ddf916c627be05 Author: Doug Simon Date: Thu Dec 8 15:21:45 2016 +0100 made StructuredGraph final commit c560a5a8e8ada8012d06e39f31e67ac0cc90b6ca Author: Doug Simon Date: Thu Dec 8 15:02:21 2016 +0100 moved global option parsing from HotSpotGraalCompilerFactory to OptionValues removed methods from OptionKey that did not have a OptionValues context commit 21a2d2ab1ed5f6763937a761852445e0b223c16d Merge: 94016fc 949f9d4 Author: Gilles Duboscq Date: Thu Dec 8 12:57:03 2016 +0100 Merge remote-tracking branch 'master' into topic/locking commit 94016fca16a6cf5c04921c9c75ff5d257db99505 Author: Gilles Duboscq Date: Wed Dec 7 20:54:07 2016 +0100 MonitorSNippet: adjust probabilities commit c95ad5d1f5ac34e1579671060bc57b7ff6fafc70 Author: Gilles Duboscq Date: Wed Dec 7 19:39:37 2016 +0100 Cleanup: remove logging and unused location commit 9760b9b83e306d009a2083c4307706c9d3457862 Author: Gilles Duboscq Date: Tue Dec 6 11:53:03 2016 +0100 MonitorSnippets: Check for inflated lock earlier commit df4017e2d7d35c3468985a4f2251a787ee808b84 Author: Gilles Duboscq Date: Mon Dec 5 16:40:45 2016 +0100 Add SimpleFastInflatedLocking option commit 578654103c4532db520dae79ee5b44f106bd7228 Author: Gilles Duboscq Date: Mon Dec 5 15:57:44 2016 +0100 WIP: log inflated fast locking support commit 6fb059580aec479cf107495e181b01c308ffbb58 Author: Gilles Duboscq Date: Fri Dec 2 18:20:13 2016 +0100 Remove fast-path handling of succ in monitor snippets commit 38d9197d3d68a8057b57b25546c6b8f6240b1094 Author: Gilles Duboscq Date: Fri Dec 2 16:30:55 2016 +0100 Use JVMCI 0.24-dev commit 17865b46b77c91b606c9300eb6a831bdcee292e6 Author: Gilles Duboscq Date: Wed Nov 30 21:01:54 2016 +0100 Implement fast-path unlocking of inflated locks commit 98728bf2030e1e90c2cc38fb4260fc23cf329607 Author: Gilles Duboscq Date: Wed Nov 30 17:25:57 2016 +0100 Adjust monitor snippet probabilities commit 31cd4bf6e45d8ea20f114f7a094d66af9e30af05 Author: Andrew Haley Date: Tue Dec 6 19:02:34 2016 +0000 Tidy up Arrays.equals() support. commit 4dab38e0ad61633392e64ee80ec4e9018c534941 Author: Andrew Haley Date: Tue Dec 6 18:13:37 2016 +0000 Implement Arrays.equals(). commit 0201dec4f6e13b8d97d1daf2459f6a5204a36813 Author: Andrew Haley Date: Tue Dec 6 13:45:32 2016 +0000 Allow SP and ZR forms of add and subtract instructions. commit 6b899c1321a6196c3dbefab4e7c253d80a864477 Author: Andrew Haley Date: Tue Dec 6 13:19:50 2016 +0000 Disable NativeFunctionInterfaceTest on AArch64 commit 1419900803c872265815b3973950013192f3382c Author: Andrew Haley Date: Mon Dec 5 17:47:34 2016 +0000 Fix compressed OOPs. commit 61ce002370b1b242412583c878bebebef253e5ee Author: Andrew Haley Date: Mon Dec 5 17:22:29 2016 +0000 Fix flag-setting arithmetic. commit 14b4dd5156e1a2b894c784eaa0452ffc5558ee40 Author: Andrew Haley Date: Mon Dec 5 17:22:05 2016 +0000 Fix compressed OOPs. commit 49021aaee377250ac3f51a453f092c233a8fb433 Author: Andrew Haley Date: Mon Dec 5 16:25:15 2016 +0000 Fix null checks for compressed OOPs. commit 919e22adfbe7e54eb8eee580bd446aa9068a5c17 Author: Doug Simon Date: Sat Dec 3 14:41:24 2016 +0100 removed extra semicolon commit aa93c9a61b7a30cb6afa5d0e8c014559f62e5bf9 Author: Doug Simon Date: Sat Dec 3 12:41:24 2016 +0100 improved name of instrumentation graphs commit e6a181c024eb2e21f83c80723c42b678bed66577 Author: Doug Simon Date: Sat Dec 3 12:41:00 2016 +0100 fixed creation of inlineable graphs commit 2dfe1821a024735e2f80e126b2d533ac1a35ebe8 Author: Doug Simon Date: Sat Dec 3 12:40:26 2016 +0100 fixed chaining in overloaded methods commit 7241d89909511e833a6e39da4a1b83c62d841cb5 Author: Doug Simon Date: Sat Dec 3 12:39:57 2016 +0100 improved assertion message commit c90e054a12ed0d2b8d84392e2cac3be83386db6c Author: Doug Simon Date: Sat Dec 3 12:39:32 2016 +0100 also dump graph on error if -Dgraal.Dump option is non-null commit 07871cc653a07fe232121151b19b644fdf825cda Author: Doug Simon Date: Sat Dec 3 02:43:53 2016 +0100 removed incorrect assertion commit aae87fcc32a05937fa62ef7b55ae57bdfa87604a Merge: 5ec5c96 beb0da8 Author: Doug Simon Date: Sat Dec 3 02:32:03 2016 +0100 Merged from master branch and added StructuredGraph.Builder commit 2024acb03c0080ae48cb304be40bdc7c7072c2b4 Author: Andrew Haley Date: Fri Dec 2 19:00:30 2016 +0000 Exclude a couple of features which are not supported on AArch64. commit b72dd5e5aac1d2faf6a401c3dc7d0ce5e1698bfd Author: Andrew Haley Date: Fri Dec 2 18:59:46 2016 +0000 We should only load SP from FP in old versions of HotSpot. commit 5ec5c9663778c4e5e541573eb18c22ddd51cb91e Author: Doug Simon Date: Fri Dec 2 11:56:35 2016 +0100 removed OptionKey.getValue() and added OptionValues argument to all OptionKey.getValue(OptionValues) call sites commit 06875b567b71f7ae501c05530f9da96fd6736a09 Author: Doug Simon Date: Fri Dec 2 11:53:11 2016 +0100 override sl command in graal-core to run on Graal commit f56f8fb0d01a89ba2c25afcaa6feadb867ef7982 Author: Andrew Haley Date: Thu Dec 1 17:57:41 2016 +0000 Call runtime versions of intrinsics for transcendental funtions. commit 691991eb69e7f49b59a34cfaefec17dfc531e2e4 Author: Andrew Haley Date: Thu Dec 1 16:58:08 2016 +0000 Integer arithmetic notes which set flags. commit 13571ae9e90e90f7e1ec21c24d55ebe76637c3b8 Author: Andrew Haley Date: Thu Dec 1 10:58:52 2016 +0000 Implement countTrailingZeros. commit e8b6a30ab4e8a5e4040cbaabeffcd83eaa225e79 Author: Andrew Haley Date: Wed Nov 30 17:14:29 2016 +0000 Make add and sub work with 64-bit immediate values. commit 30c5b3f28a206658a5071f95a7848b0c8cb61836 Author: Andrew Haley Date: Wed Nov 30 12:38:27 2016 +0000 Correct method prologue and epilogue. commit 5f4c55161ea5e9e2903d06820780828b32249bc2 Author: Andrew Haley Date: Tue Nov 29 12:25:38 2016 +0000 Fix more unused warnings. commit d019de960477f5231a3082ad5c4cb13b69f5afda Author: Andrew Haley Date: Mon Nov 28 18:05:45 2016 +0000 Fix a few style errors. commit 806776592214b8a56e81f5a2124bf0f1b334fff4 Author: Andrew Haley Date: Mon Nov 28 12:03:49 2016 +0000 Fix a few style errors. commit a948773abcc02f51215399035c9679451325d562 Author: Andrew Haley Date: Sun Nov 27 17:36:53 2016 +0000 Fix warnings. commit 32c443b5c7c84aa6b42737d1224ead44db2730a1 Author: Andrew Haley Date: Fri Nov 25 16:10:43 2016 +0000 Fix a few style errors. commit 539cbc147dea9e1fde5e87e139eadcb5648d1e36 Author: Andrew Haley Date: Fri Nov 25 16:09:37 2016 +0000 Fix a few style errors. commit 4add54a62a32008a65f4ebe3300af52b295967c0 Author: Andrew Haley Date: Fri Nov 25 10:05:15 2016 +0000 Add missing braces. commit 5bd69ae0bd9e7ee047030c070408d92c218ca6c0 Author: Doug Simon Date: Fri Nov 25 10:53:59 2016 +0100 fixed sourcing of UseGraalInstrumentation value to be compilation local commit 49a97ed46c1e9a6830c53593b359a595e665266b Author: Doug Simon Date: Fri Nov 25 00:45:44 2016 +0100 fixed bugs in option overriding commit 64a0c239a728c1f0312d6f0687968ec53034bbab Author: Doug Simon Date: Wed Nov 23 00:31:20 2016 +0100 removed OptionKey.OverrideScope, DerivedOptionValue and BailoutAndRestartBackendException commit bb7d832717ea86a33e7415e9c49b243166cd0389 Author: Doug Simon Date: Wed Nov 16 16:10:37 2016 +0100 moved StableOptionKey invariant checking to OptionValues commit ab6f8b6760da3dcc2ede4b4589b041293498b972 Author: Doug Simon Date: Sun Nov 13 14:24:24 2016 +0100 indirect through OptionValues for getValue/setValue/hasBeenSet commit 45ffff3171466ea9539cd2d358868e5ad8183d50 Author: Doug Simon Date: Sat Nov 12 13:37:51 2016 +0100 fixed failing unit tests commit 5d981456e4dca208039e6e3986f36075713248aa Author: Doug Simon Date: Sat Nov 12 00:51:46 2016 +0100 rename OptionValue to OptionKey and added OptionValues as the store for values associated with OptionKeys commit 22edd24ca2c8af9ef010271d563b7dfdf63733e5 Author: Doug Simon Date: Fri Nov 11 18:16:35 2016 +0100 removed OptionValue profiling commit 42c3e92a20105bde82005616a0955c01deeda152 Author: Andrew Haley Date: Thu Nov 24 16:26:01 2016 +0000 Many small AArch64 fixes From david.holmes at oracle.com Wed Mar 22 00:02:03 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 22 Mar 2017 10:02:03 +1000 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> Message-ID: <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> I haven't been looking at the details of this but have been watching from afar. As per my comments in the bug report (now public) I'm quite concerned about the thread-non-safety issue here ... On 22/03/2017 4:47 AM, dean.long at oracle.com wrote: > On 3/21/17 9:37 AM, Vladimir Ivanov wrote: > >>> and webrev.2 with it removed: >>> >>> http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ >> >> Thanks, Dean. I started with webrev.2 and tried to minimize the >> changes. I ended up with the following version: >> >> http://cr.openjdk.java.net/~vlivanov/dlong/8158168/webrev.00/ >> > > Thanks. The reason I didn't go with that approach from the beginning is > because I couldn't convince myself that I could find all the missing > bounds checks, and I wanted an interface to test against. With the > bounds checks in AbstractStringBuilder, it is very hard to test all the > possible race conditions, because some of the race conditions only > happen when an ASB field changes half-way through the method. So are we convinced that the proposed changes will never lead to a crash due to a missing or incorrect bounds check, due to a racy use of an unsynchronized ASB instance e.g. StringBuilder? Thanks, David ----- >> Some clarifications: >> >> ============ >> src/java.base/share/classes/java/lang/String.java: >> >> The bounds check is needed only in String.nonSyncContentEquals when it >> extracts info from AbstractStringBuilder. I don't see how out of >> bounds access can happen in String.contentEquals: >> if (n != length()) { >> return false; >> } >> ... >> for (int i = 0; i < n; i++) { >> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >> > > OK. > >> ============ >> src/java.base/share/classes/java/lang/StringConcatHelper.java: >> >> I think bounds checks in StringConcatHelper.prepend() are skipped >> intentionally, since java.lang.invoke.StringConcatFactory constructs >> method handle chains which already contain bounds checks: array length >> is precomputed based on argument values and all accesses are >> guaranteed to be in bounds. >> > > This is calling the trusted version of getChars() with no bounds > checks. It was a little more obvious when I had the Trusted inner class. > >> ============ >> src/java.base/share/classes/java/lang/StringUTF16.java: >> >> + static void putChar(byte[] val, int index, int c) { >> + assert index >= 0 && index < length(val) : "Trusted caller >> missed bounds check"; >> >> Unfortunately, asserts can affect inlining decisions (since they >> increase bytecode size). In order to minimize possible performance >> impact, I suggest to remove them from the fix targeting 9. >> > > Sure. > >> ============ >> private static int indexOfSupplementary(byte[] value, int ch, int >> fromIndex, int max) { >> if (Character.isValidCodePoint(ch)) { >> final char hi = Character.highSurrogate(ch); >> final char lo = Character.lowSurrogate(ch); >> + checkBoundsBeginEnd(fromIndex, max, value); >> >> The check is redundant here. fromIndex & max are always inbounds by >> construction: >> >> public static int indexOf(byte[] value, int ch, int fromIndex) { >> int max = value.length >> 1; >> if (fromIndex < 0) { >> fromIndex = 0; >> } else if (fromIndex >= max) { >> // Note: fromIndex might be near -1>>>1. >> return -1; >> } >> ... >> return indexOfSupplementary(value, ch, fromIndex, max); >> > > OK. > >> ============ >> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >> ABS.value & ABS.count. After that, all accesses should be inbounds by >> construction (in String.indexOf/lastIndexOf): >> >> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >> String tgtStr, int fromIndex) { >> >> int rightIndex = srcCount - tgtCount; >> if (fromIndex > rightIndex) { >> fromIndex = rightIndex; >> } >> if (fromIndex < 0) { >> return -1; >> } >> >> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >> public static int lastIndexOf(byte[] src, int srcCount, >> byte[] tgt, int tgtCount, int >> fromIndex) { >> int min = tgtCount - 1; >> int i = min + fromIndex; >> int strLastIndex = tgtCount - 1; >> char strLastChar = getChar(tgt, strLastIndex); >> >> startSearchForLastChar: >> while (true) { >> while (i >= min && getChar(src, i) != strLastChar) { >> >> There are 2 places: >> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound >> >> * getChar(src, i); i in [ min; min+fromIndex ] >> min = tgtCount - 1 >> rightIndex = srcCount - tgtCount >> fromIndex <= rightIndex >> >> 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) >> + (srcCount - tgtCount) == srcCount - 1 >> >> Hence, should be covered by the check on count & value: >> public int lastIndexOf(String str, int fromIndex) { >> + byte[] value = this.value; >> + int count = this.count; >> + byte coder = this.coder; >> + checkIndex(count, value.length >> coder); >> return String.lastIndexOf(value, coder, count, str, fromIndex); >> } >> > > OK, I will go with your version if it's OK with Sherman. > > dl > >> Best regards, >> Vladimir Ivanov >> >>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>> >>>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>>> integrate verification logic in 10? >>>>>> >>>>> >>>>> OK, Tobias is suggesting having verification logic only inside the >>>>> intrinsics. Are you suggesting removing that as well? >>>> >>>> Yes and put them back in 10. >>>> >>>>> I'm OK with removing all the verification, but that won't reduce the >>>>> library changes much. I could undo the renaming to >>>>> Trusted.getChar, but >>>>> we would still have the bounds checks moved into StringUTF16. >>>> >>>> I suggest to go with a point fix for 9: just add missing range checks. >>> > From dean.long at oracle.com Wed Mar 22 00:26:01 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Tue, 21 Mar 2017 17:26:01 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> Message-ID: On 3/21/17 5:02 PM, David Holmes wrote: > I haven't been looking at the details of this but have been watching > from afar. As per my comments in the bug report (now public) I'm quite > concerned about the thread-non-safety issue here ... > > On 22/03/2017 4:47 AM, dean.long at oracle.com wrote: >> On 3/21/17 9:37 AM, Vladimir Ivanov wrote: >> >>>> and webrev.2 with it removed: >>>> >>>> http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ >>> >>> Thanks, Dean. I started with webrev.2 and tried to minimize the >>> changes. I ended up with the following version: >>> >>> http://cr.openjdk.java.net/~vlivanov/dlong/8158168/webrev.00/ >>> >> >> Thanks. The reason I didn't go with that approach from the beginning is >> because I couldn't convince myself that I could find all the missing >> bounds checks, and I wanted an interface to test against. With the >> bounds checks in AbstractStringBuilder, it is very hard to test all the >> possible race conditions, because some of the race conditions only >> happen when an ASB field changes half-way through the method. > > So are we convinced that the proposed changes will never lead to a > crash due to a missing or incorrect bounds check, due to a racy use of > an unsynchronized ASB instance e.g. StringBuilder? > If only we had a static analysis tool that could tell us if the code is safe. Because we don't, in my initial changeset, we always take a snapshot of the ASB fields by passing those field values to StringUTF16 before doing checks on them. And I wrote a test to make sure that those StringUTF16 interfaces are catching all the underflows and overflows I could imagine, and I added verification code to detect when a check was missed. However, all the reviewers have requested to minimize the amount of changes. In Vladimir's version, if there is a missing check somewhere, then yes it could lead to a crash. dl > Thanks, > David > ----- > >>> Some clarifications: >>> >>> ============ >>> src/java.base/share/classes/java/lang/String.java: >>> >>> The bounds check is needed only in String.nonSyncContentEquals when it >>> extracts info from AbstractStringBuilder. I don't see how out of >>> bounds access can happen in String.contentEquals: >>> if (n != length()) { >>> return false; >>> } >>> ... >>> for (int i = 0; i < n; i++) { >>> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >>> >> >> OK. >> >>> ============ >>> src/java.base/share/classes/java/lang/StringConcatHelper.java: >>> >>> I think bounds checks in StringConcatHelper.prepend() are skipped >>> intentionally, since java.lang.invoke.StringConcatFactory constructs >>> method handle chains which already contain bounds checks: array length >>> is precomputed based on argument values and all accesses are >>> guaranteed to be in bounds. >>> >> >> This is calling the trusted version of getChars() with no bounds >> checks. It was a little more obvious when I had the Trusted inner >> class. >> >>> ============ >>> src/java.base/share/classes/java/lang/StringUTF16.java: >>> >>> + static void putChar(byte[] val, int index, int c) { >>> + assert index >= 0 && index < length(val) : "Trusted caller >>> missed bounds check"; >>> >>> Unfortunately, asserts can affect inlining decisions (since they >>> increase bytecode size). In order to minimize possible performance >>> impact, I suggest to remove them from the fix targeting 9. >>> >> >> Sure. >> >>> ============ >>> private static int indexOfSupplementary(byte[] value, int ch, int >>> fromIndex, int max) { >>> if (Character.isValidCodePoint(ch)) { >>> final char hi = Character.highSurrogate(ch); >>> final char lo = Character.lowSurrogate(ch); >>> + checkBoundsBeginEnd(fromIndex, max, value); >>> >>> The check is redundant here. fromIndex & max are always inbounds by >>> construction: >>> >>> public static int indexOf(byte[] value, int ch, int fromIndex) { >>> int max = value.length >> 1; >>> if (fromIndex < 0) { >>> fromIndex = 0; >>> } else if (fromIndex >= max) { >>> // Note: fromIndex might be near -1>>>1. >>> return -1; >>> } >>> ... >>> return indexOfSupplementary(value, ch, fromIndex, max); >>> >> >> OK. >> >>> ============ >>> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >>> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >>> ABS.value & ABS.count. After that, all accesses should be inbounds by >>> construction (in String.indexOf/lastIndexOf): >>> >>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >>> String tgtStr, int fromIndex) { >>> >>> int rightIndex = srcCount - tgtCount; >>> if (fromIndex > rightIndex) { >>> fromIndex = rightIndex; >>> } >>> if (fromIndex < 0) { >>> return -1; >>> } >>> >>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>> public static int lastIndexOf(byte[] src, int srcCount, >>> byte[] tgt, int tgtCount, int >>> fromIndex) { >>> int min = tgtCount - 1; >>> int i = min + fromIndex; >>> int strLastIndex = tgtCount - 1; >>> char strLastChar = getChar(tgt, strLastIndex); >>> >>> startSearchForLastChar: >>> while (true) { >>> while (i >= min && getChar(src, i) != strLastChar) { >>> >>> There are 2 places: >>> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound >>> >>> * getChar(src, i); i in [ min; min+fromIndex ] >>> min = tgtCount - 1 >>> rightIndex = srcCount - tgtCount >>> fromIndex <= rightIndex >>> >>> 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) >>> + (srcCount - tgtCount) == srcCount - 1 >>> >>> Hence, should be covered by the check on count & value: >>> public int lastIndexOf(String str, int fromIndex) { >>> + byte[] value = this.value; >>> + int count = this.count; >>> + byte coder = this.coder; >>> + checkIndex(count, value.length >> coder); >>> return String.lastIndexOf(value, coder, count, str, >>> fromIndex); >>> } >>> >> >> OK, I will go with your version if it's OK with Sherman. >> >> dl >> >>> Best regards, >>> Vladimir Ivanov >>> >>>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>>> >>>>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>>>> integrate verification logic in 10? >>>>>>> >>>>>> >>>>>> OK, Tobias is suggesting having verification logic only inside the >>>>>> intrinsics. Are you suggesting removing that as well? >>>>> >>>>> Yes and put them back in 10. >>>>> >>>>>> I'm OK with removing all the verification, but that won't reduce the >>>>>> library changes much. I could undo the renaming to >>>>>> Trusted.getChar, but >>>>>> we would still have the bounds checks moved into StringUTF16. >>>>> >>>>> I suggest to go with a point fix for 9: just add missing range >>>>> checks. >>>> >> From vladimir.kozlov at oracle.com Wed Mar 22 03:49:04 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 21 Mar 2017 20:49:04 -0700 Subject: RFR: 8177346: hotspot change for 8176513 breaks jdk9 build on Ubuntu 16.04 In-Reply-To: <7dca58c9-4737-6b13-3869-47fe48f45582@oracle.com> References: <36f1d303-9a2c-c32e-e2d4-900bfb414606@oracle.com> <82bb55bf-cac0-0bfe-682f-37a906e57c93@oracle.com> <5fdb29ea-d5cd-9514-6877-6b5a36d0d426@oracle.com> <7dca58c9-4737-6b13-3869-47fe48f45582@oracle.com> Message-ID: Good. I approved the fix for JDK 9. Thanks, Vladimir On 3/21/17 2:01 PM, Vladimir Ivanov wrote: > Looks good. > > (CCed hotspot-compiler-dev) > > Best regards, > Vladimir Ivanov > > On 3/21/17 11:50 PM, David Holmes wrote: >> Fix is trivial but this is a compiler file and should have been reviewed >> on the hotspot-compiler-dev mailing list. There is no logical reason why >> 8176513 should have triggered this - so seems like a GCC bug to me that >> it wasn't flagged much earlier. >> >> Anyway, Reviewed. >> >> Thanks, >> David >> >> On 22/03/2017 6:40 AM, Phil Race wrote: >>> I am not blaming that change as being "bad" in any way. >>> I don't see how anyone could have foreseen this side effect. >>> >>> -phil. >>> >>> On 3/21/2017 12:56 PM, Daniel D. Daugherty wrote: >>>> Adding folks involved with the fix for 8176513. >>>> >>>> Dan >>>> >>>> >>>> >>>> On 3/21/17 1:40 PM, Phil Race wrote: >>>>> Please review a small JDK 9 build fix for a build failure due to >>>>> >>>>> hotspot/src/share/vm/opto/library_call.cpp:2578:3: error: >>>>> ?need_mem_bar? may be used uninitialized in this function >>>>> [-Werror=maybe-uninitialized] >>>>> if (need_mem_bar) insert_mem_bar(Op_MemBarCPUOrder); >>>>> >>>>> https://bugs.openjdk.java.net/browse/JDK-8177346 >>>>> >>>>> I can't explain why GCC 5.4 woke up and decided to start reporting >>>>> this warning when >>>>> nothing logically changed that would trigger it. However I think it >>>>> should already have >>>>> been triggered - it is clear to me that the compiler has a point. >>>>> >>>>> The fix is simple and provided in-line below :- >>>>> --- >>>>> >>>>> hg diff src/share/vm/opto/library_call.cpp >>>>> diff --git a/src/share/vm/opto/library_call.cpp >>>>> b/src/share/vm/opto/library_call.cpp >>>>> --- a/src/share/vm/opto/library_call.cpp >>>>> +++ b/src/share/vm/opto/library_call.cpp >>>>> @@ -2372,7 +2372,7 @@ >>>>> // the barriers get omitted and the unsafe reference begins to >>>>> "pollute" >>>>> // the alias analysis of the rest of the graph, either >>>>> Compile::can_alias >>>>> // or Compile::must_alias will throw a diagnostic assert.) >>>>> - bool need_mem_bar; >>>>> + bool need_mem_bar = false; >>>>> switch (kind) { >>>>> case Relaxed: >>>>> need_mem_bar = mismatched && !adr_type->isa_aryptr(); >>>>> >>>>> --- >>>>> >>>>> In fact this initialisation pattern is already used in other nearly >>>>> identical cases in >>>>> the same function. >>>>> eg this one about 20 lines before my update >>>>> bool mismatched = false; >>>>> >>>>> and this one about 20 lines after .. >>>>> bool requires_atomic_access = false; >>>>> >>>>> So there is ample precedent. >>>>> >>>>> I will get the appropriate RDP2 approvals to push once code review is >>>>> complete. >>>>> I also anticipate that by the time this happens I will need to push >>>>> it to >>>>> http://hg.openjdk.java.net/jdk9/dev/hotspot/ >>>>> as per the email here : >>>>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2017-March/026155.html >>>>> >>>>> >>>>> >>>>> >>>>> Let me know if you think otherwise. >>>>> >>>>> JPRT is being used to build/test the fix. >>>>> >>>>> -phil. >>>>> >>>> >>> From david.holmes at oracle.com Wed Mar 22 05:09:40 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 22 Mar 2017 15:09:40 +1000 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> Message-ID: On 22/03/2017 10:26 AM, dean.long at oracle.com wrote: > On 3/21/17 5:02 PM, David Holmes wrote: > >> I haven't been looking at the details of this but have been watching >> from afar. As per my comments in the bug report (now public) I'm quite >> concerned about the thread-non-safety issue here ... >> >> On 22/03/2017 4:47 AM, dean.long at oracle.com wrote: >>> On 3/21/17 9:37 AM, Vladimir Ivanov wrote: >>> >>>>> and webrev.2 with it removed: >>>>> >>>>> http://cr.openjdk.java.net/~dlong/8158168/webrev.2/ >>>> >>>> Thanks, Dean. I started with webrev.2 and tried to minimize the >>>> changes. I ended up with the following version: >>>> >>>> http://cr.openjdk.java.net/~vlivanov/dlong/8158168/webrev.00/ >>>> >>> >>> Thanks. The reason I didn't go with that approach from the beginning is >>> because I couldn't convince myself that I could find all the missing >>> bounds checks, and I wanted an interface to test against. With the >>> bounds checks in AbstractStringBuilder, it is very hard to test all the >>> possible race conditions, because some of the race conditions only >>> happen when an ASB field changes half-way through the method. >> >> So are we convinced that the proposed changes will never lead to a >> crash due to a missing or incorrect bounds check, due to a racy use of >> an unsynchronized ASB instance e.g. StringBuilder? >> > > If only we had a static analysis tool that could tell us if the code is > safe. Because we don't, in my initial changeset, we always take a > snapshot of the ASB fields by passing those field values to StringUTF16 > before doing checks on them. And I wrote a test to make sure that those > StringUTF16 interfaces are catching all the underflows and overflows I > could imagine, and I added verification code to detect when a check was > missed. > > However, all the reviewers have requested to minimize the amount of > changes. In Vladimir's version, if there is a missing check somewhere, > then yes it could lead to a crash. I wonder if the reviewers have fully realized the potential impact here? This has exposed a flaw in the way intrinsics are used from core classes. Thanks, David ----- > > dl > >> Thanks, >> David >> ----- >> >>>> Some clarifications: >>>> >>>> ============ >>>> src/java.base/share/classes/java/lang/String.java: >>>> >>>> The bounds check is needed only in String.nonSyncContentEquals when it >>>> extracts info from AbstractStringBuilder. I don't see how out of >>>> bounds access can happen in String.contentEquals: >>>> if (n != length()) { >>>> return false; >>>> } >>>> ... >>>> for (int i = 0; i < n; i++) { >>>> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >>>> >>> >>> OK. >>> >>>> ============ >>>> src/java.base/share/classes/java/lang/StringConcatHelper.java: >>>> >>>> I think bounds checks in StringConcatHelper.prepend() are skipped >>>> intentionally, since java.lang.invoke.StringConcatFactory constructs >>>> method handle chains which already contain bounds checks: array length >>>> is precomputed based on argument values and all accesses are >>>> guaranteed to be in bounds. >>>> >>> >>> This is calling the trusted version of getChars() with no bounds >>> checks. It was a little more obvious when I had the Trusted inner >>> class. >>> >>>> ============ >>>> src/java.base/share/classes/java/lang/StringUTF16.java: >>>> >>>> + static void putChar(byte[] val, int index, int c) { >>>> + assert index >= 0 && index < length(val) : "Trusted caller >>>> missed bounds check"; >>>> >>>> Unfortunately, asserts can affect inlining decisions (since they >>>> increase bytecode size). In order to minimize possible performance >>>> impact, I suggest to remove them from the fix targeting 9. >>>> >>> >>> Sure. >>> >>>> ============ >>>> private static int indexOfSupplementary(byte[] value, int ch, int >>>> fromIndex, int max) { >>>> if (Character.isValidCodePoint(ch)) { >>>> final char hi = Character.highSurrogate(ch); >>>> final char lo = Character.lowSurrogate(ch); >>>> + checkBoundsBeginEnd(fromIndex, max, value); >>>> >>>> The check is redundant here. fromIndex & max are always inbounds by >>>> construction: >>>> >>>> public static int indexOf(byte[] value, int ch, int fromIndex) { >>>> int max = value.length >> 1; >>>> if (fromIndex < 0) { >>>> fromIndex = 0; >>>> } else if (fromIndex >= max) { >>>> // Note: fromIndex might be near -1>>>1. >>>> return -1; >>>> } >>>> ... >>>> return indexOfSupplementary(value, ch, fromIndex, max); >>>> >>> >>> OK. >>> >>>> ============ >>>> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >>>> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >>>> ABS.value & ABS.count. After that, all accesses should be inbounds by >>>> construction (in String.indexOf/lastIndexOf): >>>> >>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >>>> String tgtStr, int fromIndex) { >>>> >>>> int rightIndex = srcCount - tgtCount; >>>> if (fromIndex > rightIndex) { >>>> fromIndex = rightIndex; >>>> } >>>> if (fromIndex < 0) { >>>> return -1; >>>> } >>>> >>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>> public static int lastIndexOf(byte[] src, int srcCount, >>>> byte[] tgt, int tgtCount, int >>>> fromIndex) { >>>> int min = tgtCount - 1; >>>> int i = min + fromIndex; >>>> int strLastIndex = tgtCount - 1; >>>> char strLastChar = getChar(tgt, strLastIndex); >>>> >>>> startSearchForLastChar: >>>> while (true) { >>>> while (i >= min && getChar(src, i) != strLastChar) { >>>> >>>> There are 2 places: >>>> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound >>>> >>>> * getChar(src, i); i in [ min; min+fromIndex ] >>>> min = tgtCount - 1 >>>> rightIndex = srcCount - tgtCount >>>> fromIndex <= rightIndex >>>> >>>> 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) >>>> + (srcCount - tgtCount) == srcCount - 1 >>>> >>>> Hence, should be covered by the check on count & value: >>>> public int lastIndexOf(String str, int fromIndex) { >>>> + byte[] value = this.value; >>>> + int count = this.count; >>>> + byte coder = this.coder; >>>> + checkIndex(count, value.length >> coder); >>>> return String.lastIndexOf(value, coder, count, str, >>>> fromIndex); >>>> } >>>> >>> >>> OK, I will go with your version if it's OK with Sherman. >>> >>> dl >>> >>>> Best regards, >>>> Vladimir Ivanov >>>> >>>>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>>>> >>>>>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>>>>> integrate verification logic in 10? >>>>>>>> >>>>>>> >>>>>>> OK, Tobias is suggesting having verification logic only inside the >>>>>>> intrinsics. Are you suggesting removing that as well? >>>>>> >>>>>> Yes and put them back in 10. >>>>>> >>>>>>> I'm OK with removing all the verification, but that won't reduce the >>>>>>> library changes much. I could undo the renaming to >>>>>>> Trusted.getChar, but >>>>>>> we would still have the bounds checks moved into StringUTF16. >>>>>> >>>>>> I suggest to go with a point fix for 9: just add missing range >>>>>> checks. >>>>> >>> > From tobias.hartmann at oracle.com Wed Mar 22 07:26:23 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 22 Mar 2017 08:26:23 +0100 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> Message-ID: Hi, On 22.03.2017 06:09, David Holmes wrote: > I wonder if the reviewers have fully realized the potential impact here? This has exposed a flaw in the way intrinsics are used from core classes. For the record, I'm fine with both the initial fix as well as the simplified version. If we don't add the debug runtime checks in the intrinsics, we should definitely add them with JDK 10 as additional safety net (we should consider other intrinsics and C1 as well). Thanks, Tobias From tobias.hartmann at oracle.com Wed Mar 22 12:31:43 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 22 Mar 2017 13:31:43 +0100 Subject: [8u, 9] RFR(S): 8177095: Range check dependent CastII/ConvI2L is prematurely eliminated Message-ID: Hi, please review the following patch: https://bugs.openjdk.java.net/browse/JDK-8177095 JDK 9: http://cr.openjdk.java.net/~thartmann/8177095/webrev.00/ JDK 8u: http://cr.openjdk.java.net/~thartmann/8177095_8u/webrev.00/ A CastII (or a ConvI2L before the fix for JDK-6675699 [1]) with a narrow type that represents the index of an array access is eliminated because its type range does not intersect with the input range. This happens because the node is pushed upwards through an AddI. However, the control path to the array access is not eliminated leaving the graph in a corrupted state. We either crash during loop optimizations because we use a value from a non-dominating region or we crash in the register allocator because a Phi has a TOP input (and therefore an undefined live range). For more details see changes in TestLoopPeeling.java: Load1 and the corresponding range check are moved out of the loop and both are used after the old loop and the peeled iteration exit. For the peeled iteration, storeIndex is always Integer.MIN_VALUE and for the old loop it is 0. Hence, the merging phi has type int:<=0. Load1 reads the array at index ConvI2L(CastII(AddI(storeIndex, -1))) where the CastII is range check dependent and has type int:>=0. The CastII gets pushed through the AddI and its type is changed to int:>=1 which does not overlap with the input type of storeIndex (int:<=0). The CastII is replaced by TOP causing a cascade of other eliminations. Since the control path through the range check CmpU(AddI(storeIndex, -1)) is not eliminated, the graph is in a corrupted state. We fail once we merge with the result of Load2 because we get data from a non-dominating region. I attempted to fix this issue with JDK-6675699 but missed these cases. The problem is similar to JDK-8154831 [2] and affects the latest JDK 6, 7, 8 and 9. I disabled narrowing of range check dependent CastIIs (either through the CastII(AddI) optimization or through CastIINode::Ideal). Tested with customer provided reproducer, regression test and RBT (running). Thanks, Tobias [1] https://bugs.openjdk.java.net/browse/JDK-6675699 [2] https://bugs.openjdk.java.net/browse/JDK-8154831 From vladimir.x.ivanov at oracle.com Wed Mar 22 15:35:35 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 22 Mar 2017 18:35:35 +0300 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> Message-ID: <65c16119-c9a4-f94a-a7d4-f9e22cc61cb4@oracle.com> >>> So are we convinced that the proposed changes will never lead to a >>> crash due to a missing or incorrect bounds check, due to a racy use of >>> an unsynchronized ASB instance e.g. StringBuilder? >> >> If only we had a static analysis tool that could tell us if the code is >> safe. Because we don't, in my initial changeset, we always take a >> snapshot of the ASB fields by passing those field values to StringUTF16 >> before doing checks on them. And I wrote a test to make sure that those >> StringUTF16 interfaces are catching all the underflows and overflows I >> could imagine, and I added verification code to detect when a check was >> missed. >> >> However, all the reviewers have requested to minimize the amount of >> changes. In Vladimir's version, if there is a missing check somewhere, >> then yes it could lead to a crash. I'd like to point out that asserts and verification code are disabled by default. They are invaluable during problem diagnosis, but don't help at all from defence-in-depth perspective. But I agree that it's easier to reason about and test the initial version of the fix. > I wonder if the reviewers have fully realized the potential impact here? > This has exposed a flaw in the way intrinsics are used from core classes. FTR here are the checks I omitted in the minimized version (modulo separation of indexOf/lastIndexOf for trusted/non-trusted callers): http://cr.openjdk.java.net/~vlivanov/dlong/8158168/redundant_checks/ Other than that, the difference is mainly about undoing refactorings and removing verification logic (asserts + checks in the JVM). There are still unsafe accesses which are considered safe in both versions (see StringUTF16.Trusted usages in the initial version [1]). We used to provide safe wrappers for unsafe intrinsics which makes it much easier to reason about code correctness. I'd like to see compact string code refactored that way and IMO the initial version by Dean is a big step in the right direction. I still prefer to see a point fix in 9 and major refactoring happening in 10, but I'll leave the decision on how to proceed with the fix to core-libs folks. After finishing the exercise minimizing the fix, I'm much more comfortable with the initial fix [1] (though there are changes I consider excessive). Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~dlong/8158168/webrev.0 >>>>> Some clarifications: >>>>> >>>>> ============ >>>>> src/java.base/share/classes/java/lang/String.java: >>>>> >>>>> The bounds check is needed only in String.nonSyncContentEquals when it >>>>> extracts info from AbstractStringBuilder. I don't see how out of >>>>> bounds access can happen in String.contentEquals: >>>>> if (n != length()) { >>>>> return false; >>>>> } >>>>> ... >>>>> for (int i = 0; i < n; i++) { >>>>> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >>>>> >>>> >>>> OK. >>>> >>>>> ============ >>>>> src/java.base/share/classes/java/lang/StringConcatHelper.java: >>>>> >>>>> I think bounds checks in StringConcatHelper.prepend() are skipped >>>>> intentionally, since java.lang.invoke.StringConcatFactory constructs >>>>> method handle chains which already contain bounds checks: array length >>>>> is precomputed based on argument values and all accesses are >>>>> guaranteed to be in bounds. >>>>> >>>> >>>> This is calling the trusted version of getChars() with no bounds >>>> checks. It was a little more obvious when I had the Trusted inner >>>> class. >>>> >>>>> ============ >>>>> src/java.base/share/classes/java/lang/StringUTF16.java: >>>>> >>>>> + static void putChar(byte[] val, int index, int c) { >>>>> + assert index >= 0 && index < length(val) : "Trusted caller >>>>> missed bounds check"; >>>>> >>>>> Unfortunately, asserts can affect inlining decisions (since they >>>>> increase bytecode size). In order to minimize possible performance >>>>> impact, I suggest to remove them from the fix targeting 9. >>>>> >>>> >>>> Sure. >>>> >>>>> ============ >>>>> private static int indexOfSupplementary(byte[] value, int ch, int >>>>> fromIndex, int max) { >>>>> if (Character.isValidCodePoint(ch)) { >>>>> final char hi = Character.highSurrogate(ch); >>>>> final char lo = Character.lowSurrogate(ch); >>>>> + checkBoundsBeginEnd(fromIndex, max, value); >>>>> >>>>> The check is redundant here. fromIndex & max are always inbounds by >>>>> construction: >>>>> >>>>> public static int indexOf(byte[] value, int ch, int fromIndex) { >>>>> int max = value.length >> 1; >>>>> if (fromIndex < 0) { >>>>> fromIndex = 0; >>>>> } else if (fromIndex >= max) { >>>>> // Note: fromIndex might be near -1>>>1. >>>>> return -1; >>>>> } >>>>> ... >>>>> return indexOfSupplementary(value, ch, fromIndex, max); >>>>> >>>> >>>> OK. >>>> >>>>> ============ >>>>> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >>>>> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >>>>> ABS.value & ABS.count. After that, all accesses should be inbounds by >>>>> construction (in String.indexOf/lastIndexOf): >>>>> >>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >>>>> String tgtStr, int fromIndex) { >>>>> >>>>> int rightIndex = srcCount - tgtCount; >>>>> if (fromIndex > rightIndex) { >>>>> fromIndex = rightIndex; >>>>> } >>>>> if (fromIndex < 0) { >>>>> return -1; >>>>> } >>>>> >>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>> public static int lastIndexOf(byte[] src, int srcCount, >>>>> byte[] tgt, int tgtCount, int >>>>> fromIndex) { >>>>> int min = tgtCount - 1; >>>>> int i = min + fromIndex; >>>>> int strLastIndex = tgtCount - 1; >>>>> char strLastChar = getChar(tgt, strLastIndex); >>>>> >>>>> startSearchForLastChar: >>>>> while (true) { >>>>> while (i >= min && getChar(src, i) != strLastChar) { >>>>> >>>>> There are 2 places: >>>>> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound >>>>> >>>>> * getChar(src, i); i in [ min; min+fromIndex ] >>>>> min = tgtCount - 1 >>>>> rightIndex = srcCount - tgtCount >>>>> fromIndex <= rightIndex >>>>> >>>>> 0 <= min + fromIndex <= min + rightIndex == (tgtCount - 1) >>>>> + (srcCount - tgtCount) == srcCount - 1 >>>>> >>>>> Hence, should be covered by the check on count & value: >>>>> public int lastIndexOf(String str, int fromIndex) { >>>>> + byte[] value = this.value; >>>>> + int count = this.count; >>>>> + byte coder = this.coder; >>>>> + checkIndex(count, value.length >> coder); >>>>> return String.lastIndexOf(value, coder, count, str, >>>>> fromIndex); >>>>> } >>>>> >>>> >>>> OK, I will go with your version if it's OK with Sherman. >>>> >>>> dl >>>> >>>>> Best regards, >>>>> Vladimir Ivanov >>>>> >>>>>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>>>>> >>>>>>>>> I have the same concern. Can we fix the immediate problem in 9 and >>>>>>>>> integrate verification logic in 10? >>>>>>>>> >>>>>>>> >>>>>>>> OK, Tobias is suggesting having verification logic only inside the >>>>>>>> intrinsics. Are you suggesting removing that as well? >>>>>>> >>>>>>> Yes and put them back in 10. >>>>>>> >>>>>>>> I'm OK with removing all the verification, but that won't reduce >>>>>>>> the >>>>>>>> library changes much. I could undo the renaming to >>>>>>>> Trusted.getChar, but >>>>>>>> we would still have the bounds checks moved into StringUTF16. >>>>>>> >>>>>>> I suggest to go with a point fix for 9: just add missing range >>>>>>> checks. >>>>>> >>>> >> From vladimir.x.ivanov at oracle.com Wed Mar 22 15:43:54 2017 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 22 Mar 2017 18:43:54 +0300 Subject: [8u, 9] RFR(S): 8177095: Range check dependent CastII/ConvI2L is prematurely eliminated In-Reply-To: References: Message-ID: Looks good. Best regards, Vladimir Ivanov PS: after finishing JDK-8154831 I thought about (but never finished, unfortunately) implementing verification logic for range check dependent cast nodes to ensure they disappear in lockstep with the range check they depend on. It would make diagnosing such problems much easier. On 3/22/17 3:31 PM, Tobias Hartmann wrote: > Hi, > > please review the following patch: > https://bugs.openjdk.java.net/browse/JDK-8177095 > > JDK 9: > http://cr.openjdk.java.net/~thartmann/8177095/webrev.00/ > JDK 8u: > http://cr.openjdk.java.net/~thartmann/8177095_8u/webrev.00/ > > A CastII (or a ConvI2L before the fix for JDK-6675699 [1]) with a narrow type that represents the index of an array access is eliminated because its type range does not intersect with the input range. This happens because the node is pushed upwards through an AddI. However, the control path to the array access is not eliminated leaving the graph in a corrupted state. We either crash during loop optimizations because we use a value from a non-dominating region or we crash in the register allocator because a Phi has a TOP input (and therefore an undefined live range). > > For more details see changes in TestLoopPeeling.java: > Load1 and the corresponding range check are moved out of the loop and both are used after the old loop and the peeled iteration exit. For the peeled iteration, storeIndex is always Integer.MIN_VALUE and for the old loop it is 0. Hence, the merging phi has type int:<=0. Load1 reads the array at index ConvI2L(CastII(AddI(storeIndex, -1))) where the CastII is range check dependent and has type int:>=0. The CastII gets pushed through the AddI and its type is changed to int:>=1 which does not overlap with the input type of storeIndex (int:<=0). The CastII is replaced by TOP causing a cascade of other eliminations. Since the control path through the range check CmpU(AddI(storeIndex, -1)) is not eliminated, the graph is in a corrupted state. We fail once we merge with the result of Load2 because we get data from a non-dominating region. > > I attempted to fix this issue with JDK-6675699 but missed these cases. The problem is similar to JDK-8154831 [2] and affects the latest JDK 6, 7, 8 and 9. > > I disabled narrowing of range check dependent CastIIs (either through the CastII(AddI) optimization or through CastIINode::Ideal). > > Tested with customer provided reproducer, regression test and RBT (running). > > Thanks, > Tobias > > [1] https://bugs.openjdk.java.net/browse/JDK-6675699 > [2] https://bugs.openjdk.java.net/browse/JDK-8154831 > From vladimir.kozlov at oracle.com Wed Mar 22 17:34:27 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 22 Mar 2017 10:34:27 -0700 Subject: [8u, 9] RFR(S): 8177095: Range check dependent CastII/ConvI2L is prematurely eliminated In-Reply-To: References: Message-ID: <98d520a8-8ea4-5011-f8cb-33e623ae9a2d@oracle.com> Hi Tobias, Changes seems fine but I am concern about performance impact. What happens with graph with this change? Is it folded at the end even if we keep CastII? Skipping CastII in ConvI2L was one of optimizations we did to remove unneeded Cast nodes for 6675699 changes. What do you mean "old loop"? May be "Main loop" from split iterations optimization? Thanks, Vladimir On 3/22/17 5:31 AM, Tobias Hartmann wrote: > Hi, > > please review the following patch: > https://bugs.openjdk.java.net/browse/JDK-8177095 > > JDK 9: > http://cr.openjdk.java.net/~thartmann/8177095/webrev.00/ > JDK 8u: > http://cr.openjdk.java.net/~thartmann/8177095_8u/webrev.00/ > > A CastII (or a ConvI2L before the fix for JDK-6675699 [1]) with a narrow type that represents the index of an array access is eliminated because its type range does not intersect with the input range. This happens because the node is pushed upwards through an AddI. However, the control path to the array access is not eliminated leaving the graph in a corrupted state. We either crash during loop optimizations because we use a value from a non-dominating region or we crash in the register allocator because a Phi has a TOP input (and therefore an undefined live range). > > For more details see changes in TestLoopPeeling.java: > Load1 and the corresponding range check are moved out of the loop and both are used after the old loop and the peeled iteration exit. For the peeled iteration, storeIndex is always Integer.MIN_VALUE and for the old loop it is 0. Hence, the merging phi has type int:<=0. Load1 reads the array at index ConvI2L(CastII(AddI(storeIndex, -1))) where the CastII is range check dependent and has type int:>=0. The CastII gets pushed through the AddI and its type is changed to int:>=1 which does not overlap with the input type of storeIndex (int:<=0). The CastII is replaced by TOP causing a cascade of other eliminations. Since the control path through the range check CmpU(AddI(storeIndex, -1)) is not eliminated, the graph is in a corrupted state. We fail once we merge with the result of Load2 because we get data from a non-dominating region. > > I attempted to fix this issue with JDK-6675699 but missed these cases. The problem is similar to JDK-8154831 [2] and affects the latest JDK 6, 7, 8 and 9. > > I disabled narrowing of range check dependent CastIIs (either through the CastII(AddI) optimization or through CastIINode::Ideal). > > Tested with customer provided reproducer, regression test and RBT (running). > > Thanks, > Tobias > > [1] https://bugs.openjdk.java.net/browse/JDK-6675699 > [2] https://bugs.openjdk.java.net/browse/JDK-8154831 > From vladimir.kozlov at oracle.com Wed Mar 22 17:43:51 2017 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 22 Mar 2017 10:43:51 -0700 Subject: RFR(XXXL): 8177046 Update Graal In-Reply-To: References: Message-ID: Looks good. Thank you for doing this update. Vladimir On 3/21/17 2:06 PM, Igor Veresov wrote: > This is Graal refresh in JDK10. It required some changes to jaotc mostly related how Graal options are now handled. It all seems to work - aot, jprt, rbt hs-tier0-comp. There is one failure in rbt which occurs when Graal is used as a JIT. But I think it can be addressed later and fixed in the next refresh (if there are no objections). > > Webrevs: > > http://cr.openjdk.java.net/~iveresov/8177046/webrev-jdk.00/ > http://cr.openjdk.java.net/~iveresov/8177046/webrev-hotspot.00/ > > > Changes between JDK-8166417 and JDK-8177046 : > > commit 532c57329aa3a453ff4d2fefeb6fddc3cc03b8aa > Merge: 7347014 bd02b2e > Author: Thomas W?rthinger > Date: Fri Mar 17 16:50:06 2017 -0700 > > [GR-3285] Fixes to support JDK AOT use cases correctly. > > commit 7347014a9ca6751f9f7c27436bdad8d50e7ea168 > Merge: f06c39e 6d22782 > Author: Doug Simon > Date: Fri Mar 17 16:21:09 2017 -0700 > > [GR-3277] Gate on jdk9-ea+161. > > commit f06c39e247e74ec36d88af1552ee5a19d36a7bb0 > Merge: 099df9f 52727fa > Author: Thomas W?rthinger > Date: Fri Mar 17 15:35:44 2017 -0700 > > [GR-3275] Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. > > commit bd02b2edb414a309e4ba68261c5f936ef0e0a40d > Author: Igor Veresov > Date: Fri Mar 17 12:16:55 2017 -0700 > > Fix a few things to make JDK AOT work agian > > commit 52727fadfae472ac361c8af02e015eed9730d7dd > Author: Thomas W?rthinger > Date: Fri Mar 17 15:43:05 2017 +0100 > > Rewrite recursive algorithm in PropagateDeoptimizeProbabilityPhase to be iterative. > > commit 145bebb7ebceea51c375ed715ad7dd82f002e6d4 > Author: Thomas W?rthinger > Date: Fri Mar 17 15:22:36 2017 +0100 > > Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. > > commit 099df9ff553086d10a4369f692559e7035fc24bf > Merge: 31e5340 5dfcdf0 > Author: Thomas W?rthinger > Date: Fri Mar 17 11:01:30 2017 -0700 > > [GR-3274] Add additional canonicalizations to the multiplication node for the case where one operand is constant. > > commit 6d227828278a32f78defcb78fcc58bdd19b88066 > Author: Doug Simon > Date: Fri Mar 17 18:31:37 2017 +0100 > > gate on jdk9-ea+161 > > commit 5dfcdf0ae1902818cb681da9f2b81b5fedb5e50f > Author: Thomas W?rthinger > Date: Fri Mar 17 16:48:32 2017 +0100 > > Add additional canonicalizations to the multiplication node for the case where one operand is constant. > > commit 31e5340042fc8bb9fb22b5704da7189e3e05e9e8 > Merge: eb57bf9 cc28520 > Author: Doug Simon > Date: Fri Mar 17 07:58:15 2017 -0700 > > [GR-3265] Support jdk9-ea+161. > > commit cc2852014b474b44e4f5cd685885d347c644701f > Author: Doug Simon > Date: Fri Mar 17 01:11:00 2017 +0100 > > support jdk9-ea+161 > > commit eb57bf9a2e3ec66dc82f8ec6ded118f596535632 > Merge: 1f9dd5e 3b24c57 > Author: Andreas Woess > Date: Fri Mar 17 06:06:28 2017 -0700 > > [GR-3256] Fix TraceTruffleAssumptions stack trace output. > > commit 1f9dd5e79298f1a36d1bed99f3d24017052f5f85 > Merge: ef5624c aa243ee > Author: Doug Simon > Date: Fri Mar 17 03:50:27 2017 -0700 > > [GR-3267] JMH intrinsics need to be optional. > > commit aa243ee242d6e6c1fdd8a615407051b5609bcd00 > Author: Doug Simon > Date: Fri Mar 17 10:24:22 2017 +0100 > > JMH intrinsics need to be optional > > commit ef5624c9839fe9258dbc858b759a7821187d4a89 > Merge: 6a44fba f741158 > Author: Thomas W?rthinger > Date: Thu Mar 16 07:39:13 2017 -0700 > > [GR-3149] Fix an issue in the conditional elimination that could lead to pi nodes for phis picking up wrong guards. > > commit f7411584e6bb957a83b47b4591b1e9163160c654 > Author: Thomas W?rthinger > Date: Thu Mar 16 15:06:53 2017 +0100 > > Fix an issue in the new conditional elimination that could lead to pi nodes for phis picking up wrong guards if branches are killed while preparing the info elements. > > commit 3b24c57e9d227d390b1b15773458c98ce27db065 > Author: Andreas Woess > Date: Thu Mar 16 13:48:52 2017 +0100 > > Enable node source positions for Truffle compilations if shouldDebugNonSafepoints() or TruffleEnableInfopoints=true > > commit d214ec43996729def84313aa7316d342e5cc63ce > Author: Andreas Woess > Date: Wed Mar 15 21:39:09 2017 +0100 > > Remove leftover debug code > > commit 829ceef47a7b14fd13e291d5dd1228d7c1990990 > Author: Andreas Woess > Date: Wed Mar 15 18:19:23 2017 +0100 > > Cleanup: no need to subclass CachingPEGraphDecoder > > commit 001322b49be3822638d8a9e1652692dedaa57784 > Author: Andreas Woess > Date: Wed Mar 15 19:17:39 2017 +0100 > > [GR-3256] Fix TraceTruffleAssumptions stack trace output. > > commit 6a44fba8e8004fe12934dc31e4f5dbb8dc6b26b3 > Merge: 2cdb24c 1fd6484 > Author: Doug Simon > Date: Wed Mar 15 17:38:06 2017 -0700 > > [GR-3226] Add ZipPy based OOPSLA14 paper. > > commit 2cdb24c193d7f491dbd2dcbb0ae115bdcdc8c689 > Merge: 1879aca 7afd70a > Author: Doug Simon > Date: Wed Mar 15 05:45:42 2017 -0700 > > [GR-3246] Handle exceptions while opening a Debug scope better. > > commit 7afd70a750ffbe2f2df2885c837f2e5d94609264 > Author: Doug Simon > Date: Wed Mar 15 12:53:25 2017 +0100 > > better reporting of exception when opening a Debug scope > > commit 1879acafd6342623873b2cc69132960abb4e327e > Merge: 2e50f8e e3e8dfe > Author: Thomas W?rthinger > Date: Wed Mar 15 04:17:21 2017 -0700 > > [GR-3245] Improve canonicalizations of NarrowNode and ZeroExtendNode. Add additional canonicalization after fixing reads. > > commit e3e8dfeb54443fcc0f5772f3273cf86b899e3365 > Author: Thomas W?rthinger > Date: Wed Mar 15 11:22:45 2017 +0100 > > Use result bits instead of stamp in ZeroExtendNode. > > commit 1fc9abbc64212df38add4df80bd45bead25451a8 > Author: Thomas W?rthinger > Date: Tue Mar 14 19:20:24 2017 +0100 > > Also clear last location access in fix reads phase. > > commit 9ecb01147f54dd7808dcbf0ee0147427e7f7b04d > Author: Thomas W?rthinger > Date: Tue Mar 14 19:13:12 2017 +0100 > > Make sure short circuit or nodes are not introduced by canonicalization after logic expansion phase was run. > > commit 9aa8fd04caec7458d78b5fb14be771a7464aa9ca > Author: Thomas W?rthinger > Date: Tue Mar 14 16:26:36 2017 +0100 > > Remove memory phis during fix reads phase. > > commit 7ae30083e7e8f8d6ab163e2caf5da731032c125c > Author: Thomas W?rthinger > Date: Tue Mar 14 16:26:09 2017 +0100 > > Run a canonicalizer without GVN after fixing reads and removing pi nodes. > > commit 9f496abc97c020e406f2073d1ff0d8bd4730224a > Author: Thomas W?rthinger > Date: Tue Mar 14 16:25:48 2017 +0100 > > Add ability to disable GVN in canonicalizer. > > commit 409d5d42f9929a4790a6d0ec30c7b8188a61e660 > Author: Thomas W?rthinger > Date: Tue Mar 14 15:51:56 2017 +0100 > > Improved canonicalizations for NarrowNode and ZeroExtendNode. > > commit 2e50f8edb5a3f33f772510b1eb0480a28eac7db2 > Merge: 8ffb5cf cf1dd8f > Author: Thomas W?rthinger > Date: Wed Mar 15 03:11:00 2017 -0700 > > [GR-3244] Load all non simm13 constants for OP3 ops. > > commit cf1dd8ff253c115efba7e6ec5ed9496fa45aad8e > Author: Stefan Anzinger > Date: Wed Mar 15 09:22:01 2017 +0000 > > [GR-3244] Load all non simm13 constants for OP3 ops. > > commit 8ffb5cf6ff82a5bf33f265da780c3e4a322f2127 > Merge: 4182260 92abdc9 > Author: Doug Simon > Date: Tue Mar 14 17:59:03 2017 -0700 > > [GR-3243] Make check for option descriptor existence overridable. > > commit 92abdc9d0a82db0b2679d92ac834e8cd70b8d9ea > Author: Doug Simon > Date: Wed Mar 15 00:20:06 2017 +0100 > > allow option descriptor existence check to be overridden > > commit 418226004e091c7b511c97ee62467c138bd9bf0f > Merge: ff3feb9 c2a2447 > Author: Doug Simon > Date: Tue Mar 14 15:16:04 2017 -0700 > > [GR-3212] [GR-3057] Replace PiNode+NodeIntrinsicStamp with placeholder node. > > commit c2a2447ad86f404b66e2c102e375cfcb00ab34aa > Author: Doug Simon > Date: Mon Mar 13 17:27:45 2017 +0100 > > use placeholders for PiNodes that get their stamp from a snippet replacee > > commit ff3feb9b4d246779f37d551522782c9ef66243dd > Merge: 8d3e056 853af95 > Author: Doug Simon > Date: Tue Mar 14 14:45:33 2017 -0700 > > [GR-3241] JDK9 aware mechanism for options loading must be universally applied. > > commit 853af9549616df9829af52860c8a2ee9bc40150d > Author: Doug Simon > Date: Tue Mar 14 21:56:53 2017 +0100 > > loading options must always be jdk9-modules aware > > commit 8d3e05605e59da9c4d576895c81ae04b4250efe8 > Merge: 2cfd95a 3dac632 > Author: Doug Simon > Date: Tue Mar 14 14:13:36 2017 -0700 > > [GR-3240] Remove static field Stub.stubs. > > commit 1fd64845a4f1dc9b17d75edf045d4e88464d43f6 > Author: Doug Simon > Date: Tue Mar 14 22:11:19 2017 +0100 > > add "Accelerating iterators in optimizing AST interpreters" paper (OOPSLA14) > > commit 3dac632a0a789232cd405a622ef973ed3d2bc816 > Author: Doug Simon > Date: Tue Mar 14 21:04:19 2017 +0100 > > replace Stub.getStubs() with HotSpotForeignCallProvider.getStubs() > > commit 2cfd95a6a5ab2cd0785c67a1fe5264a5c3fdb42d > Merge: 06fbf00 492bf4f > Author: Thomas W?rthinger > Date: Tue Mar 14 12:44:05 2017 -0700 > > [GR-3238] Improve killCFG to reliably delete nodes. > > commit 492bf4f48c3a7e8f5bfd0060b0ca681cbb0ddd5b > Author: Gilles Duboscq > Date: Thu Mar 9 17:42:44 2017 +0100 > > [GR-3195] Fix killCFG leaving 'unsafe' inputs > > Avoid using null for the input of Phi nodes, use Poison instead. > > commit 06fbf000db55cea8c15e0099415010adcb4984b0 > Merge: 21ec724 0da5287 > Author: Thomas W?rthinger > Date: Tue Mar 14 06:53:40 2017 -0700 > > [GR-3227] Simplify and improve address lowering to swap index and base when appropriate. > > commit 0da528791a95721947a41ec5a33e65726ae443b8 > Author: Thomas W?rthinger > Date: Tue Mar 14 14:03:05 2017 +0100 > > Simplify and improve address lowering to swap index and base when appropriate. > > commit 21ec724defa8a0f08bbe5a512f45d0b8ed5146ad > Merge: 7a12664 8fdd855 > Author: Doug Simon > Date: Tue Mar 14 05:47:15 2017 -0700 > > [GR-3222] Try detect missing @Option annotation processor. > > commit 7a1266444ead236c3dbb727b7faf39e3436f6d6c > Merge: e78391d 6d84784 > Author: Thomas W?rthinger > Date: Tue Mar 14 04:26:27 2017 -0700 > > [GR-3225] Recognize implicit null checks as part of trapping null checks phase. > > commit 6d84784cb648102c191a1712e3dbfaad5a69f09e > Author: Thomas W?rthinger > Date: Tue Mar 14 01:44:07 2017 +0100 > > Recognize implicit null checks as part of trapping null checks phase. > > commit 8fdd8558be437b463cee5f04565eff2319530744 > Author: Doug Simon > Date: Mon Mar 13 23:38:55 2017 +0100 > > try detect missing @Option annotation processor dependency > > commit e78391dedad2787f274f28f156279472deb9aa45 > Merge: bd6f7bf 89e208f > Author: Thomas W?rthinger > Date: Mon Mar 13 12:59:01 2017 -0700 > > [GR-3218] Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. > > commit 89e208f171d14306d1d6746e208ccb049e1df4be > Author: Thomas W?rthinger > Date: Mon Mar 13 20:32:02 2017 +0100 > > Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. > > commit bd6f7bffb0020b21a0d7b9628bd21bf03cd9b2bc > Merge: 95ddee1 6f36b03 > Author: Thomas W?rthinger > Date: Mon Mar 13 10:48:35 2017 -0700 > > [GR-3217] Improve code for pointer compression. > > commit 6f36b03649c4012fbb2ed8656db4b01e451eb9fe > Author: Thomas W?rthinger > Date: Mon Mar 13 17:33:02 2017 +0100 > > Introduce mayNullCheckSkipConversion method in ConvertNode interface. Move address lowering after fixed read phase. > > commit 74fe0007e19dced56b07155b3ee5e95c7c0ce67e > Author: Thomas W?rthinger > Date: Mon Mar 13 15:16:07 2017 +0100 > > Add option to avoid barrier on unsafe stores. Rename unsafe store and load nodes to "raw" unsafe store and load nodes. > > commit 4a53d32d315925b766337f030cdaaf52ff0686be > Author: Thomas W?rthinger > Date: Thu Mar 9 14:18:15 2017 +0100 > > Fix write barrier verification phase. > > commit 9f67aa8d206369fba444345e4cc16389af8ebfd1 > Author: Thomas W?rthinger > Date: Wed Mar 8 17:56:31 2017 +0100 > > Adjust compressed null check test to not modify the graph and for the fact that this canonicalization now occurs in the IsNullNode. > > commit 45523aac92e8fcf2f4cb6725a70952ee0caea510 > Author: Thomas W?rthinger > Date: Wed Mar 8 15:32:14 2017 +0100 > > Add skip through lossless convert functionality to IsNullNode. > > commit 5ca64dd073772f43f10173cb7cef400823624dd9 > Author: Thomas W?rthinger > Date: Sun Feb 26 21:28:14 2017 +0100 > > Introduce init location and use this location to decide whether a write is an initialization write or not. > > commit 19ce207634905a612f94a441bd3e4881c9699995 > Author: Thomas W?rthinger > Date: Sun Feb 26 20:27:54 2017 +0100 > > Simplify ReadNode and WriteNode constructors. > > commit 05a3d7d8e53d16ec243d364ef24b6ef492b4cf0f > Author: Thomas W?rthinger > Date: Sun Feb 26 18:28:18 2017 +0100 > > Remove DirectObjectStoreNode and replace usages with UnsafeStoreNode. > > commit 60ba844f0bb94bbc9a0e4bdad2112cbc92fc72b4 > Author: Thomas W?rthinger > Date: Sun Feb 26 17:34:29 2017 +0100 > > Move CompressEncoding from HotSpot-specific to general part. Remove unused alignment field. > > commit 95ddee1ea392e4454b83264e4c0ef728821d0fad > Merge: 64194d0 b560415 > Author: Gilles Duboscq > Date: Mon Mar 13 08:26:22 2017 -0700 > > [GR-2555] Fold `x - 1 |<| x || x == 0`. > > commit b56041582a6bbc19d871c5227b7fd6eff89f320b > Author: Gilles Duboscq > Date: Mon Mar 13 15:03:00 2017 +0100 > > ZeroExtend: avoid problems with empty stamps > > commit 64194d0b9be6e22ef948abaae3300b8051844407 > Merge: 7281bc5 284e39f > Author: Christian Humer > Date: Mon Mar 13 05:59:25 2017 -0700 > > [GR-3182] Do not reuse frame descriptor for OSR root nodes. > > commit 42eb5d00d9abc466c8faa9f4bde5551a0807aa3c > Author: Gilles Duboscq > Date: Mon Feb 27 16:29:39 2017 +0100 > > Add NumUtil.sameSign and IntegerStamp.sameSignBounds > > commit 3dee10a429eef95104c192473a89909ef2d61f5f > Author: Gilles Duboscq > Date: Fri Feb 24 17:45:26 2017 +0100 > > Make sure splitIfAtPhi is not appliest before FSA > > commit 2163d91dac75656609a5b160f69e58db4ac9cbfd > Author: Gilles Duboscq > Date: Fri Feb 24 17:43:19 2017 +0100 > > Add more tests > > commit 1d453dfc3b7df282a842e1cb01d14d52e9d6ba80 > Author: Gilles Duboscq > Date: Fri Feb 24 17:41:18 2017 +0100 > > Canonicalize NormalizeCompare patterns > > commit e196bac444f1e95c018d0909af12d9a049b4be24 > Author: Gilles Duboscq > Date: Tue Mar 7 07:57:42 2017 -0800 > > Canonicalize `a + MIN < b + MIN` to `a |<| b` > > commit 2ef1eb30f194d140bbc762161dc5664c861f1c62 > Author: Gilles Duboscq > Date: Fri Feb 24 18:10:40 2017 +0100 > > Canonicalize x + c < x > > commit 85cc9ffe2a6b6e2d64c2a36a0e2ee9ab0b0a491b > Author: Gilles Duboscq > Date: Fri Feb 24 17:35:33 2017 +0100 > > Canonicalize x + c1 == c2 > > commit 4567b9e3602866ed367a8eea12959d7ba4d84f9a > Author: Gilles Duboscq > Date: Fri Jan 27 18:33:32 2017 +0100 > > [GR-2555] Fold `x - 1 |<| x || x == 0`. > > Added the `y + c |<| y` and `x |<| x + c` patterns for conditional > elimination. > Added `StampInverter`, make `IntegerConvert` implement it and use it in > the new conditional elimination. > This allows it to get a stamp for x when it has one for zeroExtand(x). > > commit 878a6d72927e4ca53f4ed028badde8be24e905a5 > Author: Gilles Duboscq > Date: Tue Feb 14 15:46:17 2017 +0100 > > Move NumUtil to core.common > > Also remove common and merge it into core.common > > commit 7281bc5cc25cb83e4ec7414b4804d33dab44384c > Merge: a0848f5 a8a5023 > Author: Doug Simon > Date: Fri Mar 10 12:42:32 2017 -0800 > > [GR-3196] Remove obsolete ImmutableCode functionality. > > commit a8a50239411881f0f9f7a0fa215d7c38447ffdf1 > Author: Doug Simon > Date: Fri Mar 10 15:42:29 2017 +0100 > > removed obsolete ImmutableCode logic > > commit a0848f59192d1a60d1b8b7842b9afd7a13cd9762 > Merge: 6453e48 7eceda8 > Author: Tom Rodriguez > Date: Fri Mar 10 08:55:24 2017 -0800 > > [GR-3179] Fixed register usage for string indexof assembly. > > commit 6453e489e796f009e1a4bcfec15f47aa393ed1aa > Merge: bd0c1e6 27c119f > Author: Vojin Jovanovic > Date: Fri Mar 10 08:44:20 2017 -0800 > > [GR-3200] Update intellij instructions. > > commit 27c119fa93233a9662800b8ba57b8740e4d1e2b3 > Author: Vojin Jovanovic > Date: Fri Mar 10 16:22:49 2017 +0100 > > [doc] update intellij instructions > > commit 08c8f8ac24c366f70be86a113416dede8597e282 > Author: Doug Simon > Date: Fri Mar 10 12:43:35 2017 +0100 > > options should be taken from graph if possible > > commit bd0c1e6c2c405d2735f52d7459a377ba8ed00354 > Merge: 9dfc7ba ec0bd51 > Author: Doug Simon > Date: Fri Mar 10 01:50:19 2017 -0800 > > [GR-2577] Make it possible to build Graal using only jdk9. > > commit ec0bd511c177a86742a9c9ea1e48b40ecb15817f > Author: Doug Simon > Date: Thu Mar 9 22:54:20 2017 +0100 > > update mx version > > commit 9dfc7baa47e299e224dda6d98963ad4491eda5ac > Merge: 1bc5b55 e4baf69 > Author: Thomas W?rthinger > Date: Fri Mar 10 01:18:37 2017 -0800 > > [GR-3188] Add receiver null check for Truffle load nodes. > > commit 1bc5b55d432067f53b2c3ab2ae3769c773c740db > Merge: 628fd73 ac4d892 > Author: Aleksandar Prokopec > Date: Thu Mar 9 14:30:22 2017 -0800 > > [GR-3186] Add the unfreeze method to Graph. > > commit e4baf69da8e898edfc4aeff245b38503fae9e123 > Author: Thomas W?rthinger > Date: Thu Mar 9 23:11:49 2017 +0100 > > Add receiver null check for Truffle load nodes. > > commit 628fd73bc0eabd520776b6ff70e594b628824779 > Merge: 999da54 653fb60 > Author: Josef Eisl > Date: Thu Mar 9 14:07:54 2017 -0800 > > [GR-3175] Run DaCapo style benchmarks on both nodes in parallel. > > commit 7eceda86f64250769900d6822e2b003cc3f29f50 > Author: Tom Rodriguez > Date: Wed Mar 8 16:33:20 2017 -0800 > > Fixed register usage for string indexof assembly > > commit 653fb601e3dec18a4bee56ca80a662a036f5d982 > Author: Josef Eisl > Date: Thu Mar 9 13:21:39 2017 +0100 > > [ci] increase tmpfs for x32 to 25g > > commit a664309dd7012fb10443354112153ab10d1d395a > Author: Josef Eisl > Date: Thu Mar 9 11:37:26 2017 +0100 > > [ci] use curly braces for environment variables > > commit a37e70600b9bbb0f584aaacbc242a15e31a38cf6 > Author: Josef Eisl > Date: Thu Mar 9 10:54:47 2017 +0100 > > [ci] rename results file environment variables > > commit 15a25de31654dfddb9741ff929107a55198d19f6 > Author: Josef Eisl > Date: Thu Feb 23 16:54:44 2017 +0100 > > [ci] run DaCapo-style benchmarks in parallel on multi-node machines > > commit ac4d892824d40e9eec14d09bdd266ff127b0e8f4 > Author: Aleksandar Prokopec > Date: Thu Mar 9 14:02:05 2017 +0100 > > [feature] Add temporary graph freeze state, and allow unfreezing a graph. > > commit 3df3392bb818125288ab7f5a373e56061e77caaa > Author: Doug Simon > Date: Thu Mar 9 16:41:11 2017 +0100 > > IGV doesn't yet work with JDK 9 > > commit 999da5413324bfb8ed4e80ee432580a18f299928 > Merge: feac9f6 21a99d7 > Author: Thomas W?rthinger > Date: Thu Mar 9 05:09:49 2017 -0800 > > [GR-3072] Fix non-null stamp machinery for other non-object pointers. > > commit 2d278ebaced888850305403c9e231eeb22ce8c09 > Author: Doug Simon > Date: Thu Mar 9 13:36:39 2017 +0100 > > made String.indexOf intrinsic optional > > commit 9eea440de6c54932fa07b4035931013aea20bc76 > Author: Gilles Duboscq > Date: Wed Feb 1 15:34:41 2017 +0100 > > make it possible to build against 9 alone > > Use newer mx > Replace uses of internal ASM in test with external ASM jars > Made some substitutions optional > > commit 284e39fda0613ec9e0f5f4bfcf44e0b95a4b6838 > Author: Lukas Stadler > Date: Thu Mar 9 12:02:55 2017 +0100 > > fix warning problem > > commit 5d5de01bec53de85de0142846db01f4cdea24a35 > Author: Lukas Stadler > Date: Thu Mar 9 11:53:04 2017 +0100 > > do not reuse frame descriptor for OSR root nodes > > commit feac9f656ade524ae81808ee81f47cb286f6653e > Merge: 3cead4d 1ed06ff > Author: Thomas W?rthinger > Date: Thu Mar 9 04:00:21 2017 -0800 > > [GR-3077] The isSingleValueUser method returns wrong answer for guards. > > commit 3cead4d7405b6d55d1a7e6162c1295c987d5197d > Merge: e9098f7 623d6f4 > Author: Thomas W?rthinger > Date: Thu Mar 9 03:20:41 2017 -0800 > > [GR-3184] Improve out of loop schedule to take frequency of latest block and block before the loop header into account. > > commit e9098f79a7c052ec6efe024cf1a3d76abf198301 > Merge: 4edf987 d3c879f > Author: Josef Eisl > Date: Thu Mar 9 03:18:16 2017 -0800 > > [GR-3180] Move dump-on-error flags to gate command. > > commit 4edf987dc522a6147117a504c328dec3aca3fd52 > Merge: 78521e4 681750b > Author: Stefan Anzinger > Date: Thu Mar 9 03:17:11 2017 -0800 > > [GR-2191] Extend inliner to start with a fixed list of invocations. > > commit 78521e45d34bac7ab4beb745c8ab9ec555d64d5a > Merge: 2f7198e 9df9b45 > Author: Lukas Stadler > Date: Thu Mar 9 02:17:46 2017 -0800 > > [GR-3115] Inline methods with substitutions during partial evaluation. > > commit d3c879f84babaa6daa6a6d10c9d65c5bd4a86d33 > Author: Josef Eisl > Date: Thu Mar 9 10:59:02 2017 +0100 > > [ci] add DumpOnError and PrintGraphFile flags to the gate command > > commit 3bc433871313065fc8e3238e6359e6759baf6ecd > Author: Josef Eisl > Date: Thu Mar 9 10:56:37 2017 +0100 > > Revert "[feature] Capture bgv files on error." > > This reverts commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39. > > commit 2f7198e7f388e0d2f703a8de23c13880358c000f > Merge: fde4a7c f61e0db > Author: Codrut Stancu > Date: Wed Mar 8 15:05:04 2017 -0800 > > [GR-3157] Trace constant roots. > > commit 623d6f44695a5670b1ee04d58f75b7894a763c3e > Author: Thomas W?rthinger > Date: Wed Mar 8 21:56:49 2017 +0100 > > Always move out of loops when value proxies are in the graph. > > commit 38468d9cf613d4f59a3f5706535b44f8b4f5993c > Author: Thomas W?rthinger > Date: Wed Mar 8 17:55:56 2017 +0100 > > Modify memory schedule test to include loop frequencies. > > commit f5353a213553b16e07a8ba4a5a54aba6e050ce5e > Author: Thomas W?rthinger > Date: Wed Mar 8 17:34:07 2017 +0100 > > Improve out of loop schedule to take frequency of latest block and block before the loop header into account. > > commit f61e0db76eb16726ffd2179ae2c2ee44cc075c0e > Author: Codrut Stancu > Date: Fri Mar 3 19:51:46 2017 -0800 > > Trace constant roots WIP. > > commit fde4a7c26c2d8d5323c51bc56e4bdc3392e73035 > Merge: 8b69e82 e85077e > Author: Josef Eisl > Date: Wed Mar 8 10:06:13 2017 -0800 > > [GR-3039] Remove usage of AbstractBlockEndOp. > > commit e85077e645e4556c5256a545f22f9d99038ac38d > Author: Josef Eisl > Date: Fri Feb 24 22:09:18 2017 +0100 > > [fix] TraceRA: remove AbstractBlockEndOp > > commit 85f497f35b6bd544728f1057ad577a76add79e2a > Author: Josef Eisl > Date: Tue Feb 28 17:43:35 2017 +0100 > > [refactor] move outgoingValues to JumpOp (needed for phis only) > > commit 69af182ef55df980a8637763224a09ed40809eab > Author: Josef Eisl > Date: Tue Feb 28 17:50:37 2017 +0100 > > [fix] remove outgoing from BlockEndOp > > commit 19a7d71645326678af072f00faed7bcc6175cf1b > Author: Josef Eisl > Date: Wed Mar 8 09:49:11 2017 +0100 > > [fix] Remove addOutgoingValues ad forEachOutgoingValue from BlockEndOp > > commit 681750bf03f5f9bc9c63dd8d6d8d537ae1681ea3 > Author: Stefan Anzinger > Date: Fri Feb 24 13:26:42 2017 +0000 > > [feature] Extend inliner to start with a fixed list of invocations. > > commit 8b69e82739f0f8696b7e61cb2d0d10fa338d68a6 > Merge: 6e73e85 d9c4c19 > Author: Aleksandar Prokopec > Date: Wed Mar 8 04:39:09 2017 -0800 > > [GR-3160] Always capture bgv files when Graal builds fail. > > commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39 > Author: Aleksandar Prokopec > Date: Wed Mar 8 11:15:56 2017 +0100 > > [feature] Capture bgv files on error. > > commit 6e73e855621572d2df86d9aa0aae9c7eab158b2d > Merge: abf7690 3de73d2 > Author: Roland Schatz > Date: Wed Mar 8 03:12:02 2017 -0800 > > [GR-3161] Update truffle import. > > commit 3de73d21cc5e946f80366c3b330737ea967b94ff > Author: Roland Schatz > Date: Wed Mar 8 11:30:44 2017 +0100 > > Update truffle import. > > commit abf76900647664115b38cc46e4fcfd0a76c9f94e > Merge: b3b9eb7 1e2e897 > Author: Thomas W?rthinger > Date: Wed Mar 8 01:28:39 2017 -0800 > > [GR-3080] Fix issues with pi rewiring and picking up wrong conditions in the conditional elimination. > > commit 1e2e89737fa43878186d94ae36cb5aacdb7dc7d9 > Author: Thomas W?rthinger > Date: Tue Mar 7 22:38:26 2017 +0100 > > Add documentation on the methods that pick up stamps and change getSafeStamp for the primary value. > > commit a9d7655bbc623e730291b95dc95b35a1376da90c > Author: Thomas W?rthinger > Date: Tue Mar 7 21:23:39 2017 +0100 > > Adding back AndNode second level structural conditional elimination. > > commit 42fe25cbfa75fd055cdc548bab626e6868d89560 > Author: Thomas W?rthinger > Date: Tue Mar 7 16:12:29 2017 +0100 > > Only look up info elements in own pi chain. > > commit 6f310e81d7733b91394fae785545828637aaf5ed > Author: Thomas W?rthinger > Date: Mon Mar 6 20:58:02 2017 +0100 > > Make getSafeStamp more aggressive. > > commit 875e510f8197bbe15de0f3b0af4707c76007f907 > Author: Thomas W?rthinger > Date: Mon Mar 6 19:46:50 2017 +0100 > > Do not rewire pis in new conditional elimination. Use safe stamps on both sides of binary operations. > > commit b3b9eb76f239a1d01cb2d2329c3c8d964c95f288 > Merge: 553d83c b7fb999 > Author: Thomas W?rthinger > Date: Wed Mar 8 00:34:51 2017 -0800 > > [GR-3159] Make FixReadsPhase extensible to allow changing scheduling strategy. > > commit b7fb9991b3be11483e8318c2409eacca80535f92 > Author: Thomas W?rthinger > Date: Tue Mar 7 21:58:09 2017 +0100 > > Make FixReadsPhase extensible to allow changing scheduling strategy. > > commit 553d83c86231497effd130c5bd4e7ba92a04f37f > Merge: 950f4d0 d11b37d > Author: Aleksandar Prokopec > Date: Tue Mar 7 07:31:02 2017 -0800 > > [GR-3143] Do profiling on @TruffleBoundary and not @TruffleCallBoundary. > > commit d11b37df3b28ab01cb294614f1b01ab61f170f88 > Author: Aleksandar Prokopec > Date: Tue Mar 7 12:34:07 2017 +0100 > > [fix] Instrument TruffleBoundary calls instead of TruffleCallBoundary calls. > > commit 950f4d030178eef043fb2ee2b19c31612790e774 > Merge: 82d2de2 5122025 > Author: Josef Eisl > Date: Tue Mar 7 05:58:25 2017 -0800 > > [GR-3039] TraceRA: no longer store global liveness information in LIR. > > commit 512202516f20a4886f259eac8b24260bd55421ed > Author: Josef Eisl > Date: Wed Mar 1 15:01:46 2017 +0100 > > [refactor] TraceRA[GLI]: rename addIncoming/addOutgoing to setIncoming/setOutgoing > > commit d73a39e114c7c8903ef195e8cc62f37cacea1052 > Author: Josef Eisl > Date: Wed Mar 1 13:23:31 2017 +0100 > > [refactor] TraceRA[BU]: inline PhiVisitor > > commit 4367403e3926209294ee809763f6025b092ef073 > Author: Josef Eisl > Date: Sat Feb 25 15:16:32 2017 +0100 > > [feature] TraceRA[LS]: only materialize the locations array if there is an inter-trace edge > > commit 4e92fde8266aeb98b24ce53d13c4c2a16447a32e > Author: Josef Eisl > Date: Tue Feb 28 11:26:36 2017 +0100 > > [fix] TraceRA[LS]: do not insert spill moves at block begin > > commit 3047f501f54a0a7b6af351a78386496a77726677 > Author: Josef Eisl > Date: Sat Feb 25 14:09:09 2017 +0100 > > [feature] TraceRA[LS]: set inter-trace hints only if there is none > > commit 2beb022cc6fd0f90d338ffb8af299e6874eabaeb > Author: Josef Eisl > Date: Sat Feb 25 14:02:44 2017 +0100 > > [fix] TraceRA[LS]: set hints for phis again > > commit da6bbc89aa9edfa40a815f5923b3de65b699ddda > Author: Josef Eisl > Date: Fri Feb 24 23:32:38 2017 +0100 > > [refactor] TraceRA: remove remaining SSI references > > commit 376c4318fd2d26d4a7c6db015c3d7f99669ba7ac > Author: Josef Eisl > Date: Fri Feb 24 23:12:56 2017 +0100 > > [refactor] TraceRA: rename SSIConstructionPhase to GlobalLivenessAnalysisPhase > > commit 5a80c97c9307808a5f7be393dc87b7904cf52cc1 > Author: Josef Eisl > Date: Fri Feb 24 22:59:25 2017 +0100 > > [refactor] TraceRA: inline FastSSIBuilder > > commit c610210904138d997566ef71250f688a1cbcf429 > Author: Josef Eisl > Date: Fri Feb 24 22:49:29 2017 +0100 > > [refactor] TraceRA: remove SSIBuilderBase > > commit d243ee9785788cd8b2494253fb152496b2cad416 > Author: Josef Eisl > Date: Fri Feb 24 22:38:54 2017 +0100 > > [refactor] TraceRA: remove old SSIBuilder > > commit 5ad64f66d489e65b896fb32407231d9b25640924 > Author: Josef Eisl > Date: Fri Feb 24 21:43:48 2017 +0100 > > [refactor] TraceRA: remove SSIUtil > > commit adbec4d62dbdc279e86a8143f3b8ac5026c36743 > Author: Josef Eisl > Date: Tue Feb 28 17:50:09 2017 +0100 > > [fix] TraceRA: no longer use BlockEndOp > > commit 05b04309d260619f46c01816d6085f7a171344e6 > Author: Josef Eisl > Date: Fri Feb 24 18:17:02 2017 +0100 > > [fix] TraceRA: remove obsolete verification code > > commit ff40a6950ec55e9a122ad09a37feb09a3f0347c2 > Author: Josef Eisl > Date: Fri Feb 24 18:11:00 2017 +0100 > > [fix] TraceRA: reenable inter-trace hints > > commit 490a30c2bdecbbf4008622979c5e1001a4525bcd > Author: Josef Eisl > Date: Wed Feb 22 13:41:28 2017 +0100 > > [doc] TraceRA[BU]: fix javadoc > > commit 84e0436c5373100b74372e225a1c5698b6095cac > Author: Josef Eisl > Date: Fri Feb 24 17:31:47 2017 +0100 > > [feature] TraceRA: remove indirection for getBlockIn and getBlockOut in GlobalLivenessInfo > > commit dcf20531d5594bffd02f6dbbdeba804106c68657 > Author: Josef Eisl > Date: Fri Feb 24 17:08:23 2017 +0100 > > [feature] TraceRA: do not initialize live vars with empty lists > > commit 9f21a8cddef25b4c02d6e710cd90201f85b4cbdc > Author: Josef Eisl > Date: Fri Feb 24 15:24:29 2017 +0100 > > [feature] TraceRA: support GlobalLivenessInfo in CFGPrinter > > commit f9f749f707be597af432e59b8aa701f817b4a4f9 > Author: Josef Eisl > Date: Fri Feb 24 15:26:34 2017 +0100 > > [feature] TraceRA: do no longer store global liveness info in LIR > > commit 91947056239d8f3c0dcf7e2bf91c532e91bbd6a6 > Author: Josef Eisl > Date: Fri Feb 24 15:27:45 2017 +0100 > > [fix] Improve assertion message in RedundantMoveElimination > > commit 82d2de215cbec3582663556d92faaa2f4483fe94 > Merge: ef0b935 736c34a > Author: Doug Simon > Date: Tue Mar 7 03:17:57 2017 -0800 > > [GR-2865] Print absolute IGV dump paths. > > commit 1ed06ff10c3b155131a81fbff31abb1aa4fd6779 > Author: Tom Rodriguez > Date: Tue Feb 28 14:07:34 2017 -0800 > > isSingleValueUser returns wrong answer for guards > > commit 9df9b455e1a62101055b5267c2711ce5e8b6e0fc > Author: Christian Wimmer > Date: Mon Mar 6 15:17:08 2017 -0800 > > Partial evaluation tests for String.hashCode > > commit ea7a1ace84c5f20498b3c66642e0c828e2edd385 > Author: Christian Wimmer > Date: Mon Mar 6 14:01:22 2017 -0800 > > Inline methods with substitutions during partial evaluation > > commit 736c34a602a67275222f69beecd7b56ec37f4844 > Author: Stefan Anzinger > Date: Mon Mar 6 18:16:13 2017 +0000 > > [GR-2865] Print absolute IGV dump paths. > > commit ef0b935e346c7708cf871ac0ec07d88fbd30921b > Merge: 485dc46 490067c > Author: Doug Simon > Date: Mon Mar 6 03:31:11 2017 -0800 > > [GR-3048] Re-enable gating on JDK 9 snapshots. > > commit 490067c9cab133f2ee472f787cb6dd28df2a9cfb > Author: Doug Simon > Date: Sun Mar 5 21:01:47 2017 +0100 > > include app class loader when searching for services in modules that extend Graal > > commit f9ec74f473ffeba34506d416d85838d2618f21f7 > Author: Doug Simon > Date: Sun Mar 5 20:31:28 2017 +0100 > > added utility for concatenating iterables > > commit 5c6c4078ced8ce32a9d3f95d4458e9bc2aec68e7 > Author: Doug Simon > Date: Wed Mar 1 16:04:41 2017 +0100 > > re-enable JDK 9 snapshot related builds > > commit 155a9821cda95f01d87b47f4b3e4b625f76b95b5 > Author: Doug Simon > Date: Sun Feb 26 15:03:57 2017 +0100 > > fall back to app class loader for LayoutFactory provider on JDK 9 > > commit ebd6ffc196f496fa12d66083756bba7c119c09e8 > Author: Doug Simon > Date: Sun Feb 26 22:44:57 2017 +0100 > > adapt to JDK-8174879 > > commit 485dc462a0776cabadb5c8ac20932383b7465459 > Merge: 05e6896 a2d19fb > Author: Thomas W?rthinger > Date: Fri Mar 3 13:22:15 2017 -0800 > > [GR-3068] [GR-3074] Try global value numbering after canonicalization. > > commit a2d19fbe720ad3e8ef35e1d853ee1f9503984472 > Author: Gilles Duboscq > Date: Fri Mar 3 19:24:16 2017 +0100 > > [fix] Try global value numbering after canonicalization. > > commit 05e6896b52143c50817a3ba62f3573711def8f96 > Merge: d483351 e1fe589 > Author: Thomas W?rthinger > Date: Fri Mar 3 10:23:58 2017 -0800 > > [GR-3107] Compute better stamps for values at merges by meeting the stamps of values at the end of the incoming branches. > > commit d483351be40e8c047eda7d79efd20021f78ee088 > Merge: fd4b395 e7351d8 > Author: Lukas Stadler > Date: Fri Mar 3 08:50:41 2017 -0800 > > [GR-3106] Stop processing canonicalized nodes at VirtualObjectNodes. > > commit e1fe589fdddf6a9927c480fc4ea5701d15ef125d > Author: Thomas W?rthinger > Date: Fri Mar 3 15:17:13 2017 +0100 > > Clean up and adding documentation. > > commit e7351d87bb0f18b5c4a0f0329a68c6b5325d1561 > Author: Lukas Stadler > Date: Fri Mar 3 16:24:51 2017 +0100 > > stop processing canonicalized nodes at VirtualObjectNodes > > commit 1567b6c23626864f89a512cc2c448bc423b12da6 > Author: Thomas W?rthinger > Date: Thu Mar 2 14:41:25 2017 +0100 > > Allow fixed read phase to be configurable with boolean whether inputs should be replaced with constants. Make sure canDeoptimize in SafeDivRemNode cannot change after removing PiNodes. > > commit 47fed0986421f0938f8379ba151529c0f8991039 > Author: Thomas W?rthinger > Date: Sun Feb 26 00:17:04 2017 +0100 > > Be more conservative when inserting pis to improve phis in order to prevent update cycles. > > commit 952ccb4f04c9535a964d3af990b4279527c32044 > Author: Thomas W?rthinger > Date: Sat Feb 25 23:32:59 2017 +0100 > > Introduce pi nodes in conditional elimination if phis can obtain a better stamp. > > commit 337a710bdc077322f05028c7e4dd7678a590581f > Author: Thomas W?rthinger > Date: Sat Feb 25 21:28:05 2017 +0100 > > Try to also improve phi stamps at merge points. > > commit 5b6b1c2815e2d8b4c0216f4c37e609836174bf4f > Author: Thomas W?rthinger > Date: Sat Feb 25 20:46:03 2017 +0100 > > Calculate union stamps at merge points. > > commit 6f22827967f1c7adecee26ba9d67856380f4189e > Author: Thomas W?rthinger > Date: Sat Feb 25 18:39:07 2017 +0100 > > Make sure constants with potentially wrong kind are not propagated by word cast. > > commit 1fca899db56f37100dc6c50bb1cd7b333b147dae > Author: Thomas W?rthinger > Date: Sat Feb 25 15:48:02 2017 +0100 > > Put constant input replacement behind flag. > > commit 11fd15f04cfd2989527a157f9a2f3069b4499d07 > Author: Thomas W?rthinger > Date: Sat Feb 25 15:35:42 2017 +0100 > > Add new test case for double compare against 0.0 and fix FloatStamp#asConstant to be more conservative due to 0.0 and -0.0 cases. > > commit 7315323b298c0b3cb54f4dc47bd538ce9717acd3 > Author: Thomas W?rthinger > Date: Sat Feb 25 14:14:08 2017 +0100 > > Replace inputs with constants when stamp is constant in raw conditional elimination. > > commit 8654aff9d4abc1b9be85c66f783c5ae52d07c2fa > Author: Thomas W?rthinger > Date: Sat Feb 25 13:50:47 2017 +0100 > > Handle conditional nodes in raw conditional elimination. > > commit fd4b395934002dceb55750d72de754faf2b3d271 > Merge: eed04a6 d3e2667 > Author: Gilles Duboscq > Date: Fri Mar 3 05:36:37 2017 -0800 > > [GR-3074] Add unused `GuardNode` to loop fragment. > > commit d3e2667d06114c24d514f2ea0313ebbf7e9aa713 > Author: Gilles Duboscq > Date: Fri Mar 3 14:10:48 2017 +0100 > > [GR-3074] Add unused `GuardNode` to loop fragement > > This will help answer questions about induction variables. > However it's not correct enough to make loop transformations: it might > say some nodes are in the loop even though they can only be scheduled > below the loop. > > commit eed04a6891a97fb9761326bbeacdfeee94c58684 > Merge: 75791e5 e271f7e > Author: Gilles Duboscq > Date: Fri Mar 3 05:09:10 2017 -0800 > > [GR-3095] Keep workdir if dacapo benchmark fails. > > commit e271f7e8fd6383bda15ede51f176a9405128cac2 > Author: Gilles Duboscq > Date: Wed Mar 1 15:34:25 2017 +0100 > > [GR-3095] Keep workdir if dacapo benchmark fails > > This makes it easier to investigate the problem > > commit 75791e585e65ef34aff08aa0e0b2c3aad15a7bea > Merge: 6293a8e aeff877 > Author: Christian Wimmer > Date: Thu Mar 2 16:16:35 2017 -0800 > > [GR-2032] Improve handling of NodeSourcePosition in Truffle. > > commit aeff877454c86a9bcba8d710b645cf01a4034510 > Author: Christian Wimmer > Date: Tue Feb 28 16:53:29 2017 -0800 > > Do not store Truffle options in static final field > > commit 51fb6c3aafbedef8aab3920e4b119426a0a4c590 > Author: Christian Wimmer > Date: Tue Feb 28 13:10:40 2017 -0800 > > Propagate NodeSourcePosition in more phases > > commit 3fc9d98f75b979433d29bb463a5102832500795d > Author: Christian Wimmer > Date: Tue Feb 28 13:09:53 2017 -0800 > > Allow customization of CompilationResult > > commit c597eef0d9c16797f748e6a9bf0549f8d31b3fd5 > Author: Christian Wimmer > Date: Tue Feb 28 13:09:30 2017 -0800 > > Allow to set debugId > > commit 6293a8e889d11b0d75156041221cc0e9bb169093 > Merge: efe0365 999c554 > Author: Christian Haeubl > Date: Thu Mar 2 02:28:58 2017 -0800 > > [GR-3065] Reduce encoded graph footprint. > > commit efe03652d6408cb9f854f87a539ffa890a00f691 > Merge: d142e7c bc959a3 > Author: Christian Haeubl > Date: Wed Mar 1 04:51:11 2017 -0800 > > [GR-3054] Performance- and footprint-related optimizations for the graph decoder. > > commit 999c55476888eba67716d59461bce3898a18d46b > Author: Christian Haeubl > Date: Tue Feb 28 10:40:58 2017 +0100 > > Reduce encoded graph footprint. > > commit d142e7cca297ad1dcacfb78e85ebd07384c606f7 > Merge: 13902d9 29500eb > Author: Boris Spasojevic > Date: Tue Feb 28 22:24:26 2017 -0800 > > [GR-2148] Don't invalidate targets if a call to interpreter is made and the target is still valid. > > commit 13902d94221889f2ecfceed1c103fec3189798fd > Merge: c616d03 1bb1135 > Author: Tom Rodriguez > Date: Tue Feb 28 13:59:15 2017 -0800 > > [GR-2955] Casts for MethodHandle arguments must be properly guarded. > > commit bc959a328ad099e7e0740049d9ab2251e9e09adc > Author: Christian Haeubl > Date: Mon Feb 27 13:25:07 2017 +0100 > > Minor cleanups. > > commit 094143a255235b914fd58319ab59fa4508dcb61e > Author: Christian Haeubl > Date: Mon Feb 27 13:06:15 2017 +0100 > > Place inputs before successors in the encoded graph. > > commit 15c6ded2fb529f3e5707e15d992ef097776ba84f > Author: Christian Haeubl > Date: Mon Feb 27 13:03:52 2017 +0100 > > Replace data structures to increase partial-evaluation performance while decreasing memory footprint. > > commit 0970ddd20594fb4fd28dec6cfde622ac1ead99ba > Author: Christian Haeubl > Date: Mon Feb 27 11:34:03 2017 +0100 > > Minor performance-related changes. > > commit 1bb1135a7c1c18723005017bb62f41c42145c31d > Author: Tom Rodriguez > Date: Fri Feb 24 11:27:34 2017 -0800 > > Casts for MethodHandle arguments must be properly guarded > > commit c616d03c0fa3315acb3a9db5b2a4fcb7b54baa4f > Merge: a36e6c9 b71b9ab > Author: Boris Spasojevic > Date: Tue Feb 28 04:36:08 2017 -0800 > > [GR-3040] Per thread map passed to TraceCompilationListener. > > commit a36e6c94a62bc55f9d5bb8aebbd21862bb257f19 > Merge: 2b5e28e 7ba0daa > Author: Christian Humer > Date: Tue Feb 28 04:14:05 2017 -0800 > > [GR-3056] More deterministic PerformanceTruffleInliningTest. > > commit 7ba0daa31a951806ce0c7a186355f9ae4d530409 > Author: Boris Spasojevic > Date: Tue Feb 28 10:44:20 2017 +0100 > > Formatting. > > commit 04c51474a9729ae5fd22c0be1fd17130960a1a75 > Author: Boris Spasojevic > Date: Tue Feb 28 10:31:09 2017 +0100 > > Formatting. > > commit 303e8784d6d338d6c203470593ed2192a219d75f > Author: Boris Spasojevic > Date: Tue Feb 28 10:12:26 2017 +0100 > > Run tests 10 times and use minimum duration to eliminate noise. > > commit 21a99d7cbab78f2d404a8e4e32a65e987de4e510 > Author: Tom Rodriguez > Date: Mon Feb 27 11:02:04 2017 -0800 > > Fix non-null stamp machinery for other non-object pointers > > commit 2b5e28e6ef4d66b1a08a81f6209d6c2d466e5940 > Merge: 7b1a5b4 6fd1d1a > Author: Christian Wimmer > Date: Mon Feb 27 10:52:06 2017 -0800 > > [GR-3025] Add more hooks for subclasses to influence synthetic start / unwind code. > > commit 6fd1d1adb449a2d4c342086aa1b8435745454821 > Author: Christian Wimmer > Date: Thu Feb 23 16:43:59 2017 -0800 > > Add more hooks for subclasses to influence synthetic start / unwind code > > commit 7b1a5b4a0c934ab8e142fbbafa548ecc1c81e15c > Merge: 519eba1 7d06bef > Author: Christian Humer > Date: Mon Feb 27 08:46:33 2017 -0800 > > [GR-2688] Use new copy uninitialized from Truffle. > > commit 7d06bef1cc636cf13129e20a44d8b198711998f4 > Author: Christian Humer > Date: Fri Feb 24 16:33:40 2017 +0100 > > Update Truffle version. > > commit 94cda073783b45bd9b500339adffbb282984d440 > Author: Christian Humer > Date: Tue Feb 21 12:25:33 2017 +0100 > > Simplify clone uninitialized support. > > commit d21c7ac9c24f568a1500b3aaed30845035ff1885 > Author: Christian Humer > Date: Tue Feb 21 12:25:15 2017 +0100 > > Fix typo in TVMCI. > > commit 7d9581a3f0a82ff7d5e9a9eb03642d1eb12b0dc2 > Author: Christian Humer > Date: Wed Feb 15 14:15:30 2017 +0100 > > Use TMVCI to access isCloneUnitializedSupported and cloneUnitialized > . > > commit 596758d9acfd630414eeeea9dbb631a4d095c9fc > Author: Christian Humer > Date: Wed Feb 8 21:24:34 2017 +0100 > > Use new copy uninitialized from Truffle. > > commit b71b9ab7bc1aec3b50570bdde3547c720963c6c2 > Author: Boris Spasojevic > Date: Mon Feb 27 14:42:15 2017 +0100 > > Formatting. > > commit f454ea3e55695b360e2a5973c9cef22c9932d92a > Author: Boris Spasojevic > Date: Mon Feb 27 14:24:45 2017 +0100 > > Removing unused member map from TraceCompilationListener. > > commit 519eba1c375461b221d3cc22fa5a37cd379f079a > Merge: 6ea8f00 ba001b4 > Author: Lukas Stadler > Date: Mon Feb 27 05:24:09 2017 -0800 > > [GR-2727] Remove faulty precondition check in PEA for virtual object compatibility. > > commit 6ea8f00f39f5070da80e92fa278725d5cfc0a10a > Merge: 7c02f8d 14dc595 > Author: Thomas W?rthinger > Date: Mon Feb 27 05:21:17 2017 -0800 > > [GR-3049] Convert Math.*Exact operations to non-exact operations. > > commit bc9c311f02a6bbd2e446347d1849d07d696bf24f > Author: Boris Spasojevic > Date: Mon Feb 27 14:17:42 2017 +0100 > > Avoid problems stemming from a map shared among threads by passing a map to the listener per thread. > > commit ba001b4c2042ea668dc8b41445242f59b4567329 > Author: Lukas Stadler > Date: Mon Feb 27 13:55:23 2017 +0100 > > PEA: remove faulty precondition check for virtual object compatibility > > commit 14dc5950a9658b2ef5452a5e1b54b722adba5336 > Author: Christian Haeubl > Date: Wed Feb 22 17:16:52 2017 +0100 > > Variable name cleanup. > > commit cf9fb5af86173824049212b4ecdd1821a088fb39 > Author: Christian Haeubl > Date: Fri Feb 17 09:27:08 2017 +0100 > > Add exact math canonicalizations/simplifications. > > commit 342eccb0cf6e604c39f529a9cfe8ab8ef7781ca1 > Author: Thomas W?rthinger > Date: Sun Nov 6 19:22:01 2016 +0100 > > Canonicalize exact add to normal add if overflow can never happen based on the operand stamps. > > commit 7c02f8de6c98d8fdace6b399fe304ff3b9e4289e > Merge: 72806d4 d278c21 > Author: Boris Spasojevic > Date: Sun Feb 26 04:50:02 2017 -0800 > > [GR-2632] [GR-1624] Truffle inlining performance improvements and tests. > > commit d278c21a7d95634a864fe26accccbaf9e652dfe1 > Merge: 005fec5 72806d4 > Author: Boris Spasojevic > Date: Sun Feb 26 11:34:37 2017 +0100 > > Merge branch 'master' into tests/gr-2632 > > commit 72806d4c6606f754eafc0ec441980b04834e0ae1 > Merge: f54ad5d c6f6374 > Author: Thomas W?rthinger > Date: Sat Feb 25 03:57:24 2017 -0800 > > [GR-3046] New conditional elimination after fixing reads. > > commit c6f63742edcf4349de0b273b1c59beeef7356a19 > Author: Thomas W?rthinger > Date: Sat Feb 25 01:04:15 2017 +0100 > > Correctly handle default successor when calculating switch node succeeding stamps. > > commit 5430c2ceba5e65db0530bb342cd2edeb136681db > Author: Thomas W?rthinger > Date: Fri Feb 24 23:34:26 2017 +0100 > > Remove redundant conditional elimination phase. > > commit b42e007bd1083f2e1c817b503e50ff77b34a95a9 > Author: Thomas W?rthinger > Date: Fri Feb 24 22:08:57 2017 +0100 > > Fix arithmetic stamp improveWith implementation to take stamp compatibility into account. > > commit b88a1b62f3af258d230ebee17d7aa37d83454b13 > Author: Thomas W?rthinger > Date: Fri Feb 24 22:03:31 2017 +0100 > > Replace nodes with constant stamps with constants in raw conditional elimination. > > commit 6d8e4f6a468fa70d41d5f545fb815cd0e2e2daf8 > Author: Thomas W?rthinger > Date: Fri Feb 24 21:42:05 2017 +0100 > > Add stamp parameters to binary logic node succeeding stamp method. > > commit 1d0cddeb2f4ff7316b92cd96712892215ae3f3a6 > Author: Thomas W?rthinger > Date: Fri Feb 24 20:29:08 2017 +0100 > > Fixed an issue in the getSuperclass snippet that could lead to an unsafe memory read. > > commit 81ef1cb31197ffdc58ca8c9fd709dcc491a62237 > Author: Thomas W?rthinger > Date: Fri Feb 24 19:45:45 2017 +0100 > > Add flag to stress test scheduling reads early. > > commit f54ad5d72a2d616e27b89dba6f15f676fe9fc48f > Merge: 7d1ad12 3efa7a0 > Author: Aleksandar Prokopec > Date: Fri Feb 24 10:39:27 2017 -0800 > > [GR-3042] Correctly repair the number of measurements when a benchmark fails. > > commit 8b286f4b41c65cdaed10f9fee103a9a2c170e865 > Author: Thomas W?rthinger > Date: Fri Feb 24 17:55:08 2017 +0100 > > Propagate stamps for unary and binary operations. > > commit 3efa7a0ddf33b66292929cb89b2cf6efe3ead701 > Author: Aleksandar Prokopec > Date: Fri Feb 24 19:17:44 2017 +0100 > > [fix] Fix bug in calculation of total iterations when a benchmark fails. > > commit c60e255617564e654522e68294bd99ef6a4d00d7 > Author: Thomas W?rthinger > Date: Fri Feb 24 16:56:26 2017 +0100 > > Simplify integer switches in raw conditional elimination. > > commit fd006365d35c4fb539465fc422a1cfea0b58c204 > Author: Thomas W?rthinger > Date: Fri Feb 24 16:37:02 2017 +0100 > > Move succeeding stamp calculation to switch nodes as common utility and use from raw conditional elimination. > > commit 75f1d85125aeda2253fab45c65a38afb04c7b609 > Author: Thomas W?rthinger > Date: Fri Feb 24 16:28:45 2017 +0100 > > Fixed an issue in NewConiditionalEliminationPhase that prevented switches from correctly registering stamps. > > commit a7ca9170642ac1d7900869ddde34b02a9d7ad2ad > Author: Thomas W?rthinger > Date: Fri Feb 24 16:13:16 2017 +0100 > > Add new conditional elimination after fixing reads. > > commit bc4ef64f2c3218855d94dce45134b5768cf0340a > Author: Thomas W?rthinger > Date: Fri Feb 24 14:25:49 2017 +0100 > > Change block iteration order of FixReadsPhase to be dominator tree based. > > commit 7d1ad12cbd24723767be368d78399ca1e1f3a39a > Merge: 193b418 730703a > Author: Lukas Stadler > Date: Fri Feb 24 05:09:57 2017 -0800 > > [GR-3034] Add message to assertion in ArithmeticStamp. > > commit 730703a1a2d3e895ad0401ada04bc8925ebe79da > Author: Lukas Stadler > Date: Fri Feb 24 12:12:36 2017 +0100 > > add message to assertion in ArithmeticStamp > > commit 193b41808b1145325d634b12a2965eef4838395e > Merge: 5841886 455484f > Author: Thomas W?rthinger > Date: Fri Feb 24 02:44:50 2017 -0800 > > [GR-3031] Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. > > commit 455484fcf177118659d994c08cf1794356f00d5a > Author: Thomas W?rthinger > Date: Fri Feb 24 00:02:20 2017 +0100 > > Correctly take killing begin nodes into account when creating latest schedule. > > commit 58370156a1463b75617adaee996c8560f25b09dc > Author: Thomas W?rthinger > Date: Thu Feb 23 22:48:23 2017 +0100 > > Adjust AheadOfTimeCompilationTest to new fixed reads structure. > > commit 5313605f2da9cff0c1eeca32f13c3d7e33412a40 > Author: Thomas W?rthinger > Date: Thu Feb 23 22:33:29 2017 +0100 > > Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. > > commit 58418863f1ed601afa49f188f25e9630c193b49c > Merge: 1efc1c5 67de314 > Author: Thomas W?rthinger > Date: Thu Feb 23 11:13:57 2017 -0800 > > [GR-3018] No more value anchors required for guards, new guard movement, removed push-through-pi as extra phase. > > commit 67de314e805596d19e1c9eaf7d3496fa3cf4a150 > Author: Thomas W?rthinger > Date: Thu Feb 23 19:36:58 2017 +0100 > > Add checkstyle directive to avoid complaint about jtt test. > > commit 8192e0c1f1d3ea537032702c88dd37e3b22e5ca1 > Author: Thomas W?rthinger > Date: Thu Feb 23 18:25:22 2017 +0100 > > Correctly handle empty instanceof branches and add jtt test for them. > > commit 0f75d70df46940ef95a68a08e842581273200e82 > Author: Thomas W?rthinger > Date: Thu Feb 23 15:44:45 2017 +0100 > > Fix an issue in the new guard movement that was adding new guards too early to the schedule. > > commit 016fed781f5a4d7e1f904b1df1956ed13524ae09 > Author: Thomas W?rthinger > Date: Thu Feb 23 04:22:55 2017 +0100 > > Relax FloatingReadNode constructor assertion. > > commit 279ac4015ed82a96cd3d46fc4e40cadd0e3375e8 > Author: Thomas W?rthinger > Date: Thu Feb 23 03:34:19 2017 +0100 > > Remove conditional elimination load field constant fold test. > > commit 4359681c9773d323705dfa162ce16822b5d9db05 > Author: Thomas W?rthinger > Date: Thu Feb 23 03:24:24 2017 +0100 > > Remove deprecated TODO in ReadNode. > > commit 3aab8cbb12d3ccf46906e4f1a470200c15509c51 > Author: Thomas W?rthinger > Date: Thu Feb 23 03:20:11 2017 +0100 > > Remove constant pointer comparison conditional elimination. > > commit ee1716fc5b0ed25ef7cf17b458f2718a900cbced > Author: Thomas W?rthinger > Date: Thu Feb 23 03:19:37 2017 +0100 > > Make implicit null check conversion more conservative. > > commit 0d6841907f45c6b9ce7983c2b31becd6a346bd2f > Author: Thomas W?rthinger > Date: Thu Feb 16 16:32:28 2017 +0100 > > Introduce new BytecodeExceptionMode.ExplicitOnly mode. Fix an issue in the write barrier verification phase. Fix IfNode canonicalization to take anchors on begin nodes into account. Adjust allowed code size increase of EarlyReadEliminationPhase. Correctly assume receiver type for special invoke. Do not skip over pi in instanceof node. Fix succeeding stamps. > > commit c250d432035442b078b54a29e33d31df450597e3 > Author: Thomas W?rthinger > Date: Thu Feb 16 14:39:11 2017 +0100 > > Add optional stamp parameter to FixedValueAnchorNode. Skip pi for instanceof only if no information is lost. > > commit 6c70f8efdb5a7a5f21b7f254a5bc9eef79b7d050 > Author: Thomas W?rthinger > Date: Wed Feb 15 23:43:39 2017 +0100 > > Make sure more nodes are canonicalized before they are even created. > > commit da2fc6f2d703eb3678a2faf8a3f277b9bfcb9dc7 > Author: Thomas W?rthinger > Date: Tue Feb 14 23:22:05 2017 +0100 > > Clean up phases. > > commit 7f4c1e5617be30b6d91c73a5bb33a6ed68da0e08 > Author: Thomas W?rthinger > Date: Mon Feb 13 00:40:13 2017 +0100 > > Keep guards alive while their anchor is alive. No longer require ValueAnchorNode for this purpose. > > commit c53b367770069e1a4a5cf4ae981611908061dd7d > Author: Thomas W?rthinger > Date: Sun Feb 12 23:56:05 2017 +0100 > > Make sure guards are always marked live and processed before any other node in earliest schedule. > > commit bb2905a5516cf4ba9771ba110794764d9c290278 > Author: Thomas W?rthinger > Date: Sun Feb 12 23:52:02 2017 +0100 > > Reduce number of node iterable types. > > commit a24455c0c77731ee92e137234a484ed1a1014087 > Author: Thomas W?rthinger > Date: Sun Feb 12 23:14:07 2017 +0100 > > Fix and rename GuardEliminationCornerCasesTest. > > commit 14fd0e523aa5b9ce0de6c7e9aeb9038e2c017f45 > Author: Thomas W?rthinger > Date: Sun Feb 12 22:29:08 2017 +0100 > > Refactor and simplify explicit exception code in the bytecode parser. > > commit 256a17b0ac3b9c8e1a9a70a5aec292239e74709e > Author: Thomas W?rthinger > Date: Sun Feb 12 21:07:37 2017 +0100 > > Special case the frequent case of GETFIELD/PUTFIELD after ALOAD*. > > commit 7049a6e41ce949ae7a8c0301bd71d28454b6883f > Author: Thomas W?rthinger > Date: Sun Feb 12 20:36:03 2017 +0100 > > Short cut creation of InstanceOfNode followed by IFEQ or IFNE bytecode. > > commit 68a7efa84e55775a1329a69a4012c1e67ebcd24d > Author: Thomas W?rthinger > Date: Sun Feb 12 19:48:56 2017 +0100 > > Skip pi when creating IsNullNode or InstanceofNode. Add pass to conditional elimination for moving guards present on both sides of an if upwards. Add conditional elimination tests. > > commit 1efc1c543acd7ed447c59788aeabc223be13e774 > Merge: ba38953 7569452 > Author: Doug Simon > Date: Thu Feb 23 03:49:03 2017 -0800 > > [GR-2741] Remove OptionValues.GLOBAL. > > commit 75694522c823d828e12a677a303df3383cc4a09e > Author: Doug Simon > Date: Thu Feb 23 11:50:12 2017 +0100 > > consolidated test for whether assertions are enabled > > commit 8ab1a68fc84e83e742a3a8473c902acce2fe818f > Author: Doug Simon > Date: Thu Feb 23 11:49:39 2017 +0100 > > fixed regressions in CooperativePhaseTest > > commit 5c15ec46fada7f3aadc4f5197d8823e68319bc03 > Author: Doug Simon > Date: Thu Feb 23 01:17:22 2017 +0100 > > fixed issues detected by OptionsVerifierTest > > commit 1648cb56d88cc08c0426420618b5a0f3208a3b37 > Author: Doug Simon > Date: Thu Feb 23 00:47:42 2017 +0100 > > reduced reads of some options in hot code > > commit da08f0d7bc3f905f1891b76ae4191c8421410e6e > Author: Doug Simon > Date: Thu Feb 23 00:46:04 2017 +0100 > > restructured CompilationAlarm to reduce reads of CompilationExpirationPeriod option > > commit 14dcf1e9dde0cb1144e97137498dc28226a15f80 > Author: Doug Simon > Date: Thu Feb 23 00:41:17 2017 +0100 > > removed stats on how often OptionKeys are read > > commit a57a4a1363d86b55e5b916b43225583115d0bb60 > Author: Doug Simon > Date: Thu Feb 23 00:39:49 2017 +0100 > > added stats on how often OptionKeys are read > > commit da27ea11cfd5f5d5154eb5a1b0843a738acc4e64 > Author: Doug Simon > Date: Thu Feb 23 00:36:08 2017 +0100 > > removed OptionKey.defaultValue() > > commit bcdc9a1ecb06a03cd2f69ba8cc0dc4fbb7390308 > Author: Doug Simon > Date: Tue Feb 21 22:15:01 2017 +0100 > > Graal Truffle options made be accessed without a GraalTruffleRuntime being initialized > > commit 2bf40c5c843b79cf206285fc35106704048a1bd0 > Author: Doug Simon > Date: Thu Feb 23 12:21:49 2017 +0100 > > made snippet counters non-global - they are passed in by a Graal runtime > replaced all uses of GLOBAL with GraalCompilerTest.getInitialOptions() > check the invariant that @ConstantParameter, @VarargsParameter and @NonNullParameter are only used in @Snippet annotated methods > removed VerifyNodeCostOnAccess option > replaced all other uses of OptionValues.GLOBAL with options available from local context > removed OptionValues.GLOBAL > > commit ba38953f2e560decfdc005a95736ae503fa5d3ce > Merge: 06f78ea d95792a > Author: Doug Simon > Date: Thu Feb 23 02:05:52 2017 -0800 > > [GR-2946] Disable pinning mx to a revision in CI. > > commit 7fcb7ab158dc6132e339877f72b5264d331b39aa > Author: Doug Simon > Date: Mon Feb 20 17:06:23 2017 +0100 > > removed CloneNodesWithUnsafe option > > commit e0168e01b008b1790892120ac7ba5299c329fabc > Author: Doug Simon > Date: Wed Feb 15 23:45:46 2017 +0100 > > use service provider to get option values > > commit d69cad07503da0228f683c3df6ab93a15e18b833 > Author: Doug Simon > Date: Mon Feb 13 17:33:55 2017 +0100 > > removed GLOBAL from StructuredGraph.Builder > > commit 06f78ea471fae780af57cf762258c9a09501710a > Merge: 5082f0e df2865d > Author: Stefan Anzinger > Date: Wed Feb 22 09:12:50 2017 -0800 > > [GR-2987] Force compile generated method in LargeConstantSectionTest. > > commit df2865d05f75381a9c78db1a9af82df404c75c5c > Author: Stefan Anzinger > Date: Wed Feb 22 14:31:41 2017 +0000 > > [fix] Force compile generated method in LargeConstantSectionTest > > commit 5082f0e7ee0919a5e670b9fe7712573e242a03eb > Merge: 9898d2f b00edb0 > Author: David Leopoldseder > Date: Wed Feb 22 06:46:24 2017 -0800 > > [GR-1994] Inital groundwork for better compile cancelation from Truffle. > > commit d95792abb3e652cd5c6fff4994cb5740a2d3c840 > Author: Doug Simon > Date: Wed Feb 22 14:33:40 2017 +0100 > > disable pinning mx to a revision in CI > > commit b00edb0d8e6446ae20002e1a0f777cb5d1fc0853 > Author: David Leopoldseder > Date: Mon Feb 13 16:20:58 2017 +0100 > > [feature] Graal: Add cooperative compilation cancellation. > > commit 24d766e8b09bf0752ae49d44ce04e67a6502c6bd > Author: Boris Spasojevic > Date: Fri Feb 10 12:00:43 2017 +0100 > > Removed synchronisation and stored the CancelableCompileTask object in a local variable. > > commit 9e3e8f9b5f245b1e10bdfccb3ad85a12d224d8d5 > Author: Boris Spasojevic > Date: Fri Feb 10 08:56:39 2017 +0100 > > Synchronize assignment to compilation task. > > commit e889d0be9e95d4f6526bf2923fad2cae98541d87 > Author: Boris Spasojevic > Date: Fri Feb 10 07:51:52 2017 +0100 > > Javdoc for Cancelable. > > commit 7db8a020b755f26ad361081d24f67986a36b68ef > Author: Boris Spasojevic > Date: Fri Feb 10 07:45:26 2017 +0100 > > If CancelableCompileTask is canceled, soft cancel the future as well. > > commit 25ffd4f0286a5415927f2738f7fe7b4e28054cc2 > Author: Boris Spasojevic > Date: Thu Feb 9 18:13:14 2017 +0100 > > Moved the check to allow Cancelable to be loaded to checkAllowedGraalClasses.` > > commit 9a3a77f2db7c65303d0894cc733a21a3d769e985 > Author: Boris Spasojevic > Date: Thu Feb 9 17:59:17 2017 +0100 > > Renamed task to future. > > commit 582af20c9437a7ea1af1df00b3194edc4ea7bb5f > Author: Boris Spasojevic > Date: Thu Feb 9 15:45:36 2017 +0100 > > Added the CancelableCompileTask to the StructuredGraph. > > commit 57875f66bfd68641a8a66b85bcacd3151b063af0 > Author: Boris Spasojevic > Date: Thu Feb 9 15:42:02 2017 +0100 > > Renamed parameter to avoid hiding a field. > > commit 9809b131e10544dcc8ddfe3feeddd6ec7fde7ca8 > Author: Boris Spasojevic > Date: Thu Feb 9 15:32:51 2017 +0100 > > Adding a Cancelable field to StructuredGraph. > > commit 6dbd424731ae46fb9ee7b592b1d26c1315cd1ac1 > Author: Boris Spasojevic > Date: Thu Feb 9 15:04:08 2017 +0100 > > Extracted the CancelableCompileTask class and Cancelable interface. > > commit 46e2aadae72b85d6a043766d8968299431d6edb9 > Author: Boris Spasojevic > Date: Thu Feb 9 12:01:59 2017 +0100 > > Adding the CancelableCompileTask to wrap Futures resulting from submitting for compilation. > > This CancelableCompileTask object gets propagated until the partial evaluator builds the StructuredGraph. > Tests pass null to all methods that expect a CancelableCompileTask object. > > commit 9898d2f9af65011a94fd0752a8e551a7cfdf9d9b > Merge: 1bac1de 095a6dd > Author: Josef Eisl > Date: Wed Feb 22 03:06:58 2017 -0800 > > [GR-1021] TraceRA: Bottom-Up allocator does not need a full local data-flow resolution. > > commit 29500eb2158a944cb91f5b47b0cc106be92d0eab > Author: Boris Spasojevic > Date: Wed Feb 22 11:31:44 2017 +0100 > > Don't invalidate targets if a call to interpreter is made and the target is still valid. > > commit 1bac1de20fa3c78c824ea99b7caeb894bae3812e > Merge: 45899d9 e340234 > Author: David Leopoldseder > Date: Wed Feb 22 02:22:48 2017 -0800 > > [GR-2956] Update overlay revision. > > commit 095a6dd95dd0dfd1348e40710159b04375cb0052 > Author: Josef Eisl > Date: Wed Feb 22 09:55:37 2017 +0100 > > [refactor] TraceRA[BU]: directly call resolve method > > commit dbdbd88cf4537abbd2793bf1c7701f28fb4507dc > Author: Josef Eisl > Date: Tue Feb 21 18:44:05 2017 +0100 > > [refactor] TraceRA[BU]: split loop back-edge handling and forward edges > > commit afc3cb46cea26c070e0908de7958c3e77890cb89 > Author: Josef Eisl > Date: Tue Feb 21 15:50:40 2017 +0100 > > [fix] TraceRA[BU]: no need for full local data-flow resolution > > commit e340234512f883f734c1bd4b3b995a2583780ad9 > Author: David Leopoldseder > Date: Tue Feb 21 16:44:54 2017 +0100 > > [dep] Update overlay revision. > > commit 45899d9b431f14adc86808d51542a6f14dccef91 > Merge: 79f28ca 8db556e > Author: Doug Simon > Date: Wed Feb 22 00:55:03 2017 -0800 > > [GR-2980] Update overlay version. > > commit 8db556e58427c47aae2e7db5189f9fa10f67e886 > Author: Doug Simon > Date: Wed Feb 22 09:34:51 2017 +0100 > > update overlay version > > commit 005fec5ecd2ae5c6bc1646fc0213252bede13cc6 > Author: Boris Spasojevic > Date: Wed Feb 22 07:54:55 2017 +0100 > > Proper logging of cached decisions. > > commit 79f28caa4b0d88e4b4ff9026266378bf288f6959 > Merge: d7761c8 7ce2c23 > Author: Boris Spasojevic > Date: Tue Feb 21 22:30:29 2017 -0800 > > [GR-2687] Remove ThreadLocal field from TraceCompilationListener. > > commit d7761c87824f64329c95d352b3468e9ed48768c8 > Merge: 288aa91 32d37bb > Author: Doug Simon > Date: Tue Feb 21 08:23:47 2017 -0800 > > [GR-2976] Update doc regarding building JVMCI JDK8 binaries. > > commit 288aa9126e5185cb8466d2bbe526a149917da6f7 > Merge: 11c757e b2cf4b0 > Author: Doug Simon > Date: Tue Feb 21 07:47:54 2017 -0800 > > [GR-2957] Update overlay to enable graalvm downstream testing. > > commit 11c757e12a1b4e35bfecc0b76defc161c8846cb1 > Merge: 388e343 76b5cc3 > Author: Aleksandar Prokopec > Date: Tue Feb 21 07:36:50 2017 -0800 > > [GR-2962] Mx benchmark command should produce data points for failing benchmarks. > > commit 0aa31f3c01ec7363e1d8ff5cf933555355f02e8a > Author: Josef Eisl > Date: Thu Dec 22 12:32:45 2016 +0100 > > [fix] TraceRA: no need for delete for rewritten stack to stack moves > > commit d67931d90867994b4352b2fe500c1e4335e5e7fc > Author: Josef Eisl > Date: Tue Jan 17 16:12:47 2017 +0100 > > [fix] TraceRA[BU]: remove redundant code > > commit 54759284609e9ded8975fb65a47ed9059e1a7085 > Author: Boris Spasojevic > Date: Tue Feb 21 15:58:11 2017 +0100 > > Be more restrictive in what you can cache. > > commit 76b5cc3f344cf58034462654ece0bef18cecc1f7 > Author: Aleksandar Prokopec > Date: Tue Feb 21 14:33:06 2017 +0100 > > [feature] Repair partial DaCapo results after a benchmark failure. > > commit 32d37bb3add0346c7bece7020dd3bd8efb279304 > Author: Doug Simon > Date: Tue Feb 21 15:48:03 2017 +0100 > > update doc regarding building JVMCI JDK8 binaries > > commit 298580fc4cd9e4aa7f21bfc182a0ea48cf87923a > Author: Boris Spasojevic > Date: Tue Feb 21 10:27:21 2017 +0100 > > Added deep rejection cache. > > commit 7ce2c234fbf55a21aecb7805496aac70eb6520bb > Author: Boris Spasojevic > Date: Tue Feb 21 09:35:30 2017 +0100 > > Replaced the ThreadLocal with a map. > > commit dfb7a6c6af95572d2f1eefca184672cdbc8380d1 > Merge: 371bafe 388e343 > Author: Boris Spasojevic > Date: Tue Feb 21 08:00:40 2017 +0100 > > Merge branch 'master' into bugfix/gr-2687. > > commit 371bafe23701a25fe4d3d6361a2d0832f2f6cc43 > Author: Boris Spasojevic > Date: Tue Feb 21 07:43:48 2017 +0100 > > Use ConcurrentHashMap instead of HashMap with sync. > > commit 388e343257342090512ec645290c79d6dee0d0af > Merge: 6250cc2 192a2e7 > Author: Doug Simon > Date: Mon Feb 20 11:35:23 2017 -0800 > > [GR-2961] Remove all static state from the InstrumentPhase. > > commit b2cf4b067e456f0e371f8708dc276e4d9ff00146 > Author: Doug Simon > Date: Mon Feb 20 19:40:05 2017 +0100 > > update overlay to enable graalvm downstream testing > > commit 192a2e7c12a9c75937cd8f8bcbe1f61b0dd69b46 > Author: Aleksandar Prokopec > Date: Mon Feb 20 19:15:21 2017 +0100 > > [refactor] Move instrumentation state to the Truffle runtime. > > commit 6250cc29ca65d563eba167d189cfb07cc93f9f51 > Merge: 065b10e 3f15d3a > Author: Lukas Stadler > Date: Mon Feb 20 07:26:39 2017 -0800 > > [GR-2904] Conditional Elimination: Always improve pi stamp if new guard provides additional information. > > commit 3f15d3a883967db64f79fb942a9ddc4f4310f713 > Author: David Leopoldseder > Date: Mon Feb 20 14:27:01 2017 +0100 > > [fix] Conditional Elimination: Always improve pi stamp if new guard provides additional information. > > commit 065b10eec31f3067027c97ab8c6fe76e3f1c4e75 > Merge: 68af508 3cffbc8 > Author: Lukas Stadler > Date: Fri Feb 17 10:33:49 2017 -0800 > > [GR-2904] Revert change in NewConditionalEliminationPhase.registerNewStamp. > > commit 68af50839b4827eed0886c7a6e5129ba7bc682c2 > Merge: 59e3dbd eabc45b > Author: Tom Rodriguez > Date: Fri Feb 17 09:54:19 2017 -0800 > > [GR-2910] Be more strict about whether StubRoutines are expected to be available in JDK8. > > commit 59e3dbdfd8a3da7db3b4e201076170ce3cdb4f7f > Merge: 40b3c7c 158a5b2 > Author: Christian Wimmer > Date: Fri Feb 17 09:22:46 2017 -0800 > > [GR-1633] Use object from frame state for monitor exit. > > commit 40b3c7c32cac44a608df231262b8b69830ac5ace > Merge: 71b0b4b deee6ed > Author: Doug Simon > Date: Fri Feb 17 08:35:44 2017 -0800 > > [GR-2916] Adapt to jdk.vm.* being renamed to jdk.internal.vm.*. > > commit deee6ed9c8c3c24b51531bcb306d252f6701783d > Author: Doug Simon > Date: Fri Feb 17 16:47:41 2017 +0100 > > fix tests that define snippets and replacements to work on jdk9 > > commit 402f092bc0d257e2398e3bf6051d41b5f2d93459 > Author: Doug Simon > Date: Fri Feb 17 16:44:40 2017 +0100 > > adapt to jdk.vm.* -> jdk.internal.vm.* renaming > > commit 6cf5d3711c6028602b95fbef470928499b396825 > Author: Doug Simon > Date: Fri Feb 17 16:41:12 2017 +0100 > > install hsdis library into JAVA_HOME if it doesn't already exist > > commit 0bfab5f11fbd863df3d62715bf3262f66e5315bb > Merge: 563b95a 71b0b4b > Author: Boris Spasojevic > Date: Fri Feb 17 15:03:39 2017 +0100 > > Merge 'master' into tests/gr-2632 > > commit 3cffbc8f88f90590ff36c9d13fad7d84afd7cd4b > Author: Lukas Stadler > Date: Fri Feb 17 13:41:14 2017 +0100 > > revert change in NewConditionalEliminationPhase.registerNewStamp > > commit 71b0b4b9fd0fc495f534854ecc4f4697eb69d625 > Merge: cb17ff5 cdf16cc > Author: Roland Schatz > Date: Fri Feb 17 02:57:40 2017 -0800 > > [GR-2901] Update truffle import to include native interface. > > commit cdf16cc83370c9bd1b0208b779abda247c74c517 > Author: Roland Schatz > Date: Thu Feb 16 17:16:09 2017 +0100 > > Update truffle import to include native interface. > > commit 563b95a69a6ffb9d8bf041b5fb085c8074773ea1 > Merge: 8c9c09f cb17ff5 > Author: Boris Spasojevic > Date: Fri Feb 17 07:43:53 2017 +0100 > > Merge branch 'master' into tests/gr-2632 > > commit cb17ff5739546609f9a49b97808dbf377d4f9a5e > Merge: 4501f91 4a02210 > Author: Tom Rodriguez > Date: Thu Feb 16 21:59:47 2017 -0800 > > [GR-2911] Ensure constants are on the right in commutative operations. > > commit 4a0221087ad448049a46ea5dfdde180ce778f99f > Author: Tom Rodriguez > Date: Sun Feb 12 23:09:01 2017 -0800 > > Ensure constants are on the right in commutative operations > > commit eabc45bdd389da076f3135d85bea533be261c7dc > Author: Tom Rodriguez > Date: Mon Feb 13 10:43:23 2017 -0800 > > Be more strict about whether StubRoutines are expected to be available in JDK8 > > commit 158a5b29d8a8dcee211c9573b64cb5388d102879 > Author: Christian Wimmer > Date: Thu Feb 16 10:43:45 2017 -0800 > > Use object from frame state for monitor exit > > commit 4501f91b32f16c55e9998554abb41e0a507fcdaf > Merge: 803c0ec f524733 > Author: Doug Simon > Date: Thu Feb 16 06:39:26 2017 -0800 > > [GR-2897] Update CI to use jvmci-0.25. > > commit 803c0ecb5b0d35d1bc1789b4a89b0fd5494da3d6 > Merge: cfbeb9a 65a9388 > Author: David Leopoldseder > Date: Thu Feb 16 06:16:45 2017 -0800 > > [GR-2898] MethodMetrics: Fix printing setup. > > commit f524733b51391748cd8c32da4c1134aaaa400880 > Author: Doug Simon > Date: Thu Feb 16 11:53:39 2017 +0100 > > update CI to use jvmci-0.25 > > commit cfbeb9a4b647e47e4c25c57f16dd7233e5ac6d4f > Merge: 1691631 a105ce5 > Author: David Leopoldseder > Date: Thu Feb 16 05:48:01 2017 -0800 > > [GR-2877] Unsafe PEA Bug. > > commit 169163127a1e7d78218e324b8ae1d59a80a8af9d > Merge: 7d7bc36 5debce5 > Author: Aleksandar Prokopec > Date: Thu Feb 16 04:02:49 2017 -0800 > > [GR-2710] Move static state out of InstrumentPhase. > > commit 5debce5fa8ca9bc18ce05b1c21cdcf47c19cd02d > Author: Aleksandar Prokopec > Date: Wed Feb 15 16:52:29 2017 +0100 > > [refactor] Use Truffle-runtime-specific instance of the instrumentation access table. > > commit 65a9388d2ee50c7d9be0186c4c6f1640efb7318c > Author: David Leopoldseder > Date: Thu Feb 16 12:17:01 2017 +0100 > > [fix] MethodMetrics: Fix printing setup. > > commit 8c9c09f6a6d1d8ca28c72a03f74ec6bbef6aba62 > Author: Boris Spasojevic > Date: Thu Feb 16 11:47:01 2017 +0100 > > Removed invisible UTF characters. > > commit a105ce5337f5d633f161e12ff37bc3105125c57a > Author: David Leopoldseder > Date: Thu Feb 16 10:44:08 2017 +0100 > > [fix] PEA: Keep better stamp information during node replacement for all nodes. > > commit b6425f9bdd2051f846752497048de5f7a45170bf > Author: David Leopoldseder > Date: Wed Feb 15 13:44:32 2017 +0100 > > [fix] PEA: Must respect stamps when virtualizing unsafe stores to one slot fields. > > commit 126441b8a5034d9e88de7f33daaf8546d53a8106 > Author: Boris Spasojevic > Date: Wed Feb 15 16:04:47 2017 +0100 > > Suppress Warning. > > commit dcd7db23164b876db36852ab093d7616e37056db > Author: Boris Spasojevic > Date: Wed Feb 15 13:16:02 2017 +0100 > > Non static counting of visited nodes. > > commit 7d7bc365d1fc52fcbcce4b9d505512c018c09c49 > Merge: 7a18b1d 0c9f8cd > Author: Tom Rodriguez > Date: Tue Feb 14 17:08:38 2017 -0800 > > [GR-2872] Improve handling of PiNodes in address expressions. > > commit 0c9f8cd33a61ad92ba20204cc42fcee332a45e41 > Author: Tom Rodriguez > Date: Mon Feb 13 23:09:38 2017 -0800 > > Improve handling of PiNodes in address expressions > > commit 7a18b1d927dd324859f54665f1b6e00e670cd45d > Merge: d0d9139 217d3f0 > Author: Andreas Woess > Date: Tue Feb 14 12:05:12 2017 -0800 > > [GR-2047] Use hasNeverInlineDirective() in PEGraphDecoder. > > commit 217d3f05eb042936fb78202925edbcc2009dc670 > Author: Andreas Woess > Date: Tue Feb 14 19:28:53 2017 +0100 > > Use hasNeverInlineDirective() instead of canBeInlined() in PEGraphDecoder. > > commit 1eae4894d43df492d4323d573e908d133e1cef88 > Author: Boris Spasojevic > Date: Tue Feb 14 17:23:11 2017 +0100 > > Cache and reuse inline decisions, and don't explore too many call sites. > > commit f22534c9416104559dbb8c75cb9bd04a6c22f608 > Author: Boris Spasojevic > Date: Tue Feb 14 17:21:31 2017 +0100 > > Removed junk and increased timeout for tests to 1 second. > > commit d0d913941f7cfc82f8da74c8f9d4e7858c910a04 > Merge: 638ba23 4f2fe2b > Author: Doug Simon > Date: Tue Feb 14 01:43:44 2017 -0800 > > [GR-2842] Clean up some IGV options. > > commit 4f2fe2bbcdd02f48744dd8c434ec1a8dc4d5a5d1 > Author: Doug Simon > Date: Mon Feb 13 22:35:05 2017 +0100 > > deprecated options with ?Ideal? in their name > > commit 638ba239e23344fbc09056e45b7f764c2daa1298 > Merge: bdd86ff 3bb4c58 > Author: Thomas W?rthinger > Date: Mon Feb 13 16:13:11 2017 -0800 > > [GR-2633] Fix assertions related to read elimination and PEA. > > commit 3bb4c5864ed9055810451feca45d97fd7bfd0768 > Author: Thomas W?rthinger > Date: Mon Feb 13 18:18:54 2017 +0100 > > Make sure value of proxy nodes is added before proxy node is added in PEA. > > commit 5598d39cf1bf68fee046709c97806bbf28445fb9 > Author: Thomas W?rthinger > Date: Mon Feb 13 16:58:02 2017 +0100 > > Make sure stamp does not get less precise when applying Graph effects from read elimination and PEA. > > commit 487759f848cb25889eb1482d4d3bd969390c0bb7 > Author: Doug Simon > Date: Mon Feb 13 20:58:18 2017 +0100 > > automatically fall back to dumping graphs to files when IGV is unavailable/unreachable > > commit bdd86ff9211ab26b82b2b295b79b9dee23927899 > Merge: dde2f03 dbe905e > Author: Doug Simon > Date: Mon Feb 13 08:38:17 2017 -0800 > > [GR-2827] Clean up option changes merge artifacts. > > commit dbe905e43c3fdb5bbbe5095ab10cc4ca469a69f6 > Author: Doug Simon > Date: Mon Feb 13 17:18:05 2017 +0100 > > re-deleted accidentally revived test > > commit dde2f03e0f7e98fc8539e34a8be4d2789d7ea1ac > Merge: 4372ef7 f67aaf1 > Author: Doug Simon > Date: Mon Feb 13 07:13:56 2017 -0800 > > [GR-2800] Update truffle import. > > commit 4372ef7f9a24f8d6c659b8d3c0ff2b5f6ca3946e > Merge: 759d763 a1249cb > Author: Doug Simon > Date: Mon Feb 13 02:26:39 2017 -0800 > > [GR-2825] Explicitly select compiler configuration for graal-core. > > commit a1249cb10101f0636bb44708397a35765d24ece9 > Author: Doug Simon > Date: Mon Feb 13 11:04:37 2017 +0100 > > explicitly select compiler configuration for graal-core > > commit 759d7635dedbea1c7efb835e06d8f904615ace33 > Merge: 7d5433e c07bcb5 > Author: Thomas W?rthinger > Date: Sat Feb 11 11:44:02 2017 -0800 > > [GR-235] Avoid aggressive guard optimization for guards without action. > > commit c07bcb594a381c3409d4186f145db7a0f21dd4b5 > Author: Thomas W?rthinger > Date: Sat Feb 11 16:20:36 2017 +0100 > > New assertions when replacing nodes. Change PiNode canonicalization. Fix conditional elimination to currectly work with unproxified input. > > commit 582bd97675e05ba51a9c3493c6a8c2206e93d56b > Author: Thomas W?rthinger > Date: Fri Feb 10 15:00:09 2017 +0100 > > Avoid aggressive guard optimization for guards without action. > > commit 7d5433ec8c8594f33f68b46624e0b5f4a434479a > Merge: 06c1a89 0a5fd96 > Author: Codrut Stancu > Date: Fri Feb 10 14:42:59 2017 -0800 > > [GR-2813] Illegal stream usage fix. > > commit 06c1a8934e40520649ede585cf51bb10bb110831 > Merge: cf6665b 9f29f84 > Author: Thomas W?rthinger > Date: Fri Feb 10 14:23:47 2017 -0800 > > [GR-2819] Modify schedule phase to guarantee earliest schedule for floating nodes. Fixes #252. > > commit cf6665bba490ca2161031bc980553c7c42f59d6a > Merge: e16c69a 523bb8d > Author: Christian Wimmer > Date: Fri Feb 10 14:04:46 2017 -0800 > > [GR-2816] Update javaCompliance of NFI project to 1.8. > > commit 9f29f840c11992d70dcbbf99cafb919f58261aa1 > Author: Thomas W?rthinger > Date: Fri Feb 10 22:05:07 2017 +0100 > > Document and simplify new version of earliest schedule. > > commit 76863a35cf96b273469ce131020efc0255cd62d3 > Author: Tom Rodriguez > Date: Fri Feb 10 11:58:45 2017 -0800 > > Handle both inputs of BinaryOpLogicNode when folding tests > > commit fd3a9f440fe836b5ea13731be078eb6b3ae2c22b > Author: Thomas W?rthinger > Date: Fri Feb 10 18:31:00 2017 +0100 > > Modify schedule phase to guarantee earliest schedule for floating node - i.e., a floating node is always scheduled before a fixed node if it does not depend on it. > > commit e1f64bf4cab3abd3e80fb926e4e532646adf055a > Author: Thomas W?rthinger > Date: Thu Feb 9 23:34:11 2017 +0100 > > Create test case exercising a corner case of guard movement. > > commit e16c69a1af7c625f0f1f0b45f24cf335556f6382 > Merge: 5b8cebe 3831c99 > Author: Christian Wimmer > Date: Fri Feb 10 11:48:34 2017 -0800 > > [GR-2796] More aggressive constant folding of useFrameWithoutBoxing. > > commit 0a5fd96a31bda0e0c3fcff10ae85facead7dd353 > Author: Codrut Stancu > Date: Fri Feb 10 11:38:50 2017 -0800 > > Illegal stream usage fix. > > commit 523bb8d670cf3eb8ab68b10b58f109d613aae5e4 > Author: Christian Wimmer > Date: Fri Feb 10 11:28:08 2017 -0800 > > Update javaCompliance of NFI project to 1.8 > > commit 3831c9902c57aaedbdde799b09e476bc5f263dd8 > Author: Christian Wimmer > Date: Fri Feb 10 10:55:56 2017 -0800 > > More aggressive constant folding of useFrameWithoutBoxing > > commit 5b8cebee8a66240869de0449d200280ac103b642 > Merge: e1a8546 958d3ce > Author: Vojin Jovanovic > Date: Fri Feb 10 08:31:52 2017 -0800 > > [GR-2654] Adapt to jvmci-0.24 changes. > > commit 958d3ce16c527b3d1b9d6338cfa03a32c1518ca1 > Author: Vojin Jovanovic > Date: Fri Feb 10 16:34:17 2017 +0100 > > [ci] remove dev from jvmci > > commit c8db502996f6c2f44202b8ba0dc2dfd98d4b77b5 > Author: Boris Spasojevic > Date: Fri Feb 10 14:22:58 2017 +0100 > > Replaced the ThreadLocal with a map. > > commit 5ee7023084bca89ba3e662d3494d3d2bf997e9f9 > Author: Doug Simon > Date: Wed Feb 8 15:03:00 2017 +0100 > > update jvmci-0.24 reference > > commit 4e2a862c94a9b2e09e660471488251f7365c17ba > Author: Doug Simon > Date: Mon Feb 6 21:46:45 2017 +0100 > > broaden class file search for test with @Snippet methods > > commit f3d7bce9cc2b2ddbf4d5792a141c192c6202fad5 > Author: Doug Simon > Date: Sat Feb 4 11:12:05 2017 +0100 > > fixed internal field equivalence test > > commit 3e2893ba7c5c965748ec404bb32fc260836ef8c1 > Author: Doug Simon > Date: Fri Feb 3 12:00:04 2017 +0100 > > update required jvmci version > > commit 0dc4878d300e5aa6cde422afcf2f2fc6e81dedf1 > Author: Doug Simon > Date: Fri Feb 3 11:42:41 2017 +0100 > > adapt to removal of HotSpotVMConfigAccess.getTypeSize > > commit f67aaf13324e2eae6eaff4691d63f7c19e0fdfc3 > Author: Doug Simon > Date: Fri Feb 10 11:13:39 2017 +0100 > > update truffle import > > commit faa0ae2eaaaba6d4bba88489c615a157f6d4b1ec > Author: Boris Spasojevic > Date: Fri Feb 10 11:10:15 2017 +0100 > > Removed some accidental logging. > > commit 327307f15f8e06cbdf9a3687d633d9cff7bbe31b > Author: Boris Spasojevic > Date: Fri Feb 10 11:03:05 2017 +0100 > > Initial commit for Truffle inlining performance tests. > > commit e1a854653dea3c067320d4e6ea4bfcfc84b4eb72 > Merge: 1960e3e 53425c3 > Author: David Leopoldseder > Date: Fri Feb 10 01:02:27 2017 -0800 > > [GR-1383] Add weekly G1GC benchmarks. > > commit 1960e3e2b45acac3766a26844739ab7e12f3638f > Merge: 0584bce f8fcb50 > Author: Codrut Stancu > Date: Thu Feb 9 14:36:23 2017 -0800 > > [GR-2726] Refactor stream usage. > > commit f8fcb500150f40d3e52d5954a868f489842a7b64 > Author: Codrut Stancu > Date: Fri Feb 3 21:41:17 2017 -0800 > > Refactor stream usage. > > commit 0584bce96fddfe28fcbdae2f5f13855033a7d982 > Merge: 0d9e753 0253981 > Author: Christian Wimmer > Date: Thu Feb 9 13:23:26 2017 -0800 > > [GR-2748] Allow forced re-initialization of debug environment. > > commit 025398147a1937ca08f98d70f63f7a3dffe1d4de > Author: Christian Wimmer > Date: Thu Feb 9 12:59:51 2017 -0800 > > Allow forced re-initialization of debug environment > > commit 0d9e7533a49564f341cb9db085ffea0295f72e33 > Merge: 8b26660 c01850f > Author: Thomas W?rthinger > Date: Thu Feb 9 09:36:39 2017 -0800 > > [GR-2790] Do not drop guards on reads during read elimination. > > commit c01850fb004167b5f939d96a562f0bade3629f44 > Author: Thomas W?rthinger > Date: Thu Feb 9 18:02:04 2017 +0100 > > Do not drop guards on reads during read elimination. > > commit 8b26660b523198d1b7485957d845d67577b0ee41 > Merge: 9d3fe02 2f73a38 > Author: Boris Spasojevic > Date: Thu Feb 9 06:17:24 2017 -0800 > > [GR-2632] Adding a test suite for Truffle Inlining. > > commit 2f73a38fc28c4bfffdcda7090bb66358e2550736 > Merge: 3594f1e 9d3fe02 > Author: Boris Spasojevic > Date: Thu Feb 9 15:01:46 2017 +0100 > > Merge branch 'master' into tests/inlining > > commit 3594f1e44c5ac24f8e5f7e17909402eedf5df858 > Author: Boris Spasojevic > Date: Wed Feb 8 08:52:10 2017 +0100 > > Updated the usage of compiler options. > > commit 4f57bc029daa3b69c5310572155e34169c533422 > Merge: 4bb7407 f72bfeb > Author: Boris Spasojevic > Date: Wed Feb 8 08:51:28 2017 +0100 > > Merge branch 'master' into tests/inlining > > commit 9d3fe02ee3f556c8efa7286e7cda6caaebae531a > Merge: 757c76a 32e6808 > Author: Thomas W?rthinger > Date: Thu Feb 9 04:25:40 2017 -0800 > > [GR-2770] Set new PiStamp if new guarding condition proves more precise information. > > commit 32e6808116d7dd30c49bd74453f0debd3d2c1249 > Author: Thomas W?rthinger > Date: Thu Feb 9 11:49:21 2017 +0100 > > Set new PiStamp if new guarding condition proves more precise information. > > commit 757c76a40a46593b22f5baf0a211395d11739224 > Merge: 4b3ccb1 675e604 > Author: Thomas W?rthinger > Date: Wed Feb 8 15:21:12 2017 -0800 > > [GR-2754] Use pi instead of guard for read access. > > commit 675e60477ab0fb3bfecfd9ba9c487706c638dd1d > Author: Thomas W?rthinger > Date: Wed Feb 8 17:25:13 2017 +0100 > > Fix dynamic object allocation snippet. > > commit 62442f5f48c70b41e5f4cd0e8a3d3ec7556d50ee > Author: Thomas W?rthinger > Date: Tue Feb 7 20:48:14 2017 +0100 > > Fix array store exception stub and Unsafe.allocateInstance intrinsification. > > commit 2ee3be6a47df9fc6a17a3ec27ab7da2d361afa04 > Author: Thomas W?rthinger > Date: Tue Feb 7 20:19:43 2017 +0100 > > Fix constant pool intrinsification to check for non-null. > > commit d0f3293c827dbe9eaba883c12f8de18e61e76658 > Author: Thomas W?rthinger > Date: Tue Feb 7 16:59:51 2017 +0100 > > Fix createClassCastException to have NonNullParameter. > > commit b82278f3bcc9d8de8b00329c5235a46e6a06aef7 > Author: Thomas W?rthinger > Date: Tue Feb 7 15:15:59 2017 +0100 > > Add assertion that FloatingReadNode inputs have non-null stamp. Fix violators. > > commit d077baf51b8bce9d4a3a9909b0764b8915a45a53 > Author: Thomas W?rthinger > Date: Tue Feb 7 13:35:31 2017 +0100 > > Reduce number of guarded nodes. > > commit bfb911da3ecae08d637d4e763bcd03ea2f49dd77 > Author: Thomas W?rthinger > Date: Mon Feb 6 16:48:53 2017 +0100 > > Modify WriteBarrierVerificationTest. > > commit 469811fcdf0ca13207a3b8559318cc4b3eaa147c > Author: Thomas W?rthinger > Date: Mon Feb 6 04:43:22 2017 +0100 > > Fix lowering phase to clear guards only when actually exiting the block. > > commit 03b3023b17e635e3e646d27832855523b1d24a61 > Author: Thomas W?rthinger > Date: Mon Feb 6 02:08:50 2017 +0100 > > Use guard instead of pi for array bounds check. Fix klass pointer null check. Simplify read node and clean up after graph building. > > commit 867d9def5d68605dd83600d47126e8ccfd65347a > Author: Thomas W?rthinger > Date: Sun Feb 5 20:18:42 2017 +0100 > > Change lowering for memory access nodes to use PiNode instead of directly guarding the access. > > commit 4b3ccb1cec1b4aec6474076656a6b82a8db4b619 > Merge: 5e2d27f d47aa7d > Author: Tom Rodriguez > Date: Wed Feb 8 10:31:50 2017 -0800 > > [GR-2672] Properly handle 0 length strings in String.indexOf intrinsic. > > commit d47aa7dce4954cdab51223c2755c2167cc06dff7 > Author: Tom Rodriguez > Date: Mon Feb 6 17:40:31 2017 -0800 > > Properly handle 0 length strings in String.indexOf intrinsic > > commit 5e2d27fe53b72f958a536997ac8c9856dc66320a > Merge: 33635af fb14123 > Author: Doug Simon > Date: Wed Feb 8 09:08:43 2017 -0800 > > [GR-2752] Fixed NPE in DebugValuesPrinter.printDebugValues. > > commit fb141236280a0241b6a4b5a620824cbed908e94c > Author: Doug Simon > Date: Wed Feb 8 17:44:16 2017 +0100 > > fixed NPE in DebugValuesPrinter.printDebugValues > > commit 33635afdc032789ee58b05ef9fd650cd8beddb79 > Merge: 2a56c90 c943010 > Author: Doug Simon > Date: Wed Feb 8 08:06:06 2017 -0800 > > [GR-2736] Cleanup after GR-1979. > > commit 2a56c903712f457cc13b09da7f6b914ff7d0d2f4 > Merge: 4176c41 20f5567 > Author: David Leopoldseder > Date: Wed Feb 8 05:22:20 2017 -0800 > > [GR-2724] OsrLockTest: Remove printing to stdout. > > commit 4176c41ea0785ad5875b96f0bbee78279733567f > Merge: f72bfeb 9498f74 > Author: Josef Eisl > Date: Wed Feb 8 05:12:08 2017 -0800 > > [GR-2729] Reduce the number of TraceRA task in the CI. > > commit c94301037e76531fc191b1558ba289c4de4056b1 > Author: Doug Simon > Date: Wed Feb 8 11:58:53 2017 +0100 > > fixed comment to reflect code changes > > commit 0545cdc7a321b6d503624807f3c8550d9ebca20a > Author: Doug Simon > Date: Wed Feb 8 11:58:32 2017 +0100 > > removed accidentally added code > > commit 9498f7488df6a54852983c10bd864a9f8c26bdcc > Author: Josef Eisl > Date: Wed Feb 8 11:55:06 2017 +0100 > > [ci] update overlay revision > > commit 20f5567072248e713cba51914a0dcc8a85118bac > Author: David Leopoldseder > Date: Wed Feb 8 11:50:21 2017 +0100 > > [fix] OsrLockTest: Remove printing to stdout. > > commit b6971b5982996b6fda257ed56195313e4c672656 > Author: Josef Eisl > Date: Wed Feb 8 10:11:39 2017 +0100 > > [ci]: reduce TraceRA tasks > > commit f72bfeb6def8c41ae6426661f6d4aaead4cb94df > Merge: 60b1818 9fa7538 > Author: Doug Simon > Date: Tue Feb 7 14:15:45 2017 -0800 > > [GR-1979] Replace static options with context based options. > > commit 9fa753893414aa6c86763d6606bea6a053ec5217 > Author: Doug Simon > Date: Tue Feb 7 20:49:52 2017 +0100 > > removed accidentally added code > > commit 9298ad801978e49c0c35b1e4def2e5bda3aba5c1 > Merge: e3b1959 41d3dc9 > Author: Doug Simon > Date: Tue Feb 7 17:11:33 2017 +0100 > > Merge. > > commit e3b19596f886be9bad689f36014c20cac678b9f5 > Author: Doug Simon > Date: Tue Feb 7 17:03:32 2017 +0100 > > merge fixes > > commit 76d0454add6142ee6dd3e757f9ed4fd2ed00f081 > Merge: 33b07c3 60b1818 > Author: Doug Simon > Date: Tue Feb 7 16:03:29 2017 +0100 > > Merge. > > commit 33b07c33d295af8b51164704abf277d459881445 > Merge: 1aebf17 39ed5ab > Author: Doug Simon > Date: Tue Feb 7 15:31:12 2017 +0100 > > Merge branch 'master' into topic/non-static-options > > commit 4bb7407cd19cf8ba837e59542cde2196bb8f9ed1 > Author: Boris Spasojevic > Date: Tue Feb 7 14:33:50 2017 +0100 > > Removed a comment to please Checkstyle. > > commit aec325ead8a20227be53cc3dc62ba74c2d96fcc1 > Author: Boris Spasojevic > Date: Tue Feb 7 14:14:33 2017 +0100 > > Separate methods to build targets and decisions. > > commit edfa581f5a914238d99ec938dea1107aac6e54a5 > Author: Boris Spasojevic > Date: Tue Feb 7 11:08:59 2017 +0100 > > Fixed Checkstyle issues. > > commit 7c1889bac1f4c83e82e2b0781a7d22ee6491f3e5 > Author: Boris Spasojevic > Date: Tue Feb 7 10:50:28 2017 +0100 > > Removed unused builtins. > > commit 00cbe331a1d81bb1a4cb5ea31d9e0dfeb420149e > Author: Boris Spasojevic > Date: Tue Feb 7 10:18:20 2017 +0100 > > Deleted the SL based inline tests. > > commit cb02c7a667a90db66f1bb3ce70afd399ba4c5686 > Author: Boris Spasojevic > Date: Tue Feb 7 10:07:37 2017 +0100 > > Added a few more test inspired by the SL inlining tests. > > commit c9453c55f3360e3a867138d92fdd66b9bf93a530 > Merge: 18f66f4 60b1818 > Author: Boris Spasojevic > Date: Tue Feb 7 09:11:06 2017 +0100 > > Merge branch 'master' into tests/inlining > > commit 60b1818bee085341e23569c44deb5454fbb509b4 > Merge: 83a58e7 38e128b > Author: Gilles Duboscq > Date: Mon Feb 6 14:44:18 2017 -0800 > > [GR-2691] Refactored magic number to a named constant. > > commit 38e128bf668b5d2735222b8bdbcf6d6fee291714 > Author: Doug Simon > Date: Mon Feb 6 23:22:08 2017 +0100 > > fixed capitalization > > commit 83a58e75857f1ba333263df812d8815bd2161d16 > Merge: dac323d e70fb16 > Author: Tom Rodriguez > Date: Mon Feb 6 10:55:34 2017 -0800 > > [GR-2528] Stubs hang onto intermediate compiler state forever. > > commit dac323d62da179252b59f0c6c6c7aafcacc07585 > Merge: 39ed5ab b71e065 > Author: Tom Rodriguez > Date: Mon Feb 6 10:16:40 2017 -0800 > > [GR-2663] Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported(). > > commit 8e935d8dd9f5a301e89bcef488b9fdcfe56a60ce > Author: Doug Simon > Date: Mon Feb 6 19:03:44 2017 +0100 > > refactored magic number to a named constant > > commit 39ed5ab670fbb3493ed2907b3289934b5577d5c0 > Merge: 34dc32c ca6b5e8 > Author: Aleksandar Prokopec > Date: Mon Feb 6 07:31:51 2017 -0800 > > [GR-2686] Rename extra.value.name field to metric.object. > > commit ca6b5e81d90cba476e833023ca152bf88d64ebad > Author: Aleksandar Prokopec > Date: Mon Feb 6 15:33:44 2017 +0100 > > Rename extra.value.name field to metric.object. > > commit 53425c33a3055d9614cbdfa7ca27ec08fe6cf180 > Author: David Leopoldseder > Date: Mon Feb 6 15:35:09 2017 +0100 > > [ci] Add g1gc weekly benchmarks. > > commit c26fc090a79f6a3a76ac64f55974ee0695877b79 > Author: David Leopoldseder > Date: Mon Feb 6 15:34:36 2017 +0100 > > [feature] Add g1gc jvm config. > > commit 18f66f4e9c59ec178ff87067ef0ca5f819267631 > Author: Boris Spasojevic > Date: Mon Feb 6 15:28:25 2017 +0100 > > Fixed the SuppressWarnings annotation. > > commit ff50da30517c0cbbf49ffc314790a8b54541886a > Author: Boris Spasojevic > Date: Mon Feb 6 15:10:07 2017 +0100 > > Merged target instructions in to one class and one map. > > commit d810f2c84799a0755b7d42512330f6212e0b65d7 > Author: Boris Spasojevic > Date: Mon Feb 6 14:50:42 2017 +0100 > > Making fields final and a bit of cleanup. > > commit f1a94d4559d4fcf4fb58887c99467831ee62b0c4 > Author: Boris Spasojevic > Date: Mon Feb 6 14:42:09 2017 +0100 > > Fixed a typo. > > commit 5943dec3a829d40906b2847327f746934201258a > Author: Boris Spasojevic > Date: Mon Feb 6 14:30:34 2017 +0100 > > Fixed the expected/actual order in assertions. > > commit 56d90e3085e76b47658a716687d6f391978fbab8 > Author: Boris Spasojevic > Date: Mon Feb 6 14:26:57 2017 +0100 > > Added a test to confirm inlining if size * number of call sites is close to limit. > > commit 0635641eec81a202a3b7a2bc0a36b745e4e51529 > Author: Boris Spasojevic > Date: Mon Feb 6 14:06:46 2017 +0100 > > Moving each period to end of line. > > commit b5b4ff98c59c57b8730063c5485995ec4598c7cd > Author: Boris Spasojevic > Date: Mon Feb 6 14:01:15 2017 +0100 > > Suppress unused warning for override scope. > > commit 34dc32ce647bb0732428854049b0c12cdbeab35a > Merge: 82e9913 f725f5a > Author: David Leopoldseder > Date: Mon Feb 6 04:57:14 2017 -0800 > > [GR-1501] Support OSR with locks on the stack. > > commit f725f5a1a7d924098e9cca5ff485c0778a8a903e > Author: David Leopoldseder > Date: Wed Jan 25 17:59:28 2017 +0100 > > [feature] osr: support OSR with locks > > Make sure all monitor operations on the same MonitorIdNode are locking the same object when building the OSR entry point > > Remove liveness changes and handle final barrier in OSR compiled constructor > > commit 74ff69efc0b036d2cba0f43dec058dcbdc099eda > Author: Boris Spasojevic > Date: Mon Feb 6 10:45:20 2017 +0100 > > Making TruffleInliningTest an abstract class. > > commit 92741bedf4274fdab7f15da4ffcf9851bd377974 > Author: Boris Spasojevic > Date: Mon Feb 6 10:17:50 2017 +0100 > > Extract policy as a field to enable testing different policies. > > commit d73100773fb990fe5bcb4918c58def77a2cb75b2 > Author: Boris Spasojevic > Date: Mon Feb 6 10:05:39 2017 +0100 > > Upgraded and assert. > > commit 0e38631f3579a65137fcfd0420bc5c895a1ba694 > Author: Boris Spasojevic > Date: Mon Feb 6 10:03:00 2017 +0100 > > Test the ability to disable inlining by flag. > > commit 82e9913cb31b93399402e1b0d312a49b0556194d > Merge: 7b3aa72 9dd0eed > Author: Doug Simon > Date: Sun Feb 5 12:57:57 2017 -0800 > > [GR-2664] Avoid unnecessary annotation reification. > > commit 9dd0eedd13f13086a92704b107176f78bd7e7b76 > Author: Doug Simon > Date: Sat Feb 4 17:17:55 2017 +0100 > > moved annotation retrieval to exception path > > commit b71e0657e760003a1aa101abdb9a167c5e963c79 > Author: Igor Veresov > Date: Mon Jan 30 23:23:13 2017 -0800 > > Fix types in GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported() > > commit 7b3aa723c71960b1ae7d80463a5186826842b3f5 > Merge: 6b198a9 51dc4ac > Author: Roland Schatz > Date: Fri Feb 3 07:16:06 2017 -0800 > > [GR-2657] Add support for Truffle on Aarch64 (#248). > > commit 0fdb0ff41c202c8a6934f1cf656174db79e88c62 > Author: Boris Spasojevic > Date: Fri Feb 3 15:02:09 2017 +0100 > > Cut dependency to GraalTest. > > commit c19ca721cf4552a7d2a5f391accbf25f2538a343 > Author: Boris Spasojevic > Date: Fri Feb 3 14:52:09 2017 +0100 > > Cut dependency to GraalTest. > > commit 4c631fd7ee149ee8b5c27d6e85d88e055a5c1c46 > Author: Boris Spasojevic > Date: Fri Feb 3 14:46:34 2017 +0100 > > Maximize Truffle Compilation Threshold. > > commit 29538a8bca0a0f5b18c2e8e37b7249947186087c > Author: Boris Spasojevic > Date: Fri Feb 3 14:35:45 2017 +0100 > > Separate tests (BasicTruffleInliningTest) and base class (TruffleInliningTest). > > commit 5bb09aa1700d5889915eaba5e30efb4439ba52fd > Author: Boris Spasojevic > Date: Fri Feb 3 12:32:03 2017 +0100 > > Removed duplicate test. > > commit 48f99a4f16d37b477ae9729638efc83735d5c56e > Author: Boris Spasojevic > Date: Fri Feb 3 12:30:24 2017 +0100 > > Use custom formatting when using the builder. > > commit 098998155b53eb27b8c0ab5b1d086b0423e0eb63 > Author: Boris Spasojevic > Date: Fri Feb 3 12:06:37 2017 +0100 > > Changed the default execution count for call sites to 0. > > commit 4b71ef3a9353a45e06ec77252494b13ccebc7a40 > Author: Boris Spasojevic > Date: Fri Feb 3 11:53:29 2017 +0100 > > Fixed some Checkstyle errors. > > commit 21d740d27beddb73d5fc3ed10c4576ddef4a00d5 > Author: Boris Spasojevic > Date: Fri Feb 3 11:47:54 2017 +0100 > > Removed a few unused variables. > > commit a158cfd4831521d7c6afa4d1886df6e330f7cbcd > Author: Boris Spasojevic > Date: Fri Feb 3 11:42:59 2017 +0100 > > Removed redundant cast. > > commit 6fc3f0d8db3098621039fb2b84378659f78b60c5 > Author: Boris Spasojevic > Date: Fri Feb 3 11:05:39 2017 +0100 > > Adding support to control frequency. > > commit 6b198a931fb9c3fd7509eb74f88b1416fec7b802 > Merge: fd19afc ea4de57 > Author: Boris Spasojevic > Date: Fri Feb 3 00:04:02 2017 -0800 > > [GR-1552] Use 2 compilation threads by default, regardless of processor core count. > > commit 04888ab5cdaee42f249c2fdd32e9bb45db25eaf6 > Author: Boris Spasojevic > Date: Fri Feb 3 08:53:54 2017 +0100 > > Removed build method with argument. > > commit fd19afc72851dc6b6f1a13bf0dd77b3f9c4ccc9f > Merge: eeead7d eb19756 > Author: Kevin Menard > Date: Thu Feb 2 16:51:19 2017 -0800 > > [GR-2168] Update to latest ci-overlays. > > commit 51dc4ac45f881a628ae34425c591a528846d4b07 > Merge: 39124f8 eeead7d > Author: theRealAph > Date: Thu Feb 2 18:20:46 2017 +0000 > > Merge remote-tracking branch 'master/master' into aarch64-truffle > > commit 39124f80d8de1aebd3c6b7770c637dd93dbd4159 > Author: theRealAph > Date: Thu Feb 2 17:14:12 2017 +0000 > > Chackstyle fix. > > commit e545e0dbbbfaf582ad33b4c12be9f25084f2e0a2 > Author: theRealAph > Date: Thu Feb 2 17:03:31 2017 +0000 > > Minor fix for dependencies and tests. > > commit eb19756edb9f74ff4387e09295149cab799b459a > Author: Kevin Menard > Date: Thu Feb 2 11:17:13 2017 -0500 > > Update to latest ci-overlays. > > commit aa7b73b04ba966011dd726575cedf5d39cbf9607 > Author: Boris Spasojevic > Date: Thu Feb 2 15:28:28 2017 +0100 > > Removed duplicate test and renamed another. > > commit 410784bd3f6f98d0a4d1f8e4f43b5252f1e7e92c > Author: Boris Spasojevic > Date: Thu Feb 2 15:23:30 2017 +0100 > > A few more tests testing deep and wide call graphs. > > commit 75d71f23c4f23d944241ba30468304918667cc1c > Author: Boris Spasojevic > Date: Thu Feb 2 14:27:11 2017 +0100 > > Removed unused frame slot. > > commit 09d0aac816d6aad1c02b85a9159a7a4cf9fa47fd > Author: Boris Spasojevic > Date: Thu Feb 2 14:15:03 2017 +0100 > > Added testIndirectRecursiveInline. > > commit eeead7d36a3d3559a222c27ad25b8b6ca18f8ac3 > Merge: 9f6de20 fb7bc56 > Author: Doug Simon > Date: Thu Feb 2 05:14:11 2017 -0800 > > [GR-2599] Revert back to jvmci-0.23 for CI. > > commit c8e9a6f65cb6693433d78ae87bcb085c66d3016c > Author: Boris Spasojevic > Date: Thu Feb 2 13:56:03 2017 +0100 > > Introducing the TruffleInliningTest class. > > commit fb7bc5684af90202ab79eaf33408cdfe71e0f9d6 > Author: Doug Simon > Date: Wed Feb 1 12:38:41 2017 +0100 > > revert back to jvmci-0.23 for CI > > commit 9f6de2086654be3138018ae143cc79a0346b7566 > Merge: 948bdb1 97bb567 > Author: David Leopoldseder > Date: Thu Feb 2 04:46:42 2017 -0800 > > [GR-2394] Schedule used to verify a valid graph should not mutate the graph. > > commit 948bdb10689ecd5be7cc517a65ab7ef865ec6fd4 > Merge: f60c2af fb1573c > Author: David Leopoldseder > Date: Thu Feb 2 03:54:11 2017 -0800 > > [GR-2626] Block iteration compilation alarm bailout must be permanent. > > commit 97bb567bfa8029a8f5504a76e614e25df423dc0c > Author: David Leopoldseder > Date: Wed Jan 18 17:08:31 2017 +0100 > > [fix] GraphOrder: Schedule used to verify a valid graph should not mutate the graph > > commit fb1573c4fc181986f4b2e348c2c6c39d83083401 > Author: David Leopoldseder > Date: Thu Feb 2 11:27:09 2017 +0100 > > [fix] Block iteration compilation alarm bailout must be permanent. > > commit f60c2af4731aade509b1c199932849d53548b40e > Merge: 2510c49 4698fcd > Author: Aleksandar Prokopec > Date: Wed Feb 1 13:54:41 2017 -0800 > > [GR-2574] Add instructions for branch instrumentation. > > commit 4698fcdc57eafc8def6083dfbad023c9c5483b17 > Author: Aleksandar Prokopec > Date: Mon Jan 30 15:29:06 2017 +0100 > > Add instructions for branch instrumentation. > > commit 2510c49fe053e6325b615b0b73d3ba9cba691f46 > Merge: 0890343 3a13148 > Author: Tom Rodriguez > Date: Wed Feb 1 12:22:35 2017 -0800 > > [GR-2620] Add high level optimization for String.indexOf. > > commit 3a13148bb48b5ab6990fe91bf74fa7cc4d0f7433 > Author: Tom Rodriguez > Date: Thu Dec 8 12:04:23 2016 -0800 > > Add high level optimization for String.indexOf on constant strings > > commit 0890343e16fc45b4e8251418958f02eb1e0fbf05 > Merge: ce50d02 cf66d51 > Author: David Leopoldseder > Date: Wed Feb 1 09:53:17 2017 -0800 > > [GR-2600] ControlFlowGraph visitDominatorTreeDeferLoopExits deferres exits for invalid loops. > > commit 9aeaff2b6cb62eb9b4d01c46ee366bb584e1b2a1 > Merge: 99e2248 ce50d02 > Author: theRealAph > Date: Wed Feb 1 16:57:08 2017 +0000 > > Merge remote-tracking branch 'master/master' into aarch64-truffle > > Conflicts: > graal/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java > graal/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java > > commit cf66d51211bb2f06fc2064b833790c886b87e804 > Author: David Leopoldseder > Date: Wed Feb 1 13:06:50 2017 +0100 > > [fix] ControlFlowGraph: Fix deferred exit traversal deferred loop computation. > > commit ce50d0238efb67a2fdf939678fcec2f1b76a7e9c > Merge: 0c9091a 2f5ed18 > Author: David Leopoldseder > Date: Wed Feb 1 06:38:23 2017 -0800 > > [GR-2605] Revert DynamicPiNode removal. > > commit 2f5ed181f99699394a7721509f358cdbb0218c01 > Author: David Leopoldseder > Date: Wed Feb 1 14:10:22 2017 +0100 > > Revert "Remove DynamicPiNode (PiNode if beneficial should be inserted on demand)". > > commit ea4de5792dd9ca66020677210e410cb99ca7dd32 > Author: Boris Spasojevic > Date: Wed Feb 1 09:13:46 2017 +0100 > > Use 2 compilation threads if there are 4 or more available processors. > > commit 0c9091a5a9a5bd3d4862c7df630244e19cab368d > Merge: a2c9f4d 8be794e > Author: Thomas W?rthinger > Date: Tue Jan 31 21:20:01 2017 -0800 > > [GR-2247] Remove unused parts of the code (salver, instrumentation, Graal deopt stubs). > > commit 8be794e2d7740d070cea792e7aeeebd2cd1ff3fc > Author: Thomas W?rthinger > Date: Tue Jan 31 17:21:43 2017 +0100 > > Remove DynamicPiNode (PiNode if beneficial should be inserted on demand). Reduce usage patterns of GuardedValueNode to only without stamp and use PiNode in other cases. > > commit d7ea41c93a15946e0f096b591b530eb5667698e4 > Author: Thomas W?rthinger > Date: Mon Jan 30 20:22:24 2017 +0100 > > Remove unused Graal stubs for deoptimization. Remove unused node intrinsics. > > commit 5028bbd39074609dfcfd4943a67b829677f369bb > Author: Thomas W?rthinger > Date: Mon Jan 30 19:28:06 2017 +0100 > > Move SnippetAnchorNode from HotSpot-specific project to general project. > > commit 7d281217e61a9b7621179c102fa2b5cd500d2568 > Author: Thomas W?rthinger > Date: Mon Jan 30 19:09:49 2017 +0100 > > Temporarily remove InstrumentationPhase and associated functionality. > > commit 35f0fcef088c323a89fa982c97074147b024510a > Author: Thomas W?rthinger > Date: Mon Jan 30 18:31:35 2017 +0100 > > General clean up. Remove unused salver project. > > commit a2c9f4dabd2f1dca73727f7fa08e56d45221c8a2 > Merge: 36d1fc5 18ee8e8 > Author: Doug Simon > Date: Tue Jan 31 10:35:16 2017 -0800 > > [GR-2595] Fix mx version used in CI. > > commit 36d1fc586c855109c41d4acc4d3d917871f454c4 > Merge: ffe25b8 5fa9408 > Author: Doug Simon > Date: Tue Jan 31 09:03:05 2017 -0800 > > [GR-2593] Cache methods for lookup in ClassfileBytecodeProvider. > > commit ffe25b87d5f22d9b2f7d351f5775f8d9e75e20e4 > Merge: 9d75033 4b68038 > Author: Doug Simon > Date: Tue Jan 31 08:52:04 2017 -0800 > > [GR-2440] Removed reference to Method::_jfr_towrite. > > commit 18ee8e8933c0e19bff72ef07e69e2a952bac1ca4 > Author: Doug Simon > Date: Tue Jan 31 16:50:25 2017 +0100 > > fix mx used in CI to a specific commit > > commit 4b68038ceb3c72d2f8670a76e6a69f3643900da1 > Author: Doug Simon > Date: Fri Jan 20 14:50:41 2017 +0100 > > Method::_jfr_towrite was removed by JDK-8171960 > > commit 5fa9408ff9afe596e45a08ead284a5c2f317059a > Author: Doug Simon > Date: Tue Jan 31 16:22:44 2017 +0100 > > cache methods for lookup in ClassfileBytecodeProvider > > commit 9d7503325342a3570eda5cbff22c469ea344d991 > Merge: 62cbd52 8011c0f > Author: Doug Simon > Date: Tue Jan 31 06:06:48 2017 -0800 > > [GR-2545] Add fast path for inlining trivial accessors. > > commit 62cbd528cca628739a1a77c13d1fe453a076c248 > Merge: 6224cc5 f058bfa > Author: Boris Spasojevic > Date: Tue Jan 31 05:14:43 2017 -0800 > > [GR-2444] Rewrite SL Truffle tests to not require background compilation. > > commit 8011c0fa6da86c4b5114b9da619606f2c188fa0c > Author: Doug Simon > Date: Thu Jan 26 23:39:11 2017 +0100 > > added BytecodeParser fast path for inlining accessors > > commit 6224cc5e406256ea92fe619f16353946eeb77bcc > Merge: ca81523 4f86a9c > Author: Tom Rodriguez > Date: Mon Jan 30 17:29:58 2017 -0800 > > [GR-2580] Add missing ValueNode import for generated match rules. > > commit e70fb16e4b76a6add5b6984fd3cf5cf3d45844a4 > Author: Tom Rodriguez > Date: Tue Jan 24 11:43:22 2017 -0800 > > Stubs hang onto intermediate compiler state forever > > commit 4f86a9c2d968880f1286af7f3d58ca3383531df0 > Author: Tom Rodriguez > Date: Mon Jan 30 12:12:47 2017 -0800 > > Add missing ValueNode import for generated match rules > > commit 41d3dc962874742e925bb051f508f74e26ce07ce > Author: Christian Wimmer > Date: Mon Jan 30 16:55:46 2017 -0800 > > Do not use GLOBAL option values in debug and graph dumping code > > commit f058bfa2c51da5b88733a44d1b8f4522e343525c > Author: Boris Spasojevic > Date: Mon Jan 30 17:07:50 2017 +0100 > > Removed waitForCompilation from callUntilOptimized. > > commit 7e7c9f24a7ec6047b4f52531305bbad519b5efc5 > Author: Boris Spasojevic > Date: Mon Jan 30 17:06:59 2017 +0100 > > Removed waitForOptimization from SL files. > > commit c05c3c291185142b2c4fbd56933ec71f3d9e0700 > Author: Boris Spasojevic > Date: Mon Jan 30 17:06:21 2017 +0100 > > SLTruffleGraalTestSuite extends TestWithSynchronousCompiling. > > commit ca815239f932dd28e0b8a32fbef8844b2489bc00 > Merge: d94ca56 cb2c76d > Author: Aleksandar Prokopec > Date: Mon Jan 30 06:20:58 2017 -0800 > > [GR-2135] Add profiling for @TruffleBoundary-annotated methods. > > commit cb2c76d57e4b213ade8451f3c2a99ce9a82dff5f > Author: Aleksandar Prokopec > Date: Mon Jan 30 14:50:09 2017 +0100 > > Prune and merge instrumentation options, and make instrumentation filters all by default. > > commit d94ca5682413eb7fa1292247e2bd2a7e33ac282a > Merge: 177563e 0051351 > Author: Christian Humer > Date: Mon Jan 30 05:00:31 2017 -0800 > > [GR-1766] Remove callnode frame argument. > > commit 005135140de06ff99f8479f1789073108e865c62 > Author: Christian Humer > Date: Mon Jan 30 13:39:56 2017 +0100 > > Remove frame argument from call node methods. > > commit 99e224842e06e6f0db8f94c9e501d44b8a0fb119 > Author: theRealAph > Date: Mon Jan 30 12:03:37 2017 +0000 > > Fix dependencies for AArch64 truffle. > > commit 177563e51882bc2a676c6c9d298325af1baf6f4b > Merge: 5e0015e 6c10037 > Author: Felix Kaser > Date: Mon Jan 30 02:58:23 2017 -0800 > > [GR-2572] Remove git for darwin build. > > commit 7d888f7189ab3eca4cedb6ff9666db8284185d7b > Author: Boris Spasojevic > Date: Mon Jan 30 11:14:58 2017 +0100 > > Use 2 compilation threads by default, regardless of processor core count. > > commit 5e0015ea87fe92c527da02967e2b00d4947ca624 > Merge: f137082 3b1641f > Author: Boris Spasojevic > Date: Sat Jan 28 02:31:58 2017 -0800 > > [GR-2444] Rewrite Truffle tests to not require background compilation. > > commit 06f33371f40f1ccb18d8da07c09a45586f32438e > Author: Christian Wimmer > Date: Fri Jan 27 19:40:07 2017 -0800 > > Remove StableOptionKey, OptionKey.setValue > > commit 4e886be3270d02e280c028c8c580735e58f3a69f > Author: Christian Wimmer > Date: Fri Jan 27 18:15:43 2017 -0800 > > Truffle must constant fold flag UseFrameWithoutBoxing during partial evaluation > > commit e0475d007d5521b1667b594c7a90a6bd62727bef > Author: Christian Wimmer > Date: Fri Jan 27 18:15:00 2017 -0800 > > Use standard way to check for disallowed null argument > > commit f137082e685e3827cb498cf16aa04d43092042d0 > Merge: dab40f5 7b6931d > Author: Thomas W?rthinger > Date: Fri Jan 27 09:18:20 2017 -0800 > > [GR-2506] Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. > > commit dab40f5772d149ac62f39cc476a52cdd58ab5366 > Merge: 2ba2150 f35e9a4 > Author: Gilles Duboscq > Date: Fri Jan 27 08:35:41 2017 -0800 > > [GR-2362] Skip unnecessary Pi nodes when lowering array length. > > commit 7b6931dd5e3f90f44139350ad3777b722245f4dc > Author: Thomas W?rthinger > Date: Fri Jan 27 16:12:05 2017 +0100 > > Add new test cases to IntegerStampTest and fix a missing canonicalization when creating IntegerStamps. > > commit f35e9a49e15ef59b9c3795f4918ba724a093e069 > Author: Gilles Duboscq > Date: Thu Jan 26 18:18:29 2017 +0100 > > [GR-2362] Skip unnecessary Pis when lowering array length > > This should help ensure that various array length of the same array > common-out. > Added `GraphUtil.skipPiWhileNonNull` > Also factor out the code used to create array length reads in > `DefaultJavaLoweringProvider`. > > commit 3b1641f4c29590b93468c078a83d00b5ef973413 > Author: Boris Spasojevic > Date: Fri Jan 27 15:41:26 2017 +0100 > > Removed useless throws. > > commit 0abbe7d37d5ab491b5bcf98e1b53a5daf6f9a5f8 > Author: Boris Spasojevic > Date: Fri Jan 27 15:29:18 2017 +0100 > > Fixed imports. > > commit 6c100373d5561b010ca12c07827a1c68c1f8761f > Author: Felix Kaser > Date: Fri Jan 27 06:01:55 2017 -0800 > > remove git for darwin build > > it's installed system wide already > > commit 35018a6416c5ac6051698f504199daf714e6c222 > Author: Boris Spasojevic > Date: Fri Jan 27 14:58:36 2017 +0100 > > Fixed testOuterInvalidationTriggersOSR to work when not using background > compilation. > > commit 4f4f34e1c229937d97e9c45e42f45a351d5f0e96 > Author: Aleksandar Prokopec > Date: Thu Jan 26 16:20:18 2017 +0100 > > Add InstrumentTruffleBoundariesPhase. > > commit f97dd08f6ac358f0c1bf01a4a20ce34a715d3776 > Author: Aleksandar Prokopec > Date: Thu Jan 26 13:08:06 2017 +0100 > > Refactor common instrumentation functionality from branch instrumentation. > > commit 2ba21503435fcf890335470acae67f6f2574f0cd > Merge: 6415e5c c6a1f0d > Author: Codrut Stancu > Date: Thu Jan 26 14:01:32 2017 -0800 > > [GR-2544] Unsafe access of edges should use wrappers in Edges class. > > commit 6415e5ccc3c8a506290578f35e2d9d34ae4f98fc > Merge: 70e8985 eae4712 > Author: Doug Simon > Date: Thu Jan 26 13:14:21 2017 -0800 > > [GR-2536] Reduce dynamic usage of ResolvedJavaField.getName. > > commit bf6ade69b8c4662e878e3b806e60837d0398fcbd > Author: Thomas W?rthinger > Date: Thu Jan 26 22:07:11 2017 +0100 > > Fix calculation of join IntegerStamp and refactor to always take mask and bounds into account in constructor. > > commit eae4712e581390fa1aa8691863ac6fc4d816c495 > Author: Doug Simon > Date: Thu Jan 26 15:13:44 2017 +0100 > > replace HashMap with EconomicMap > > commit 45e7fbd23f64689e2d1c0f633569cd296d4cb12f > Author: Doug Simon > Date: Thu Jan 26 14:30:12 2017 +0100 > > reduce dynamic usage of ResolvedJavaField.getName() > > commit c6a1f0d2ea034a8360badab8adb6ea8f54fdca0b > Author: Codrut Stancu > Date: Thu Jan 26 12:27:45 2017 -0800 > > [GR-2544] Unsafe access of edges should use wrappers in Edges.class. > > commit 70e8985f0857ae07b8b50d8434079ec3a89daaf6 > Merge: c1ed814 6d21cb6 > Author: Gilles Duboscq > Date: Thu Jan 26 08:58:21 2017 -0800 > > [feature] Allows to force `ANY_LOCATION` for a truffle unsafe store plugin > > commit 6d21cb6c60d67b484f3de98d5a5628571bae2430 > Author: Gilles Duboscq > Date: Fri Jan 13 16:34:55 2017 +0100 > > [GR-2482] Allow to force `ANY_LOCATION` for a truffle unsafe store plugin > > Adds a flag to `UnsafeStore` to avoid canonicalizations that would lose > `ANY_LOCATION`. > Truffle unsafe store plugins can have a constant that represents this > forced `ANY_LOCATION`. `null` still represents the non-forced > `ANY_LOCATION`. > > commit c1ed814e1b0b943c10a4ed9a63a79282cd35b8a9 > Merge: 4b8d2f7 e0339c2 > Author: Stefan Anzinger > Date: Thu Jan 26 06:16:14 2017 -0800 > > [GR-2534] Use AllocatableValue in SPARC LIR instructions whenever possible. > > commit 4b8d2f7ce7f624cc31a5d444254587f7e2bbd70a > Merge: b416c07 eef3827 > Author: Lukas Stadler > Date: Thu Jan 26 06:12:49 2017 -0800 > > [GR-2516] Cleanups/documentation in PEA > > commit eef3827797d57377140057967235d1f26d4cfc66 > Author: Lukas Stadler > Date: Wed Jan 25 17:36:03 2017 +0100 > > cleanups in PEA > > commit 5e7e6510c50e09356e0f22dc38210fc6083dce63 > Author: Lukas Stadler > Date: Wed Jan 25 17:03:45 2017 +0100 > > use ?null? to represent default values in VirtualObjectState > > commit e0339c22bbceffefb58ed4ad1a61a3e7edbe1244 > Author: Stefan Anzinger > Date: Thu Jan 26 13:30:34 2017 +0100 > > [fix] Use AllocatableValue in SPARC LIR instructions whenever possible. > > commit b416c07f65d0db9548d77d85b8372b6ad0c7055c > Merge: 4159a17 1229053 > Author: Doug Simon > Date: Thu Jan 26 02:23:21 2017 -0800 > > [GR-1984] CompilerWatchdog: Swallow VMErrors. > > commit 4159a1753cec341089ca35fc1d56dab63d3c355e > Merge: 23acd8b c3b322e > Author: Doug Simon > Date: Thu Jan 26 02:21:37 2017 -0800 > > [GR-2407] CompilationWatchDog: Disable per default. > > commit 1229053e031a7eff870a9900e31464a79e3d09aa > Author: David Leopoldseder > Date: Thu Jan 26 10:11:36 2017 +0100 > > [fix] CompilerWatchdog: Swallow VMErrors. > > commit c3b322e8efd55aae8b278dcc9a5589403abee148 > Author: David Leopoldseder > Date: Thu Jan 26 10:07:10 2017 +0100 > > [feature] Bootstrap: Enabled CompilationWatchDog explicitly during bootstrap. > > commit 589e1b50f588e2449ce57812fab0fb45832dddbe > Author: David Leopoldseder > Date: Mon Jan 23 17:32:26 2017 +0100 > > [fix] CompilationWatchDog: Disable per default & increase trace interval and number of fatal stack traces. > > commit 23acd8b195a3ccbe8ef080c4690567afc9b1fe8c > Merge: 99dcac4 f2f59b1 > Author: Doug Simon > Date: Wed Jan 25 14:45:13 2017 -0800 > > [GR-2462] [GitHub PR #245] Avoid zero-shift with AOT. > > commit 99dcac46adc51bbeb3a7ea00c47a1e66bad5e7a2 > Merge: 71af6bb 1f884e8 > Author: Doug Simon > Date: Wed Jan 25 14:36:06 2017 -0800 > > [GR-2526] Fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found. > > commit f2f59b1485dd4968a33f3965a71cb448ea65e6f4 > Author: Igor Veresov > Date: Sat Jan 21 11:31:06 2017 +0300 > > Avoid zero-shift compressed oops for AOT code > > commit 1f884e81922e5d9c5c690c3866a50b47c6b65b05 > Author: Doug Simon > Date: Wed Jan 25 22:27:16 2017 +0100 > > fixed regression in VerifyUsageWithEquals and fixed the problems it subsequently found > > commit cc9b186f28d1d282cafbb40829218c3446560f13 > Author: theRealAph > Date: Wed Jan 25 18:13:50 2017 +0000 > > Enable AArch64 native calls for truffle. > > commit 71af6bb834013817a6057f8517fd27923d7f7b07 > Merge: 69dcf99 3b5290f > Author: Vojin Jovanovic > Date: Wed Jan 25 09:24:14 2017 -0800 > > [GR-2498] collect SVM compilation logs > > commit 3b5290f72bf1105a116339ca15e65311eda2ea11 > Author: Vojin Jovanovic > Date: Wed Jan 25 17:51:47 2017 +0100 > > [doc] explain python for intellij > > commit 96d56e5fc2d3b50f738edb26f5bc528d89aa8731 > Author: Vojin Jovanovic > Date: Wed Jan 25 16:40:56 2017 +0100 > > [ci] collect SVM compilation logs > > commit 2f82f2eea5d72707f2201217f1e4c01b3037dc32 > Author: Boris Spasojevic > Date: Wed Jan 25 16:47:56 2017 +0100 > > OptimizedOSRLoopNodeTest extends TestWithSynchronousCompiling. > Ignore testOSRFrameSlotChangeDuringOSR. > > commit 69dcf99730429dd235bbc33bab3e88c58f1b6fd4 > Merge: 92e1f5e 0a7b8f2 > Author: Aleksandar Prokopec > Date: Wed Jan 25 06:06:38 2017 -0800 > > [GR-2477] Further improve stability of DaCapo measurements > > commit dc80887f4c8e6f1b04e42e2eb51acfbc8f4bb088 > Author: Boris Spasojevic > Date: Wed Jan 25 14:13:48 2017 +0100 > > Updated OptimizedCallTargetTest to sublcass TestWithSynchronousCompiling. > > commit 1a39724354ee9add1aa72bb03808b5e05c71b4a5 > Author: Boris Spasojevic > Date: Wed Jan 25 14:11:46 2017 +0100 > > Updated ExplodeLoopBlockDuplicationTest to subclass > TestWithSynchronousCompiling. > > commit de63397eb82668c07484a4a3f10fb0974d4968ca > Author: Boris Spasojevic > Date: Wed Jan 25 14:09:51 2017 +0100 > > Introducing TestWithSynchronousCompiling. > > This class serves as a superclass for Truffle tests that require synchronous > (i.e. no background) compilation. > > commit 0a7b8f218b6d242ad7beea18151a78d6b1be2cee > Author: Aleksandar Prokopec > Date: Wed Jan 25 11:03:53 2017 +0100 > > Increase the number of warmup runs used for averaging the result. > > commit 92e1f5ed5ac6014ece7cad342e5bc59e4c6f162c > Merge: 576bb34 0d8833b > Author: Thomas W?rthinger > Date: Tue Jan 24 12:22:46 2017 -0800 > > [GR-2502] PEA object identity improvement at merges and loops. > > commit 0d8833be1692c5a7165c575b92d5ea73cc2d15fc > Author: Lukas Stadler > Date: Tue Aug 9 15:02:02 2016 +0200 > > more extensive checks to determine whether object identity survives in PartialEscapeClosure > > commit e7bdeb7cce18027db9dfbc11b556a8b117a379e8 > Author: Lukas Stadler > Date: Tue Aug 9 15:00:39 2016 +0200 > > remove broken (and unused) Arrays.asList call in PartialEscapeClosure > > commit 576bb34268ff4215c7cfa529407182411478ea7f > Merge: 3654604 9cef763 > Author: Aleksandar Prokopec > Date: Tue Jan 24 06:04:35 2017 -0800 > > [GR-2477] Check if benchmark warmup iterations exist before computing the average. > > commit 9cef76322fa9aa069586c0aae65afbb349b1d4b2 > Author: Aleksandar Prokopec > Date: Tue Jan 24 14:38:47 2017 +0100 > > Check if benchmark warmup iterations exist before computing the average. > > commit 3654604bf93ddb89f5e6aab5662b6c4455218362 > Merge: faae2c4 0a78eaf > Author: Aleksandar Prokopec > Date: Tue Jan 24 04:38:48 2017 -0800 > > [GR-2483] Average out latest results on Renaissance. > > commit 0a78eaf353fc54a2f1cd1218852c44d7069f3b97 > Merge: c690a0e faae2c4 > Author: Aleksandar Prokopec > Date: Tue Jan 24 12:26:02 2017 +0100 > > Merge branch 'master' into fix/average-renaissance > > commit c690a0eabdc319077390b1e888b9d62fc76ecf66 > Author: Aleksandar Prokopec > Date: Mon Jan 23 18:41:21 2017 +0100 > > Average out latest results on Renaissance. > > commit 1aebf17977a721d5dfa61eaa3d7a44a8ad478b5d > Merge: 264d4f8 faae2c4 > Author: Doug Simon > Date: Tue Jan 24 12:03:18 2017 +0100 > > Merge branch 'master' into topic/non-static-options > > commit 264d4f83dcd8eaee2d0363ac932000efd43c94c5 > Merge: 579d29b a9e612b > Author: Doug Simon > Date: Tue Jan 24 00:57:03 2017 +0100 > > Merge branch 'master' into topic/non-static-options > > commit faae2c42c7a6f8c3c05a3f1433f5fab3635676f1 > Merge: 7ea0a75 20ad9a0 > Author: Thomas W?rthinger > Date: Mon Jan 23 19:37:37 2017 -0800 > > [GR-2450] Do not assume array length input to AbstractNewArrayNode to be >= 0. > > commit 7ea0a7503d37ba8b375a4c2c83f239b0e82282ef > Merge: 072a47f 1c8c5ec > Author: Thomas W?rthinger > Date: Mon Jan 23 19:24:18 2017 -0800 > > [GR-2456] New approach to dominator conditional elimination phase. > > commit 1c8c5ec8da477187f372cfb514702651b667b5be > Author: Thomas W?rthinger > Date: Tue Jan 24 02:19:16 2017 +0100 > > Reduce usage of java.util.ArrayList for dominator tree data structure and in new conditional elimination phase. > > commit ad2fd50cb65f386708562eb242516374de25a1ca > Author: Thomas W?rthinger > Date: Mon Jan 23 00:17:48 2017 +0100 > > New approach to dominator conditional elimination phase. > > commit 072a47fc236b94d39f1945b00ef8ee54a82c4255 > Merge: a9e612b c5cd1e2 > Author: Tom Rodriguez > Date: Mon Jan 23 16:20:46 2017 -0800 > > [GR-2431] Use NodeEventScope for tracking inlining graph changes > > commit c5cd1e22d66a2aa6d248b1004874a9f14fa0a4e5 > Author: Tom Rodriguez > Date: Mon Dec 12 12:26:48 2016 -0800 > > Simplify tracking of nodes changed by inlining > > commit 579d29bf2400b007584f1e298f4a3771e5b412d2 > Author: Doug Simon > Date: Mon Jan 23 13:54:03 2017 +0100 > > EconomicMap may never called hashCode on keys > > commit a9e612b96b51d54583cc70e5c0fb38a863e6f42b > Merge: 83c63c7 8747569 > Author: Thomas W?rthinger > Date: Mon Jan 23 14:12:12 2017 -0800 > > [GR-2465] Improve EconomicMap, EconomicSet, and Pair utilities. > > commit 8747569833141f7a9248d72cc3a545301dcb179a > Author: Thomas W?rthinger > Date: Mon Jan 23 22:31:20 2017 +0100 > > Add more utilities to EconomicMap interface. Change ImmutableMapCursor to UnmodifiableMapCursor. > > commit 28321d92d862502e5cbe60ae2e2878449d8d0e12 > Author: Thomas W?rthinger > Date: Mon Jan 23 21:59:19 2017 +0100 > > Improve EconomicMap, EconomicSet, and Pair utilities. > > commit 83c63c73d68bebb7ea76efdc2632747234b5aff5 > Merge: 21a2b8a 2067d07 > Author: Aleksandar Prokopec > Date: Mon Jan 23 09:14:34 2017 -0800 > > [GR-2477] Compute average of last 20% of iterations reported in DaCapo. > > commit 2067d07a18ad6ffa4b4f628476c6d0440de39aeb > Author: Aleksandar Prokopec > Date: Mon Jan 23 15:08:03 2017 +0100 > > [fix] Compute average of last 20% of iterations reported in DaCapo. > > commit 1d3d549be6e359eb6867b394245d24c134f2bdea > Merge: 6e8740d 21a2b8a > Author: Doug Simon > Date: Mon Jan 23 13:23:23 2017 +0100 > > Merge branch 'master' into topic/non-static-options > > commit 6e8740de791654f665d89e2bece0a568bfa53038 > Author: Doug Simon > Date: Mon Jan 23 12:43:42 2017 +0100 > > merge fixes > > commit 21a2b8ad61d7443fac74efa87c37b924680eb9ce > Merge: 88ecb57 de50f19 > Author: Doug Simon > Date: Mon Jan 23 03:57:34 2017 -0800 > > [GR-2455] Update truffle import. > > commit 6dcd2f08eb1573f4c9851348eccd5c27fe5f23c6 > Merge: bbb7350 d993012 > Author: Doug Simon > Date: Sun Jan 22 22:57:10 2017 +0100 > > Merge branch 'master' into topic/non-static-options > > commit 88ecb5768b0bdb38e6585ecb54cf3b71f2979de7 > Merge: 3f09e66 1c826a3 > Author: Thomas W?rthinger > Date: Sun Jan 22 06:15:19 2017 -0800 > > [GR-2126] Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. > > commit 1c826a3511737a5a1f22c70dc2b4f65cfb5a2c42 > Author: Thomas W?rthinger > Date: Fri Jan 20 22:30:15 2017 +0100 > > Correctly rewire inputs to pi nodes when adopting guards in the dominator-based conditional elimination phase. > > commit 3f09e66b48db47cc01f3a158a61f0c40ada65c4a > Merge: d993012 b5ea038 > Author: Doug Simon > Date: Sun Jan 22 05:34:31 2017 -0800 > > [GR-2454] Remove invalid DebugTimer tests. > > commit de50f19e96e2f4d6d3de2cf79e3239a228866e73 > Author: Doug Simon > Date: Sun Jan 22 14:17:40 2017 +0100 > > update truffle import > > commit b5ea038574159a30428bc74d7368a8157bf5ed7e > Author: Doug Simon > Date: Sun Jan 22 14:11:17 2017 +0100 > > remove invalid DebugTimer tests > > commit d99301247326a30f6ddf1d7658ef5e6edc873c1b > Merge: d0a2800 c2d5d89 > Author: Thomas W?rthinger > Date: Sat Jan 21 05:24:12 2017 -0800 > > [GR-2390] Avoid need for placeholder variable as they represent mutable static state. > > commit c2d5d89bc9e504c2a4a23f0116bfb351e5ea16c9 > Author: Thomas W?rthinger > Date: Sat Jan 21 03:32:19 2017 +0100 > > Change the API of PhiNode#singleValue and PhiNode#singleBackValue to avoid need for marker return value. > > commit bc68ed9567c049ba524fa53fd887ea0478953f98 > Author: Thomas W?rthinger > Date: Sat Jan 21 03:11:29 2017 +0100 > > Remove placeholder node Graph#PLACE_HOLDER. > > commit 20ad9a04b287a78809ee76d96ebf622ce2157869 > Author: Thomas W?rthinger > Date: Sat Jan 21 02:46:05 2017 +0100 > > Do not assume array length input to AbstractNewArrayNode to be >= 0. > > commit d0a280059b27efaa8df6007a183031f64ecae476 > Merge: c295f9b 127a87a > Author: Thomas W?rthinger > Date: Fri Jan 20 13:36:31 2017 -0800 > > [GR-2387] Allow metaspace constants to inline into compares. > > commit c295f9b498e327be9ffa418936d03d7306c4fc67 > Merge: 30498e7 b48ced9 > Author: Thomas W?rthinger > Date: Fri Jan 20 12:23:21 2017 -0800 > > [GR-2427] Remove Graph#addWithoutUniqueWithInputs. > > commit 30498e77c6d83df754f074e0bedb8c5502b7b2b5 > Merge: dca1fda a9410de > Author: Christian Humer > Date: Fri Jan 20 09:12:08 2017 -0800 > > Increase timeout for compilations in OptimizedCallTargetTest. > > commit a9410decba0097ad45d289ad032ca6df14c39b12 > Author: Christian Humer > Date: Fri Jan 20 17:49:40 2017 +0100 > > Increase timeout for compilations in OptimizedCallTargetTest. > > commit dca1fda18c83e349b9f2a40b231e17ec342a8af0 > Merge: f30952d 6879b7f > Author: Thomas W?rthinger > Date: Fri Jan 20 08:35:01 2017 -0800 > > [GR-2395] Refactor RecursiveInliningTest. > > commit b48ced9826d90b0448e7f14bf1f23b4a94a9862b > Author: Thomas W?rthinger > Date: Fri Jan 20 16:48:54 2017 +0100 > > Remove Graph#addWithoutUniqueWithInputs. Support using Graph#addOrUniqueWithInputs in the PEA phase. > > commit f30952da4636c2f7b5a486b4701025e9abe6cf53 > Merge: 31fc791 9e33cfa > Author: Boris Spasojevic > Date: Fri Jan 20 03:29:34 2017 -0800 > > [GR-756] Disable Truffle inlining when flag TruffleFunctionInlining is set to false. > > commit 31fc79174d022e2fe5dbccea06655f25bffdcd76 > Merge: 922be31 8b5e20c > Author: David Leopoldseder > Date: Fri Jan 20 02:55:12 2017 -0800 > > [GR-2414] Refactor tests to avoid redundant unsafe initialization. > > commit 127a87a46c5d12398ca43ea99ef759b5869ae09f > Author: Tom Rodriguez > Date: Tue Jan 17 23:41:51 2017 -0800 > > allow metaspace constants to inline into compares > > commit 922be31e046e3295a6005ca52cbd96746824a40f > Merge: 8bea4ab 48b43c5 > Author: Thomas W?rthinger > Date: Thu Jan 19 14:35:44 2017 -0800 > > [GR-2426] IterativeConditionalEliminationPhase should clean up dead nodes > > commit 48b43c57ec791f9aa9a0ef16036829610a9b95a0 > Author: Tom Rodriguez > Date: Thu Jan 19 11:25:40 2017 -0800 > > IterativeConditionalEliminationPhase should clean up dead nodes > > commit 9e33cfad08f160e456c93f8e8a06a7a2f458478e > Author: Boris Spasojevic > Date: Thu Jan 19 16:57:54 2017 +0100 > > Fixed formatting. > > commit 81882082b441c24309520f0b634fcdd5cce4ea30 > Author: Boris Spasojevic > Date: Thu Jan 19 16:49:55 2017 +0100 > > Use of API method to create an empty list. > > commit 2da27e1ef76dee63040bab24007d512d5d0a535b > Author: Boris Spasojevic > Date: Thu Jan 19 16:48:48 2017 +0100 > > Positive condition check rather then early return. > > commit 22b9733d01bc0f5d933a670e58e41f7e6d446104 > Author: Boris Spasojevic > Date: Thu Jan 19 16:36:41 2017 +0100 > > Removed a '.*' import. > > commit 940ebf974e60ecdcdb63f5bb1d0faf41c75678e2 > Author: Boris Spasojevic > Date: Thu Jan 19 15:46:11 2017 +0100 > > Print an informative message if Truffle inlining is disabled but tracing of inlining is enabled. > > commit 1fb981b9f69bca2371530e7ce8685686d71bf59c > Author: Boris Spasojevic > Date: Thu Jan 19 15:28:09 2017 +0100 > > Stop all Truffle inlining if the TruffleFunctionInlining flag is set to false. > > commit 8b5e20cd527803604795a9fe1da1ee8b7adb875f > Author: David Leopoldseder > Date: Thu Jan 19 09:47:09 2017 +0100 > > Refactor tests to avoid redundant unsafe initialization. > > commit 6879b7f1491f7ac57d73d0599ab99d2006ba6d1c > Author: David Leopoldseder > Date: Wed Jan 18 18:38:46 2017 +0100 > > Refactor RecursiveInliningTest. > > commit 8bea4abff573a7ca2caad2af0772e3f8b3514b49 > Merge: ef543d2 14562ce > Author: Doug Simon > Date: Wed Jan 18 04:33:53 2017 -0800 > > [GR-2397] Use the MethodParameters class file attribute if available. > > commit ef543d26790d28cb9b066fae8b822e9318f5fadb > Merge: c965099 8d3d0a8 > Author: Doug Simon > Date: Wed Jan 18 02:51:48 2017 -0800 > > [GR-2393] workaround eclipse import static bug > > commit 14562ce2813f370f2c0c7ece59bc47634c47d2fe > Author: Doug Simon > Date: Tue Nov 8 23:45:22 2016 +0100 > > use the MethodParameters class file attribute if available > > commit 8d3d0a8a9ce9a235034e8c628e6984ee1e8b480e > Author: Tom Rodriguez > Date: Tue Jan 17 23:23:17 2017 -0800 > > workaround eclipse import static bug > > commit c96509900a464dfa109aa7aa0599bbc4ffb0aef7 > Merge: 016786d c187ca0 > Author: Codrut Stancu > Date: Tue Jan 17 23:03:43 2017 -0800 > > [GR-2389] Remove illegals calls to @Fold annotated method. > > commit 016786dad08fa3b7d91ccb67fbc1c0afca64ac94 > Merge: 1b6f5e4 54cc31d > Author: Thomas W?rthinger > Date: Tue Jan 17 17:36:55 2017 -0800 > > [GR-2370] Added canonicalization for cascades of short circuit or nodes. > > commit 54cc31dfc1c42c2f204d13f495b5f19466b7880c > Author: Thomas W?rthinger > Date: Wed Jan 18 02:06:17 2017 +0100 > > Perform systematic testing of short circuit or canonicalizations. Add boolean comparison canonicalization to normalize to the 0 test case. > > commit 62f1c01fc8e91dc4fb01292ab129376353dfa9c6 > Author: Thomas W?rthinger > Date: Tue Jan 17 14:49:50 2017 +0100 > > Added clarifying comments. > > commit 2cbd0dc112134e23a56addd2b0cbc2dfb8c3c1fe > Author: Thomas W?rthinger > Date: Tue Jan 17 05:26:16 2017 +0100 > > Added canonicalization for cascades of short circuit or nodes. > > commit c187ca03a5ced0d6e0cad5466e5fce8aae76e0d9 > Author: Doug Simon > Date: Tue Jan 17 21:46:30 2017 +0100 > > removed calls to @Fold methods that have a parameter annotated with @InjectedParameter > > commit 1b6f5e428afa21a0e34362b038dff6ed0d9d4ba2 > Merge: d190b7d f14f28a > Author: Thomas W?rthinger > Date: Tue Jan 17 12:18:38 2017 -0800 > > [GR-2114] More efficient LoopsData.outerFirst and innerFirst. > > commit f14f28abb2e2aa59f50358eb9d3a689c9fbcf121 > Merge: 29636d5 d190b7d > Author: Thomas W?rthinger > Date: Tue Jan 17 17:29:10 2017 +0100 > > Merge branch 'master' into topic/loopsdata > > commit d190b7d5e2bd2c5a5f4d5a99f6b4efce64be033a > Merge: 13384d4 5fa3448 > Author: Doug Simon > Date: Tue Jan 17 06:59:16 2017 -0800 > > [GR-2368] Disable JDK 9 gates until JDK-8172850 is fixed. > > commit 13384d48e1f6b4fc9e4c9f07668e9706fc90eb40 > Merge: 9a8d652 d2545b7 > Author: Andreas Woess > Date: Tue Jan 17 06:54:59 2017 -0800 > > [GR-2367] Truffle: ensure Assumption.isValid() is inlined for indirect calls > > commit 5fa3448f7b6d053096e4cad353e938f68329418e > Author: Doug Simon > Date: Tue Jan 17 15:03:18 2017 +0100 > > update overlay version > > commit 006841ed93b00065d9386e108a5038c1f9fc68be > Author: Doug Simon > Date: Tue Jan 17 14:34:03 2017 +0100 > > disable JDK 9 gates until JDK-8172850 is resolved > > commit 29636d5f1bc133436e0033e86c517d276326e766 > Merge: 25b471c 8f1ad40 > Author: Thomas W?rthinger > Date: Tue Jan 17 14:21:06 2017 +0100 > > Merge branch 'master' into topic/loopsdata > > commit 92c7244c16972daf244f10afc3e5bf32a8ee8f05 > Author: Doug Simon > Date: Tue Jan 17 14:33:19 2017 +0100 > > update to current compatible JDK 9 EA build > > commit d2545b7e067f872137ea60f429439f488e369afa > Author: Andreas Woess > Date: Wed Jan 11 00:38:29 2017 +0100 > > [fix] Truffle: ensure Assumption.isValid() is inlined for indirect calls > > Use concrete type for profiledArgumentTypesAssumption field so that isValid() > can be statically resolved and inlined without profiling info, i.e. during PE. > > commit 9a8d652b1810f1d7ffbdd225d5d8d577a11f13ca > Merge: 8f1ad40 ed17a0d > Author: Thomas W?rthinger > Date: Tue Jan 17 04:33:09 2017 -0800 > > [GR-2365] Fix probabilities assigned to if nodes during logic expansion phase. > > commit ed17a0d7eebcb07fad0847515671542024ae04b1 > Author: Thomas W?rthinger > Date: Tue Jan 17 05:32:18 2017 +0100 > > Fix probabilities assigned to if nodes during logic expansion phase. > > commit 8f1ad406d78f2f57104a8edaaf5aecbb3616fd35 > Merge: d1057cb f64c234 > Author: Thomas W?rthinger > Date: Mon Jan 16 06:31:23 2017 -0800 > > [GR-2325] New map and set implementations for better footprint and deterministic compilation. > > commit f64c234e4fa7ce8991db16f782ec355b159ce9b2 > Author: Thomas W?rthinger > Date: Mon Jan 16 14:47:18 2017 +0100 > > Rename CompareStrategy to Equivalence. Make org.graalvm.util.Pair class immutable. Fix issues and compress also during iterator removal for EconomicMapImpl. > > commit ff500d8a7e0017d8bdbfcea2a635f3438b2a6c8f > Author: Thomas W?rthinger > Date: Sun Jan 15 23:17:33 2017 +0100 > > Add compression functionality to EconomicMapImpl. Add unit tests measuring memory footprint. > > commit 1d3ee0b3c524727577ed856553d876a2013fdd84 > Author: Thomas W?rthinger > Date: Sun Jan 15 00:59:17 2017 +0100 > > Create new project org.graalvm.util and move new collection classes there. > > commit 1ec570a5ed6a99d72dc1847a45f4ca29b7c0bad2 > Merge: e7f50be d1057cb > Author: Thomas W?rthinger > Date: Sat Jan 14 23:57:33 2017 +0100 > > Merge branch 'master' into fix/predictable-compilation > > commit e7f50be9af761c18c05df0c87f39baa9db25ee45 > Author: Thomas W?rthinger > Date: Sat Jan 14 22:53:26 2017 +0100 > > Add capability to customize EconomicMap/EconomicSet with CompareStrategy. > > commit d1057cb806157581b47ed071cf7a73ccc63dc59b > Merge: 45bc46a 67a36df > Author: Gilles Duboscq > Date: Sat Jan 14 10:12:01 2017 -0800 > > [merge] Change killCFG strategy > > commit 67a36df61043d464f170ff2a0e1bf11cba8bf2e8 > Author: Gilles Duboscq > Date: Fri Jan 13 15:36:42 2017 +0100 > > [fix] Verify killCFG under VerifyGraalGraphEdges > > These verification slow things down significantly so we should not > perform them all the time. > Currently VerifyGraalGraphs is on by default. > > commit dd969b6f84370ff38ffa10c0d5d5310157d10ec4 > Author: Gilles Duboscq > Date: Wed Jan 11 20:27:11 2017 +0100 > > [fix] killCFG: only verify new unused nodes under a special flag > > If there were unused nodes in the intial graph it's non-trivial to make > sure there will be no new unused nodes. > Also it shouldn't be a big problem to create new unused nodes. > The flag is still usefull has it might indicate problems in killCFG. > The "unsafe node" verification remains on by default as it should hold > and indicates real problem that can lead to later crashes. > > commit 8507c94a1f8f06913bd42ec13f13c1ce70226f5c > Author: Gilles Duboscq > Date: Mon Jan 9 18:48:50 2017 +0100 > > [fix] Change killCFG strategy > > Instead of killing usages eagerly, just add them to the worklist. > Add removeNewNodes > Make public killCFG interface operate only on FixedNode to simplify the > implementation: we can assume that fixed nodes that need to be deleted > will be reached while working on the CFG and not only through data-flow. > > commit 45bc46a3d7f73c5affbc113d57794a64952d720f > Merge: 2e1fc7b 6b0d63b > Author: Tom Rodriguez > Date: Fri Jan 13 19:21:14 2017 -0800 > > [merge] [fix] Rearrange debug environment initialization > > commit 6b0d63b856d8eb92eb406e3d94b1d2b9c42fc4dd > Author: Tom Rodriguez > Date: Thu Dec 15 11:04:12 2016 -0800 > > [fix] Rearrange debug environment initialization > > commit 2e1fc7bcb1a5c02cc47218d9224fbfdc7563f789 > Merge: a8c7c57 6f37e24 > Author: Gilles Duboscq > Date: Fri Jan 13 09:05:59 2017 -0800 > > [merge] changes to work with jdk9-ea+152 > > commit 6f37e24a702e3025e3b09bad50861b2c01dddb21 > Author: Doug Simon > Date: Fri Jan 13 16:49:49 2017 +0100 > > [ci] use non-dev jdk9 snapshot > > commit a32ac5a6e16caa242d0c7948a1339253f52cc495 > Author: Doug Simon > Date: Fri Jan 13 16:03:29 2017 +0100 > > [feature] updated README.md for jdk9-ea+152 > > commit a8c7c57cab4518d647aa751fb2161790eb0027ef > Merge: 6d9a9ef 380c861 > Author: Lukas Stadler > Date: Fri Jan 13 06:42:33 2017 -0800 > > [merge] [fix] PEA: more accurately detect situations in which applying effects is necessary > > commit 380c861cd4b3fcc3976e460d333e71da9d4585fa > Author: Lukas Stadler > Date: Thu Jan 12 14:39:19 2017 +0100 > > [fix] PEA: more accurately detect situations in which applying effects is necessary > > commit ad4f9ea3091d924d2fd4185063f80672bdafc775 > Author: Doug Simon > Date: Fri Jan 13 13:58:53 2017 +0100 > > [fix] added missing header > > commit 3e4501b691257154e527be59697248d1ec8dec46 > Author: Doug Simon > Date: Fri Jan 13 11:58:35 2017 +0100 > > [feature] update to jdk9 ea b152 > > commit 2a225bcf63b5dbbecbcf367412c6ffd2eca7ea5d > Author: Doug Simon > Date: Tue Jan 10 12:02:02 2017 +0100 > > [fix] fix merge conflict > > commit 099ca2f8b68b5e2183613e5ce77a8e5218ba62a8 > Author: Doug Simon > Date: Tue Jan 10 11:21:28 2017 +0100 > > [feature] update CheckGraalInvariants for new module name and upgrade module path property > > commit 8c15872a6e73df205dc52ed91f5e3e5ea73717ef > Author: Doug Simon > Date: Tue Jan 10 11:20:26 2017 +0100 > > [feature] added more AddExports annotations as required > > commit c547ab53f854338ea68e72ecbedd3312021351c8 > Author: Doug Simon > Date: Tue Jan 3 10:17:42 2017 +1000 > > [feature] export ASM to all GraalCompilerTests > > commit e52b1328705be145460d2612a2690590d41caeb3 > Author: Doug Simon > Date: Fri Dec 30 23:42:57 2016 +1000 > > [feature] use @AddExports support; force Graal to be compiled with JDK8 > > commit f617bd6589a70acb0ede080f785d89b40a836631 > Author: Doug Simon > Date: Mon Dec 12 19:06:36 2016 +0100 > > [feature] support module changes from JDK-8169069 > > commit 6d9a9ef2e164076362f8efc30b6ec80b6317d373 > Merge: 879be4e 69c7657 > Author: Andreas Woess > Date: Thu Jan 12 01:24:47 2017 -0800 > > Merge pull request #686 in G/graal-core from ~ANDREAS.WOESS_ORACLE.COM/graal-core:truffle_aarch64 to master > > * commit '69c7657a18a76b2d6c090b5cf777c1d4822edb4a': > [feature] implement AArch64OptimizedCallTargetInstumentationFactory > > commit 879be4e0f21b74b7912b665f82f4ed1cca8edc24 > Merge: 64cb154 a8260a7 > Author: Gilles Duboscq > Date: Wed Jan 11 11:33:54 2017 -0800 > > Merge pull request #708 in G/graal-core from topic/canonicalizer-kill-unused to master > > * commit 'a8260a759b9113ca82bdf718b8bed31a35c976ab': > [fix] Try to kill unused nodes only once during node canonicalization > > commit 64cb154509391ea336cad5c50bdc5d9ad2952f0b > Merge: a50992c 5561cef > Author: David Leopoldseder > Date: Wed Jan 11 03:19:34 2017 -0800 > > Merge pull request #705 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:test/recur-inline-test-reduce-iterations to master > > * commit '5561cef43c5f3dd5bdb368cca540f4e3a7013e58': > [test] recursive inlining test: reduce number of iterations > > commit a8260a759b9113ca82bdf718b8bed31a35c976ab > Author: Gilles Duboscq > Date: Wed Jan 11 12:07:21 2017 +0100 > > [fix] Try to kill unused nodes only once during node canonicalization > > commit a50992c84db271041a53fd33400de6e2328ee967 > Merge: a2255cc 61aa854 > Author: Gilles Duboscq > Date: Wed Jan 11 02:51:44 2017 -0800 > > Merge pull request #682 in G/graal-core from topic/cas to master > > * commit '61aa854fccee7537caf603bac3ad7bf334b75e44': > [feature] Add match rules for if(cas) > [feature] Add Word CAS operations > > commit a2255cc27855e6c1b7c9637b6e44671c7452bb04 > Merge: 0cd413d 3c054a0 > Author: Gilles Duboscq > Date: Wed Jan 11 02:50:45 2017 -0800 > > Merge pull request #706 in G/graal-core from topic/debug-timeout-test to master > > * commit '3c054a05728f1e7e00693079f99868860fcf259f': > [fix,test] Make sure debug is initialized for timeout tests > > commit 0cd413d6ba3293044ec378a0a5769d300d808833 > Merge: 73d6f9b 78104d6 > Author: David Leopoldseder > Date: Wed Jan 11 00:11:25 2017 -0800 > > Merge pull request #704 in G/graal-core from ~DAVID.D.LEOPOLDSEDER_ORACLE.COM/graal-core:fix/box-node-nodecosts to master > > * commit '78104d6a2aa30872054eebc00cfb54096e0b6218': > [fix] node costs: box node is a normal allocation > > commit 69c7657a18a76b2d6c090b5cf777c1d4822edb4a > Author: Andreas Woess > Date: Wed Dec 7 18:02:45 2016 +0100 > > [feature] implement AArch64OptimizedCallTargetInstumentationFactory > > commit 3c054a05728f1e7e00693079f99868860fcf259f > Author: Gilles Duboscq > Date: Tue Jan 10 15:27:37 2017 +0100 > > [fix,test] Make sure debug is initialized for timeout tests > > Added GraalCompilerTest.initializeForTimeout() > Call it from tests with a timeout (JUnit runs those on a different > thread). > > commit 73d6f9ba1d2c5b5d1ee86776520935ec02955129 > Merge: 2aee8e8 163d970 > Author: Tom Rodriguez > Date: Tue Jan 10 10:18:45 2017 -0800 > > Merge pull request #703 in G/graal-core from igor/aot-unverified-entry-point to master > > * commit '163d970ac39d810404963ffdf26a76272947cb59': > [fix] Fix AOT unverified entry point > > commit 2aee8e88c9b9b5c1f6b17671f24e474d5b8a9589 > Merge: b0175e5 3072436 > Author: Christian Wimmer > Date: Tue Jan 10 09:53:15 2017 -0800 > > Merge pull request #698 in G/graal-core from cwi/invocation-plugin to master > > * commit '30724369f7353e6f7a3fdb0ae423434d6228a9e4': > [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target > > commit 25b471c8b2a80bb6b8c96da6069774113f6a315a > Author: Gilles Duboscq > Date: Wed Jan 4 18:42:17 2017 +0100 > > [fix] More efficient LoopsData > > Improved outerFirst > This assumes the order of the loops retruned by the CFG. > The loops are kept in an array instead of being sources from the maps. > Removed innerFirst (added ReversedList which can be used to emulate it) > Removed one of the maps > > commit 163d970ac39d810404963ffdf26a76272947cb59 > Author: Igor Veresov > Date: Thu Jan 5 15:26:18 2017 -0800 > > [fix] Fix AOT unverified entry point > > commit 61aa854fccee7537caf603bac3ad7bf334b75e44 > Author: Gilles Duboscq > Date: Mon Dec 19 18:56:07 2016 +0100 > > [feature] Add match rules for if(cas) > > commit b0175e57a242a454a5cc75add35b3a19e192f61a > Merge: 848c88a 67d77ed > Author: Josef Eisl > Date: Tue Jan 10 04:15:43 2017 -0800 > > Merge pull request #702 in G/graal-core from ~JOSEF.E.EISL_ORACLE.COM/graal-core:compiler-test-retry-failed-code-installation to master > > * commit '67d77ed31c0b18169917c9d746380bc4218e0a89': > [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout > > commit 67d77ed31c0b18169917c9d746380bc4218e0a89 > Author: Josef Eisl > Date: Mon Jan 9 16:12:43 2017 +0100 > > [fix] GraalCompilerTest: retry compilation in case of a non-permanent bailout > > This happens, e.g., if Graal is executed the first time and Graal code > invalidates assumptions that where true before. > > commit 848c88a0945ae71622b49f425ee76bffe3b15c56 > Merge: 11ecdc0 1cbe976 > Author: Codrut Stancu > Date: Tue Jan 10 01:30:05 2017 -0800 > > Merge pull request #659 in G/graal-core from cs/refactor-interval to master > > * commit '1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe': > [misc] Interval and Range refactoring. > > commit 5561cef43c5f3dd5bdb368cca540f4e3a7013e58 > Author: David Leopoldseder > Date: Tue Jan 10 10:05:51 2017 +0100 > > [test] recursive inlining test: reduce number of iterations > > commit 78104d6a2aa30872054eebc00cfb54096e0b6218 > Author: David Leopoldseder > Date: Tue Jan 10 09:49:44 2017 +0100 > > [fix] node costs: box node is a normal allocation > > commit 1cbe97670f53b2da33fbe7ff2e4d9a90258ad4fe > Author: Codrut Stancu > Date: Tue Dec 6 23:49:09 2016 -0800 > > [misc] Interval and Range refactoring. > > commit 11ecdc05a48b77db4718dc7cb5c31f0ff562ad5e > Merge: cebca3f 718a7da > Author: Josef Eisl > Date: Mon Jan 9 06:19:55 2017 -0800 > > [fix] use ArrayList in LIR where appropriate > > commit d0017ebcac25a598fcc3347549b9c34ee7f5d2c4 > Author: Gilles Duboscq > Date: Fri Dec 9 16:22:45 2016 +0100 > > [feature] Add Word CAS operations > > Add CAS operation to Word and use them in snippets > Rename `LoweredCompareAndSwap` to `LogicCompareAndSwap` > Rename `CompareAndSwap` to `UnsafeCompareAndSwap` > Introduce `AbstractCompareAndSwap` and `ValueCompareAndSwap` > Remove old cas nodes > > commit 718a7da231ba2f34354125c4deaf0c241c4bfce2 > Author: Josef Eisl > Date: Mon Jan 9 14:36:37 2017 +0100 > > [fix] TraceRA: assert that splitChildren list is always non-empty or null > > commit 9085352ea2337a4e49bab6f02e6a5e56fd5b2567 > Author: Josef Eisl > Date: Wed Dec 21 15:49:40 2016 +0100 > > [fix] use ArrayList instead of List in Linear Scan > > commit 4e87b12c86109a090b0060c80df3c9609ed4d642 > Author: Josef Eisl > Date: Wed Dec 21 14:17:44 2016 +0100 > > [fix] Use ArrayDeque in LinearScanLifetimeAnalysisPhase > > commit 5b922da3d7ca9e641aeb3db2dd766ba2cb1d0b33 > Author: Josef Eisl > Date: Wed Dec 21 14:10:53 2016 +0100 > > [fix] TraceRA: use ArrayList in TraceBuilderPhase > > commit 0f61ffd3a690e082c67dc217ced4bd40c8f7c239 > Author: Josef Eisl > Date: Wed Dec 21 14:01:45 2016 +0100 > > [fix] use ArrayList in RegisterVerifier > > commit 45a5e1fce556453fc2ac37f8a63966e2c72a1586 > Author: Josef Eisl > Date: Wed Dec 21 13:55:20 2016 +0100 > > [fix] TraceRA: use ArrayList in TraceLocalMoveResolver > > commit 432b97221d90df67ac1ce8d9b72468ad7e716bcc > Author: Josef Eisl > Date: Wed Dec 21 13:54:59 2016 +0100 > > [fix] TraceRA: use ArrayList in TraceLinearScanWalker > > commit 956cd75f3d938aeb00ba9d8e9e0e0487ec8248ae > Author: Josef Eisl > Date: Wed Dec 21 13:42:41 2016 +0100 > > [fix] use ArrayList for storing getLIRforBlock results > > commit 99c028c31a2035623269d66417073d5ce527ffd8 > Author: Josef Eisl > Date: Wed Dec 21 13:23:16 2016 +0100 > > [fix] TraceRA: use ArrayList for split children in TraceInterval > > commit 5dd26d98c9b48b8118047c41d3e24f9e63c594d4 > Author: Josef Eisl > Date: Wed Dec 21 12:18:21 2016 +0100 > > [fix] TraceRA: use index instead of ListIterator > > commit cebca3f9a2eabb1c411240eae19ea23041d3dde0 > Merge: 0176906 1f349d8 > Author: Christian Wimmer > Date: Mon Jan 9 03:01:27 2017 -0800 > > [fix] Spill store optimization must not move stores into loop > > commit 0176906c5dc53edd512d8f489fce3a8dcd59e340 > Merge: f76dc33 43efd9d > Author: Doug Simon > Date: Mon Jan 9 01:05:28 2017 -0800 > > Improve consistency in the README terminology > > commit 2f22f70b450f3e089480b2347520b3610b1f1f96 > Author: Thomas W?rthinger > Date: Sat Jan 7 00:59:53 2017 +0100 > > Introduce new economic map and set implementation with low footprint (in particular for small number of entries) to replace java.util.* usage. > > commit f76dc33b4fd41569991eb4659be8028190804f41 > Merge: 0063385 39c1579 > Author: Christian Wimmer > Date: Fri Jan 6 09:15:08 2017 -0800 > > Minor fixes for my work on typed Truffle entrypoints on Substrate VM > > commit 39c1579fc91ca9d401e1a55f37fa8655cc2033a9 > Author: Christian Wimmer > Date: Thu Jan 5 16:49:50 2017 -0800 > > [feature] Change order of objects in equality check > > Allows customizing graph().method() with a marker method that has an approriate implementation of equals() > > commit 28a72b5bff8ca41cb023bae7cfe6e83854493b99 > Author: Christian Wimmer > Date: Thu Jan 5 15:58:55 2017 -0800 > > [fix] Avoid NullPointerException > > commit 30724369f7353e6f7a3fdb0ae423434d6228a9e4 > Author: Christian Wimmer > Date: Thu Jan 5 15:50:49 2017 -0800 > > [feature] allow a InvocationPlugin to emit an invoke with an arbitrary call target > > commit 006338540a46a1a228eeed01060c94ddbc4cb2e4 > Merge: cb09b1b 07518dd > Author: Christian Humer > Date: Thu Jan 5 06:25:46 2017 -0800 > > Truffle OSR compilation: synchronize / cancel on invalidate > > commit cb09b1be120594b7e4f6a291b229da52e9ae6da4 > Merge: 0584562 8ba423d > Author: Christian Wimmer > Date: Wed Jan 4 17:51:24 2017 -0800 > > Update Truffle version > > commit 8ba423d0ae840eb8ad521f76e06a89d537ec95f1 > Author: Christian Wimmer > Date: Wed Jan 4 16:31:19 2017 -0800 > > Update ci overlay version > > commit 4876c7208991810e53de8e7b34be51279ba05bbb > Author: Christian Wimmer > Date: Wed Jan 4 15:56:54 2017 -0800 > > Update Truffle version > > commit 0584562485b4e259f99d31a3999ced0be12f43c9 > Merge: 3cb2e3f 5394eb5 > Author: Vojin Jovanovic > Date: Wed Jan 4 15:20:34 2017 -0800 > > Use correct intellij init command > > commit 5394eb535ee09020bd44bd4ca639327547b9b0b8 > Author: Vojin Jovanovic > Date: Wed Jan 4 23:30:57 2017 +0100 > > Changing the ci overlay > > commit c4f207aba3e7e0a314c955ec45494518228cf91e > Author: Vojin Jovanovic > Date: Wed Jan 4 15:19:42 2017 +0100 > > Use the correct IntelliJ init command > > commit 07518dd5f2deac85f94f3c8d8f0f13e2e778f688 > Author: Lukas Stadler > Date: Wed Jan 4 09:59:41 2017 +0100 > > cancel compilation task when OptimizedCallTargets are invalidated > > commit 82f2ca37f6c90bfec631b7a248972aa5e209de05 > Author: Lukas Stadler > Date: Wed Jan 4 09:59:13 2017 +0100 > > synchronize OptimizedOSRLoopNode.invalidateOSRTarget > > commit 3cb2e3f2343ddde3607819a479ef84ee95666f38 > Merge: e4b3fb4 76d7382 > Author: Christian Humer > Date: Mon Jan 2 05:37:37 2017 -0800 > > [fix] Truffle compilation canceled itself in case of recursion > > commit 1f349d8c284d102e219d6ab76ec20a3a0a5c7e7b > Author: Christian Wimmer > Date: Fri Dec 30 14:42:41 2016 -0800 > > [fix] Spill store optimization must not move stores into loop > > commit 01fa2211d4a22a3cb50f2cfa2c047c30b5060763 > Author: Thomas W?rthinger > Date: Fri Dec 30 15:27:36 2016 +0100 > > Make compilation predictable by removing System.identityHashCode and related effects such as HashMap key iteration order as main sources of indeterminism. > > commit e4b3fb4ea236cadf34d407ee8ab216b8d76c5e87 > Merge: 0cefb9f 2369e57 > Author: Thomas W?rthinger > Date: Fri Dec 30 04:07:05 2016 -0800 > > Add unit tests and small fixes for Truffle performance warning stack traces. > > commit 0cefb9fd32e48c5df87b335b8eaeaf170a286f34 > Merge: f9b93f3 d2861f6 > Author: Tom Rodriguez > Date: Thu Dec 22 11:02:57 2016 -0800 > > Merge: Remove folding of loads from $assertionsDisabled in AOT > > commit 43efd9d41a00c3af1b8d7c269ce9cb3aaf12220a > Author: Benoit Daloze > Date: Thu Dec 22 17:52:29 2016 +0100 > > Improve consistency in the README terminology > > commit f9b93f32173b3fbbba6a05de9f26a0e6596aebe2 > Merge: 7e25820 22a5ec9 > Author: Vojin Jovanovic > Date: Thu Dec 22 08:32:02 2016 -0800 > > Adding IntellJ instructions > > commit 22a5ec9ed9650c4452fe39fe7b64381360e111df > Author: Vojin Jovanovic > Date: Wed Dec 21 20:18:23 2016 +0100 > > Adding IntellJ instructions > > commit d2861f6fd589ce28301af30031fd3f824ccd3f12 > Author: Igor Veresov > Date: Tue Dec 20 11:13:10 2016 -0800 > > Remove folding of loads from $assertionsDisabled in AOT > > commit 7e258203177a6b2c7414cfeb35a133cc2e6c9670 > Merge: 10af3e9 a25f5c9 > Author: Tom Rodriguez > Date: Mon Dec 19 16:55:09 2016 -0800 > > Merge: Fix argument types of tiered callbacks > > commit 76d738205406860fb2a85c930e3b1907cdb44cca > Author: Christian Wimmer > Date: Mon Dec 19 10:05:36 2016 -0800 > > [fix] Truffle compilation canceled itself in case of recursion > > commit 10af3e90b068c6298a8f185606fd2566d7cc53a1 > Merge: fad8200 b225edc > Author: Gilles Duboscq > Date: Mon Dec 19 10:13:11 2016 -0800 > > Use extended JavaVm API from mx > > commit b225edc82382ea7ea33bbb675836b3498b333b42 > Author: Gilles Duboscq > Date: Wed Dec 14 16:27:12 2016 +0100 > > Use extended JavaVm API from mx > > commit fad8200eb15881121add70ba7fae6ba23fa53b90 > Merge: d279402 7baf0fb > Author: Josef Eisl > Date: Mon Dec 19 06:21:34 2016 -0800 > > [ci]: increase jmh timeouts > > commit 7baf0fb18ab35bb60c4be5a236af34118696859e > Author: Josef Eisl > Date: Mon Dec 19 10:55:18 2016 +0100 > > [dep] update ci-overlay > > commit a824d7027795a386a8e5261eda19b703ae1aefaa > Author: Josef Eisl > Date: Mon Dec 19 10:54:54 2016 +0100 > > [ci] increase timelimit for graal-micros > > commit d27940208dd5f7fbba90c80ae6744986d8c50897 > Merge: ac1842f c00c0bf > Author: Matthias Grimmer > Date: Mon Dec 19 02:22:45 2016 -0800 > > Add PUBLICATIONS.md > > commit ac1842ffd07e038c0833526f02f65d67c674ce0d > Merge: a348ee7 260a8a6 > Author: Tom Rodriguez > Date: Sun Dec 18 20:57:14 2016 -0800 > > Merge: Allow multiple file names per thread and gracefully handle interrupted threads > > commit a25f5c9656b4910204f35c5a33e6a0000b45d48b > Author: Igor Veresov > Date: Fri Dec 16 18:23:54 2016 -0800 > > Fix argument types of tiered callbacks > > commit 2369e57d367fa81048d087e7cf9dacd3f1782b30 > Author: Thomas W?rthinger > Date: Sat Dec 17 01:04:29 2016 +0100 > > Add unit tests and small fixes for Truffle performance warning stack traces. > > commit a348ee713af1046b297d2a0326a6d1322bba004e > Merge: 01695c8 5adca69 > Author: Christian Humer > Date: Fri Dec 16 09:53:32 2016 -0800 > > Print approximated stack trace for performance warnings. > > commit 5adca69e81e626443f1df00493b1a556aef81e92 > Author: Christian Humer > Date: Fri Dec 16 18:19:09 2016 +0100 > > Print approximated stack trace for performance warnings. > > commit 260a8a6e8059b3e2b33ad756516bd0c12d4e52ba > Author: Tom Rodriguez > Date: Thu Dec 15 11:04:12 2016 -0800 > > Allow multiple file names per thread and gracefully handle interrupted threads > > commit 01695c855a62af8764fe97421b6341e6a2622b63 > Merge: 45e1839 56a21fb > Author: Gilles Duboscq > Date: Fri Dec 16 06:34:13 2016 -0800 > > Run bootstraps on machines with 'manycores' > > commit 56a21fb6586dc33fec5d38233616ef517a0fe48e > Author: Gilles Duboscq > Date: Fri Dec 16 14:44:51 2016 +0100 > > Run bootstraps on machines with 'manycores' > > Bootstraps are multithreaded so they benefit from having many cores. > > commit 45e183972bd9dc0ed6b5405c101ff1907a92d774 > Merge: 9e5cf7f 36d2215 > Author: Gilles Duboscq > Date: Fri Dec 16 05:27:18 2016 -0800 > > Aarch64 graal misc fixes > > commit 9e5cf7f3e3d16a41c64031887a84a5278ef0c415 > Merge: dd087fd 950b11e > Author: David Leopoldseder > Date: Fri Dec 16 04:09:16 2016 -0800 > > [ci] split bootstrap tasks > > commit dd087fd6447e1d2dc2a61920bbb1ae431457b5ef > Merge: e34a1a3 a829731 > Author: Tom Rodriguez > Date: Wed Dec 14 12:09:49 2016 -0800 > > Merge: Fold narrow and sign extend into memory operations > > commit a8297312cd4d0da16b05bee3d50b79721590087c > Author: Tom Rodriguez > Date: Tue Dec 6 17:52:08 2016 -0800 > > Fold narrow and sign extend into memory operations > > commit bbb7350518fefd8792bac9735941c421d7d36470 > Author: Doug Simon > Date: Wed Dec 14 17:49:54 2016 +0100 > > remove redundant AllocationContext.options field > > commit d3b971522b400a4ff6991e08b107c687c65336b4 > Author: Doug Simon > Date: Wed Dec 14 16:17:59 2016 +0100 > > remove use of StableOptionKey > > commit dd36a08fa7da15d39b2dba20298aa1cbfae3f2c9 > Author: Doug Simon > Date: Wed Dec 14 15:58:52 2016 +0100 > > remove use of OptionKey.setValue > > commit dd11ad4cc1f1de2a5bb9abae86fc3aff9dfac7aa > Author: Doug Simon > Date: Wed Dec 14 14:53:23 2016 +0100 > > disable Inline and InlineDuringParsing if they have default values and -XX:-Inline is specified > > commit 6463f9f60fbbdeefa0e48c68b82994689c714a78 > Merge: 2bfa0b1 e34a1a3 > Author: Doug Simon > Date: Wed Dec 14 13:23:24 2016 +0100 > > Merge branch 'master' into topic/non-static-options > > commit 2bfa0b1818bd368629091fc6e621ac87bd7acd85 > Author: Doug Simon > Date: Sat Dec 10 01:03:23 2016 +0100 > > post-merge fixups > > commit e34a1a3130f275d7390d50fda3ecf3f1abe42200 > Merge: b332b62 686e261 > Author: Gilles Duboscq > Date: Wed Dec 14 03:04:12 2016 -0800 > > Remove unused array allocation if possible > > commit 950b11ecbca37ed8331e6762ee788b19f4edcf84 > Author: David Leopoldseder > Date: Wed Dec 14 10:59:14 2016 +0100 > > [ci] move bootstrap tasks to separate hocon file > > commit 91488eca7df066abc589300b0c45578578c68862 > Author: David Leopoldseder > Date: Wed Dec 14 10:50:58 2016 +0100 > > [ci] update mx version > > commit b332b62735ba82137706265157d8432a8fb48f6e > Merge: 26c0792 d9708df > Author: David Leopoldseder > Date: Wed Dec 14 01:57:01 2016 -0800 > > [ci] trigger TraceRA benchmark daily only > > commit d9708df27a5159b851d5c333868c0cf7f5dd760f > Author: Josef Eisl > Date: Wed Dec 14 10:23:42 2016 +0100 > > [ci] trigger TraceRA benchmarks daily only > > commit 26c07924c31e03795c17c3e6f6861a90b14a6d21 > Merge: 35cc2e8 f322ca2 > Author: Gilles Duboscq > Date: Tue Dec 13 08:27:49 2016 -0800 > > Add more cases to MonitorSnippets > > commit 36d22155092abd67cce70c963873e95884553c8a > Merge: f812ad3 35cc2e8 > Author: Gilles Duboscq > Date: Tue Dec 13 16:33:58 2016 +0100 > > Merge branch 'master' into aarch64_graal_misc_fixes > > commit 35cc2e8d5ad64626fd97b3b72012299137ade43b > Merge: dea00ee 977b6e1 > Author: David Leopoldseder > Date: Tue Dec 13 05:17:41 2016 -0800 > > [fix] loop optimizations must respect ControlFlowAnchored interface > > commit dea00eee58b2bb355755cfad45ccae95c43380b1 > Merge: 87b6ac0 ef00cd9 > Author: Josef Eisl > Date: Tue Dec 13 03:58:20 2016 -0800 > > [dep] update ci overlay version > > commit 977b6e18628b2ddbe590c1bfc6d71aaa303dbcab > Author: David Leopoldseder > Date: Fri Dec 2 14:58:02 2016 +0100 > > [fix] control flow anchored: loop optimizations must use controlflowanchored interface > > commit c00c0bf719d433fc549668f551c845cc8bf93a50 > Author: Matthias Grimmer > Date: Mon Dec 12 10:30:14 2016 +0100 > > Add all Graal and Truffle related publications to Publications.md > > commit ef00cd905b55c1348a7cfa597150e52ad45683e3 > Author: Josef Eisl > Date: Mon Dec 12 13:17:01 2016 +0100 > > [dep] update ci overlay version > > commit f812ad3b8d847f797b3123adda0b330e1f0d78af > Author: Andrew Haley > Date: Mon Dec 12 18:09:36 2016 +0000 > > The parameters a and b should not be assigned. > > commit d224c1c6d681c83914b78752ba932639fb9d2613 > Author: Andrew Haley > Date: Mon Dec 12 17:25:17 2016 +0000 > > Remove unused arguments. > > commit 686e261039d357f04026d7286c0cf0f2d8c17238 > Author: Gilles Duboscq > Date: Mon Dec 12 17:47:08 2016 +0100 > > NewArray: only simplify to guards before guard lowering > > commit 13610fab8df4dfebc0794f8fcf5b5bf09d175662 > Author: Gilles Duboscq > Date: Thu Nov 17 16:16:40 2016 +0100 > > Simplify unused NewArray to Guard > > If we can not prove that the length is positive, a guard is still > cheaper than the full allocation. > > Add tests for negative and large newarray > Add tests that unused NewArray nodes are eliminated > > commit 53b5ee55c4ad09a473c0d596c2d485f247c0e475 > Author: Gilles Duboscq > Date: Wed Nov 16 18:01:46 2016 +0100 > > Remove unused array allocation if possible > > Remove unused array allocations where the length is known to be > positive. > > commit 87b6ac064e1497442ac0e3125e31496fff517791 > Merge: fb63259 cf008ba > Author: Codrut Stancu > Date: Sun Dec 11 22:23:39 2016 -0800 > > Refactor Node collections factory methods. > > commit fb632591c6c36b55451e936b7e20a37a67a726ea > Merge: 784baba dc3ecab > Author: Codrut Stancu > Date: Fri Dec 9 11:21:26 2016 -0800 > > Refactor phase classes statistics access. > > commit 784babac9f9b68526d91ac17d6a305fff6a50f8a > Merge: 451c012 414f878 > Author: Codrut Stancu > Date: Fri Dec 9 10:15:54 2016 -0800 > > Small refactorings. > > commit 451c012ae740f28e0e296ad965fe48ad9e596447 > Merge: 98bdc0d 81fcc75 > Author: Aleksandar Prokopec > Date: Fri Dec 9 08:15:01 2016 -0800 > > Update package name for Renaissance bench. > > commit 565cdc3b08a3620ee13905af9fb7d60d4bfc07f9 > Merge: 98bdc0d b200740 > Author: Doug Simon > Date: Fri Dec 9 17:05:23 2016 +0100 > > Merge branch 'aarch64_graal_misc_fixes' of https://github.com/theRealAph/graal-core into theRealAph-aarch64_graal_misc_fixes > > commit f322ca24e9b10082931dbf2a201673c7ffdf1c44 > Author: Gilles Duboscq > Date: Fri Dec 9 16:39:37 2016 +0100 > > Fix typos an document verify_jvmci_ci_versions > > commit 81fcc75fe00578f70228ee54ad5262625790f804 > Author: Aleksandar Prokopec > Date: Fri Dec 9 16:06:05 2016 +0100 > > Update package name for Renaissance bench. > > commit a8cf4587485ccfd78226629c54c0757d7a043b2f > Author: Gilles Duboscq > Date: Fri Dec 9 15:04:49 2016 +0100 > > Relax verify_jvmci_ci_versions > > Allow travis jvmci versions to lag behind *dev* version of ci.hocon > jvmci. > Use that and make travis use 0.23. > The fastdebug versions names have been changed: > s/fastdebug-dev/dev-fastdebug/ > > commit da9279e3eae2cdacd3b75e3f34118d09e3789698 > Merge: b1e8360 949f9d4 > Author: Doug Simon > Date: Fri Dec 9 13:22:00 2016 +0100 > > Merge branch 'master' into topic/non-static-options > > commit dc3ecabbbfa5df7ae3ed79d9b85a69c567585dd1 > Author: Codrut Stancu > Date: Fri Oct 28 22:27:35 2016 -0700 > > Refactor phase classes statistics access. > > commit 414f8788c9864645099207c22cec763fa8f467b3 > Author: Codrut Stancu > Date: Tue Dec 6 23:44:56 2016 -0800 > > Replace stream use with simple for. > > commit e71f7dd62d6e1afab9f4da8b5ba91f4f127cdee5 > Author: Codrut Stancu > Date: Tue Dec 6 22:47:07 2016 -0800 > > Small refactorings. > > commit cf008ba7259bc432a3b83149c3b2a90c5fedc97a > Author: Codrut Stancu > Date: Tue Dec 6 22:36:54 2016 -0800 > > Refactor node collections factory methods. > > commit b20074008b6c89b94ddcf1482872a0fdef3ca960 > Author: Andrew Haley > Date: Thu Dec 8 15:15:04 2016 +0000 > > Checkstyle fixes. > > commit b1e836066425b1037481f5dfd7ddf916c627be05 > Author: Doug Simon > Date: Thu Dec 8 15:21:45 2016 +0100 > > made StructuredGraph final > > commit c560a5a8e8ada8012d06e39f31e67ac0cc90b6ca > Author: Doug Simon > Date: Thu Dec 8 15:02:21 2016 +0100 > > moved global option parsing from HotSpotGraalCompilerFactory to OptionValues > removed methods from OptionKey that did not have a OptionValues context > > commit 21a2d2ab1ed5f6763937a761852445e0b223c16d > Merge: 94016fc 949f9d4 > Author: Gilles Duboscq > Date: Thu Dec 8 12:57:03 2016 +0100 > > Merge remote-tracking branch 'master' into topic/locking > > commit 94016fca16a6cf5c04921c9c75ff5d257db99505 > Author: Gilles Duboscq > Date: Wed Dec 7 20:54:07 2016 +0100 > > MonitorSNippet: adjust probabilities > > commit c95ad5d1f5ac34e1579671060bc57b7ff6fafc70 > Author: Gilles Duboscq > Date: Wed Dec 7 19:39:37 2016 +0100 > > Cleanup: remove logging and unused location > > commit 9760b9b83e306d009a2083c4307706c9d3457862 > Author: Gilles Duboscq > Date: Tue Dec 6 11:53:03 2016 +0100 > > MonitorSnippets: Check for inflated lock earlier > > commit df4017e2d7d35c3468985a4f2251a787ee808b84 > Author: Gilles Duboscq > Date: Mon Dec 5 16:40:45 2016 +0100 > > Add SimpleFastInflatedLocking option > > commit 578654103c4532db520dae79ee5b44f106bd7228 > Author: Gilles Duboscq > Date: Mon Dec 5 15:57:44 2016 +0100 > > WIP: log inflated fast locking support > > commit 6fb059580aec479cf107495e181b01c308ffbb58 > Author: Gilles Duboscq > Date: Fri Dec 2 18:20:13 2016 +0100 > > Remove fast-path handling of succ in monitor snippets > > commit 38d9197d3d68a8057b57b25546c6b8f6240b1094 > Author: Gilles Duboscq > Date: Fri Dec 2 16:30:55 2016 +0100 > > Use JVMCI 0.24-dev > > commit 17865b46b77c91b606c9300eb6a831bdcee292e6 > Author: Gilles Duboscq > Date: Wed Nov 30 21:01:54 2016 +0100 > > Implement fast-path unlocking of inflated locks > > commit 98728bf2030e1e90c2cc38fb4260fc23cf329607 > Author: Gilles Duboscq > Date: Wed Nov 30 17:25:57 2016 +0100 > > Adjust monitor snippet probabilities > > commit 31cd4bf6e45d8ea20f114f7a094d66af9e30af05 > Author: Andrew Haley > Date: Tue Dec 6 19:02:34 2016 +0000 > > Tidy up Arrays.equals() support. > > commit 4dab38e0ad61633392e64ee80ec4e9018c534941 > Author: Andrew Haley > Date: Tue Dec 6 18:13:37 2016 +0000 > > Implement Arrays.equals(). > > commit 0201dec4f6e13b8d97d1daf2459f6a5204a36813 > Author: Andrew Haley > Date: Tue Dec 6 13:45:32 2016 +0000 > > Allow SP and ZR forms of add and subtract instructions. > > commit 6b899c1321a6196c3dbefab4e7c253d80a864477 > Author: Andrew Haley > Date: Tue Dec 6 13:19:50 2016 +0000 > > Disable NativeFunctionInterfaceTest on AArch64 > > commit 1419900803c872265815b3973950013192f3382c > Author: Andrew Haley > Date: Mon Dec 5 17:47:34 2016 +0000 > > Fix compressed OOPs. > > commit 61ce002370b1b242412583c878bebebef253e5ee > Author: Andrew Haley > Date: Mon Dec 5 17:22:29 2016 +0000 > > Fix flag-setting arithmetic. > > commit 14b4dd5156e1a2b894c784eaa0452ffc5558ee40 > Author: Andrew Haley > Date: Mon Dec 5 17:22:05 2016 +0000 > > Fix compressed OOPs. > > commit 49021aaee377250ac3f51a453f092c233a8fb433 > Author: Andrew Haley > Date: Mon Dec 5 16:25:15 2016 +0000 > > Fix null checks for compressed OOPs. > > commit 919e22adfbe7e54eb8eee580bd446aa9068a5c17 > Author: Doug Simon > Date: Sat Dec 3 14:41:24 2016 +0100 > > removed extra semicolon > > commit aa93c9a61b7a30cb6afa5d0e8c014559f62e5bf9 > Author: Doug Simon > Date: Sat Dec 3 12:41:24 2016 +0100 > > improved name of instrumentation graphs > > commit e6a181c024eb2e21f83c80723c42b678bed66577 > Author: Doug Simon > Date: Sat Dec 3 12:41:00 2016 +0100 > > fixed creation of inlineable graphs > > commit 2dfe1821a024735e2f80e126b2d533ac1a35ebe8 > Author: Doug Simon > Date: Sat Dec 3 12:40:26 2016 +0100 > > fixed chaining in overloaded methods > > commit 7241d89909511e833a6e39da4a1b83c62d841cb5 > Author: Doug Simon > Date: Sat Dec 3 12:39:57 2016 +0100 > > improved assertion message > > commit c90e054a12ed0d2b8d84392e2cac3be83386db6c > Author: Doug Simon > Date: Sat Dec 3 12:39:32 2016 +0100 > > also dump graph on error if -Dgraal.Dump option is non-null > > commit 07871cc653a07fe232121151b19b644fdf825cda > Author: Doug Simon > Date: Sat Dec 3 02:43:53 2016 +0100 > > removed incorrect assertion > > commit aae87fcc32a05937fa62ef7b55ae57bdfa87604a > Merge: 5ec5c96 beb0da8 > Author: Doug Simon > Date: Sat Dec 3 02:32:03 2016 +0100 > > Merged from master branch and added StructuredGraph.Builder > > commit 2024acb03c0080ae48cb304be40bdc7c7072c2b4 > Author: Andrew Haley > Date: Fri Dec 2 19:00:30 2016 +0000 > > Exclude a couple of features which are not supported on AArch64. > > commit b72dd5e5aac1d2faf6a401c3dc7d0ce5e1698bfd > Author: Andrew Haley > Date: Fri Dec 2 18:59:46 2016 +0000 > > We should only load SP from FP in old versions of HotSpot. > > commit 5ec5c9663778c4e5e541573eb18c22ddd51cb91e > Author: Doug Simon > Date: Fri Dec 2 11:56:35 2016 +0100 > > removed OptionKey.getValue() and added OptionValues argument to all OptionKey.getValue(OptionValues) call sites > > commit 06875b567b71f7ae501c05530f9da96fd6736a09 > Author: Doug Simon > Date: Fri Dec 2 11:53:11 2016 +0100 > > override sl command in graal-core to run on Graal > > commit f56f8fb0d01a89ba2c25afcaa6feadb867ef7982 > Author: Andrew Haley > Date: Thu Dec 1 17:57:41 2016 +0000 > > Call runtime versions of intrinsics for transcendental funtions. > > commit 691991eb69e7f49b59a34cfaefec17dfc531e2e4 > Author: Andrew Haley > Date: Thu Dec 1 16:58:08 2016 +0000 > > Integer arithmetic notes which set flags. > > commit 13571ae9e90e90f7e1ec21c24d55ebe76637c3b8 > Author: Andrew Haley > Date: Thu Dec 1 10:58:52 2016 +0000 > > Implement countTrailingZeros. > > commit e8b6a30ab4e8a5e4040cbaabeffcd83eaa225e79 > Author: Andrew Haley > Date: Wed Nov 30 17:14:29 2016 +0000 > > Make add and sub work with 64-bit immediate values. > > commit 30c5b3f28a206658a5071f95a7848b0c8cb61836 > Author: Andrew Haley > Date: Wed Nov 30 12:38:27 2016 +0000 > > Correct method prologue and epilogue. > > commit 5f4c55161ea5e9e2903d06820780828b32249bc2 > Author: Andrew Haley > Date: Tue Nov 29 12:25:38 2016 +0000 > > Fix more unused warnings. > > commit d019de960477f5231a3082ad5c4cb13b69f5afda > Author: Andrew Haley > Date: Mon Nov 28 18:05:45 2016 +0000 > > Fix a few style errors. > > commit 806776592214b8a56e81f5a2124bf0f1b334fff4 > Author: Andrew Haley > Date: Mon Nov 28 12:03:49 2016 +0000 > > Fix a few style errors. > > commit a948773abcc02f51215399035c9679451325d562 > Author: Andrew Haley > Date: Sun Nov 27 17:36:53 2016 +0000 > > Fix warnings. > > commit 32c443b5c7c84aa6b42737d1224ead44db2730a1 > Author: Andrew Haley > Date: Fri Nov 25 16:10:43 2016 +0000 > > Fix a few style errors. > > commit 539cbc147dea9e1fde5e87e139eadcb5648d1e36 > Author: Andrew Haley > Date: Fri Nov 25 16:09:37 2016 +0000 > > Fix a few style errors. > > commit 4add54a62a32008a65f4ebe3300af52b295967c0 > Author: Andrew Haley > Date: Fri Nov 25 10:05:15 2016 +0000 > > Add missing braces. > > commit 5bd69ae0bd9e7ee047030c070408d92c218ca6c0 > Author: Doug Simon > Date: Fri Nov 25 10:53:59 2016 +0100 > > fixed sourcing of UseGraalInstrumentation value to be compilation local > > commit 49a97ed46c1e9a6830c53593b359a595e665266b > Author: Doug Simon > Date: Fri Nov 25 00:45:44 2016 +0100 > > fixed bugs in option overriding > > commit 64a0c239a728c1f0312d6f0687968ec53034bbab > Author: Doug Simon > Date: Wed Nov 23 00:31:20 2016 +0100 > > removed OptionKey.OverrideScope, DerivedOptionValue and BailoutAndRestartBackendException > > commit bb7d832717ea86a33e7415e9c49b243166cd0389 > Author: Doug Simon > Date: Wed Nov 16 16:10:37 2016 +0100 > > moved StableOptionKey invariant checking to OptionValues > > commit ab6f8b6760da3dcc2ede4b4589b041293498b972 > Author: Doug Simon > Date: Sun Nov 13 14:24:24 2016 +0100 > > indirect through OptionValues for getValue/setValue/hasBeenSet > > commit 45ffff3171466ea9539cd2d358868e5ad8183d50 > Author: Doug Simon > Date: Sat Nov 12 13:37:51 2016 +0100 > > fixed failing unit tests > > commit 5d981456e4dca208039e6e3986f36075713248aa > Author: Doug Simon > Date: Sat Nov 12 00:51:46 2016 +0100 > > rename OptionValue to OptionKey and added OptionValues as the store for values associated with OptionKeys > > commit 22edd24ca2c8af9ef010271d563b7dfdf63733e5 > Author: Doug Simon > Date: Fri Nov 11 18:16:35 2016 +0100 > > removed OptionValue profiling > > commit 42c3e92a20105bde82005616a0955c01deeda152 > Author: Andrew Haley > Date: Thu Nov 24 16:26:01 2016 +0000 > > Many small AArch64 fixes > From dean.long at oracle.com Wed Mar 22 18:01:55 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Wed, 22 Mar 2017 11:01:55 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: <65c16119-c9a4-f94a-a7d4-f9e22cc61cb4@oracle.com> References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> <65c16119-c9a4-f94a-a7d4-f9e22cc61cb4@oracle.com> Message-ID: Vladimir, don't you need to replace checkIndex with checkOffset in indexOf and lastIndexOf, so that we allow count == length? dl On 3/22/17 8:35 AM, Vladimir Ivanov wrote: >>>> So are we convinced that the proposed changes will never lead to a >>>> crash due to a missing or incorrect bounds check, due to a racy use of >>>> an unsynchronized ASB instance e.g. StringBuilder? >>> >>> If only we had a static analysis tool that could tell us if the code is >>> safe. Because we don't, in my initial changeset, we always take a >>> snapshot of the ASB fields by passing those field values to StringUTF16 >>> before doing checks on them. And I wrote a test to make sure that >>> those >>> StringUTF16 interfaces are catching all the underflows and overflows I >>> could imagine, and I added verification code to detect when a check was >>> missed. >>> >>> However, all the reviewers have requested to minimize the amount of >>> changes. In Vladimir's version, if there is a missing check somewhere, >>> then yes it could lead to a crash. > > I'd like to point out that asserts and verification code are disabled > by default. They are invaluable during problem diagnosis, but don't > help at all from defence-in-depth perspective. > > But I agree that it's easier to reason about and test the initial > version of the fix. > >> I wonder if the reviewers have fully realized the potential impact here? >> This has exposed a flaw in the way intrinsics are used from core >> classes. > > FTR here are the checks I omitted in the minimized version (modulo > separation of indexOf/lastIndexOf for trusted/non-trusted callers): > > http://cr.openjdk.java.net/~vlivanov/dlong/8158168/redundant_checks/ > > Other than that, the difference is mainly about undoing refactorings > and removing verification logic (asserts + checks in the JVM). > > There are still unsafe accesses which are considered safe in both > versions (see StringUTF16.Trusted usages in the initial version [1]). > > We used to provide safe wrappers for unsafe intrinsics which makes it > much easier to reason about code correctness. I'd like to see compact > string code refactored that way and IMO the initial version by Dean is > a big step in the right direction. > > I still prefer to see a point fix in 9 and major refactoring happening > in 10, but I'll leave the decision on how to proceed with the fix to > core-libs folks. After finishing the exercise minimizing the fix, I'm > much more comfortable with the initial fix [1] (though there are > changes I consider excessive). > > Best regards, > Vladimir Ivanov > > [1] http://cr.openjdk.java.net/~dlong/8158168/webrev.0 > >>>>>> Some clarifications: >>>>>> >>>>>> ============ >>>>>> src/java.base/share/classes/java/lang/String.java: >>>>>> >>>>>> The bounds check is needed only in String.nonSyncContentEquals >>>>>> when it >>>>>> extracts info from AbstractStringBuilder. I don't see how out of >>>>>> bounds access can happen in String.contentEquals: >>>>>> if (n != length()) { >>>>>> return false; >>>>>> } >>>>>> ... >>>>>> for (int i = 0; i < n; i++) { >>>>>> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >>>>>> >>>>> >>>>> OK. >>>>> >>>>>> ============ >>>>>> src/java.base/share/classes/java/lang/StringConcatHelper.java: >>>>>> >>>>>> I think bounds checks in StringConcatHelper.prepend() are skipped >>>>>> intentionally, since java.lang.invoke.StringConcatFactory constructs >>>>>> method handle chains which already contain bounds checks: array >>>>>> length >>>>>> is precomputed based on argument values and all accesses are >>>>>> guaranteed to be in bounds. >>>>>> >>>>> >>>>> This is calling the trusted version of getChars() with no bounds >>>>> checks. It was a little more obvious when I had the Trusted inner >>>>> class. >>>>> >>>>>> ============ >>>>>> src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>> >>>>>> + static void putChar(byte[] val, int index, int c) { >>>>>> + assert index >= 0 && index < length(val) : "Trusted caller >>>>>> missed bounds check"; >>>>>> >>>>>> Unfortunately, asserts can affect inlining decisions (since they >>>>>> increase bytecode size). In order to minimize possible performance >>>>>> impact, I suggest to remove them from the fix targeting 9. >>>>>> >>>>> >>>>> Sure. >>>>> >>>>>> ============ >>>>>> private static int indexOfSupplementary(byte[] value, int >>>>>> ch, int >>>>>> fromIndex, int max) { >>>>>> if (Character.isValidCodePoint(ch)) { >>>>>> final char hi = Character.highSurrogate(ch); >>>>>> final char lo = Character.lowSurrogate(ch); >>>>>> + checkBoundsBeginEnd(fromIndex, max, value); >>>>>> >>>>>> The check is redundant here. fromIndex & max are always inbounds by >>>>>> construction: >>>>>> >>>>>> public static int indexOf(byte[] value, int ch, int fromIndex) { >>>>>> int max = value.length >> 1; >>>>>> if (fromIndex < 0) { >>>>>> fromIndex = 0; >>>>>> } else if (fromIndex >= max) { >>>>>> // Note: fromIndex might be near -1>>>1. >>>>>> return -1; >>>>>> } >>>>>> ... >>>>>> return indexOfSupplementary(value, ch, fromIndex, max); >>>>>> >>>>> >>>>> OK. >>>>> >>>>>> ============ >>>>>> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >>>>>> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >>>>>> ABS.value & ABS.count. After that, all accesses should be >>>>>> inbounds by >>>>>> construction (in String.indexOf/lastIndexOf): >>>>>> >>>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >>>>>> String tgtStr, int fromIndex) { >>>>>> >>>>>> int rightIndex = srcCount - tgtCount; >>>>>> if (fromIndex > rightIndex) { >>>>>> fromIndex = rightIndex; >>>>>> } >>>>>> if (fromIndex < 0) { >>>>>> return -1; >>>>>> } >>>>>> >>>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>> public static int lastIndexOf(byte[] src, int srcCount, >>>>>> byte[] tgt, int tgtCount, int >>>>>> fromIndex) { >>>>>> int min = tgtCount - 1; >>>>>> int i = min + fromIndex; >>>>>> int strLastIndex = tgtCount - 1; >>>>>> char strLastChar = getChar(tgt, strLastIndex); >>>>>> >>>>>> startSearchForLastChar: >>>>>> while (true) { >>>>>> while (i >= min && getChar(src, i) != strLastChar) { >>>>>> >>>>>> There are 2 places: >>>>>> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - inbound >>>>>> >>>>>> * getChar(src, i); i in [ min; min+fromIndex ] >>>>>> min = tgtCount - 1 >>>>>> rightIndex = srcCount - tgtCount >>>>>> fromIndex <= rightIndex >>>>>> >>>>>> 0 <= min + fromIndex <= min + rightIndex == (tgtCount >>>>>> - 1) >>>>>> + (srcCount - tgtCount) == srcCount - 1 >>>>>> >>>>>> Hence, should be covered by the check on count & value: >>>>>> public int lastIndexOf(String str, int fromIndex) { >>>>>> + byte[] value = this.value; >>>>>> + int count = this.count; >>>>>> + byte coder = this.coder; >>>>>> + checkIndex(count, value.length >> coder); >>>>>> return String.lastIndexOf(value, coder, count, str, >>>>>> fromIndex); >>>>>> } >>>>>> >>>>> >>>>> OK, I will go with your version if it's OK with Sherman. >>>>> >>>>> dl >>>>> >>>>>> Best regards, >>>>>> Vladimir Ivanov >>>>>> >>>>>>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>>>>>> >>>>>>>>>> I have the same concern. Can we fix the immediate problem in >>>>>>>>>> 9 and >>>>>>>>>> integrate verification logic in 10? >>>>>>>>>> >>>>>>>>> >>>>>>>>> OK, Tobias is suggesting having verification logic only inside >>>>>>>>> the >>>>>>>>> intrinsics. Are you suggesting removing that as well? >>>>>>>> >>>>>>>> Yes and put them back in 10. >>>>>>>> >>>>>>>>> I'm OK with removing all the verification, but that won't reduce >>>>>>>>> the >>>>>>>>> library changes much. I could undo the renaming to >>>>>>>>> Trusted.getChar, but >>>>>>>>> we would still have the bounds checks moved into StringUTF16. >>>>>>>> >>>>>>>> I suggest to go with a point fix for 9: just add missing range >>>>>>>> checks. >>>>>>> >>>>> >>> From dean.long at oracle.com Wed Mar 22 18:28:18 2017 From: dean.long at oracle.com (dean.long at oracle.com) Date: Wed, 22 Mar 2017 11:28:18 -0700 Subject: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 In-Reply-To: References: <50408e3b-ed4c-9d7c-d708-abf82a4bd51f@oracle.com> <97816c11-612b-32f1-b83f-9bbf381bafd0@oracle.com> <97612541-fb38-e4ef-bf0d-ec50c9cfdc1a@oracle.com> <3553280e-6955-a574-8154-19cb52409300@oracle.com> <4c5752dc-5f8c-a217-770a-175a168711ed@oracle.com> <8b8aa012-8890-8cbc-29bf-0382a6369fc2@oracle.com> <65c16119-c9a4-f94a-a7d4-f9e22cc61cb4@oracle.com> Message-ID: <6a3d62b5-fbea-e982-d7d5-087f9badb028@oracle.com> Also, it looks like the changes I made to ASB.appendChars(char[] s, int off, int end) are not needed. dl On 3/22/17 11:01 AM, dean.long at oracle.com wrote: > Vladimir, don't you need to replace checkIndex with checkOffset in > indexOf and lastIndexOf, so that we allow count == length? > > dl > > > On 3/22/17 8:35 AM, Vladimir Ivanov wrote: >>>>> So are we convinced that the proposed changes will never lead to a >>>>> crash due to a missing or incorrect bounds check, due to a racy >>>>> use of >>>>> an unsynchronized ASB instance e.g. StringBuilder? >>>> >>>> If only we had a static analysis tool that could tell us if the >>>> code is >>>> safe. Because we don't, in my initial changeset, we always take a >>>> snapshot of the ASB fields by passing those field values to >>>> StringUTF16 >>>> before doing checks on them. And I wrote a test to make sure that >>>> those >>>> StringUTF16 interfaces are catching all the underflows and overflows I >>>> could imagine, and I added verification code to detect when a check >>>> was >>>> missed. >>>> >>>> However, all the reviewers have requested to minimize the amount of >>>> changes. In Vladimir's version, if there is a missing check >>>> somewhere, >>>> then yes it could lead to a crash. >> >> I'd like to point out that asserts and verification code are disabled >> by default. They are invaluable during problem diagnosis, but don't >> help at all from defence-in-depth perspective. >> >> But I agree that it's easier to reason about and test the initial >> version of the fix. >> >>> I wonder if the reviewers have fully realized the potential impact >>> here? >>> This has exposed a flaw in the way intrinsics are used from core >>> classes. >> >> FTR here are the checks I omitted in the minimized version (modulo >> separation of indexOf/lastIndexOf for trusted/non-trusted callers): >> >> http://cr.openjdk.java.net/~vlivanov/dlong/8158168/redundant_checks/ >> >> Other than that, the difference is mainly about undoing refactorings >> and removing verification logic (asserts + checks in the JVM). >> >> There are still unsafe accesses which are considered safe in both >> versions (see StringUTF16.Trusted usages in the initial version [1]). >> >> We used to provide safe wrappers for unsafe intrinsics which makes it >> much easier to reason about code correctness. I'd like to see compact >> string code refactored that way and IMO the initial version by Dean >> is a big step in the right direction. >> >> I still prefer to see a point fix in 9 and major refactoring >> happening in 10, but I'll leave the decision on how to proceed with >> the fix to core-libs folks. After finishing the exercise minimizing >> the fix, I'm much more comfortable with the initial fix [1] (though >> there are changes I consider excessive). >> >> Best regards, >> Vladimir Ivanov >> >> [1] http://cr.openjdk.java.net/~dlong/8158168/webrev.0 >> >>>>>>> Some clarifications: >>>>>>> >>>>>>> ============ >>>>>>> src/java.base/share/classes/java/lang/String.java: >>>>>>> >>>>>>> The bounds check is needed only in String.nonSyncContentEquals >>>>>>> when it >>>>>>> extracts info from AbstractStringBuilder. I don't see how out of >>>>>>> bounds access can happen in String.contentEquals: >>>>>>> if (n != length()) { >>>>>>> return false; >>>>>>> } >>>>>>> ... >>>>>>> for (int i = 0; i < n; i++) { >>>>>>> if (StringUTF16.getChar(val, i) != cs.charAt(i)) { >>>>>>> >>>>>> >>>>>> OK. >>>>>> >>>>>>> ============ >>>>>>> src/java.base/share/classes/java/lang/StringConcatHelper.java: >>>>>>> >>>>>>> I think bounds checks in StringConcatHelper.prepend() are skipped >>>>>>> intentionally, since java.lang.invoke.StringConcatFactory >>>>>>> constructs >>>>>>> method handle chains which already contain bounds checks: array >>>>>>> length >>>>>>> is precomputed based on argument values and all accesses are >>>>>>> guaranteed to be in bounds. >>>>>>> >>>>>> >>>>>> This is calling the trusted version of getChars() with no bounds >>>>>> checks. It was a little more obvious when I had the Trusted inner >>>>>> class. >>>>>> >>>>>>> ============ >>>>>>> src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>>> >>>>>>> + static void putChar(byte[] val, int index, int c) { >>>>>>> + assert index >= 0 && index < length(val) : "Trusted caller >>>>>>> missed bounds check"; >>>>>>> >>>>>>> Unfortunately, asserts can affect inlining decisions (since they >>>>>>> increase bytecode size). In order to minimize possible performance >>>>>>> impact, I suggest to remove them from the fix targeting 9. >>>>>>> >>>>>> >>>>>> Sure. >>>>>> >>>>>>> ============ >>>>>>> private static int indexOfSupplementary(byte[] value, int >>>>>>> ch, int >>>>>>> fromIndex, int max) { >>>>>>> if (Character.isValidCodePoint(ch)) { >>>>>>> final char hi = Character.highSurrogate(ch); >>>>>>> final char lo = Character.lowSurrogate(ch); >>>>>>> + checkBoundsBeginEnd(fromIndex, max, value); >>>>>>> >>>>>>> The check is redundant here. fromIndex & max are always inbounds by >>>>>>> construction: >>>>>>> >>>>>>> public static int indexOf(byte[] value, int ch, int >>>>>>> fromIndex) { >>>>>>> int max = value.length >> 1; >>>>>>> if (fromIndex < 0) { >>>>>>> fromIndex = 0; >>>>>>> } else if (fromIndex >= max) { >>>>>>> // Note: fromIndex might be near -1>>>1. >>>>>>> return -1; >>>>>>> } >>>>>>> ... >>>>>>> return indexOfSupplementary(value, ch, fromIndex, max); >>>>>>> >>>>>> >>>>>> OK. >>>>>> >>>>>>> ============ >>>>>>> I moved bounds checks from StringUTF16.lastIndexOf/indexOf to >>>>>>> ABS.indexOf/lastIndexOf. I think it's enough to do range check on >>>>>>> ABS.value & ABS.count. After that, all accesses should be >>>>>>> inbounds by >>>>>>> construction (in String.indexOf/lastIndexOf): >>>>>>> >>>>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>>> static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, >>>>>>> String tgtStr, int fromIndex) { >>>>>>> >>>>>>> int rightIndex = srcCount - tgtCount; >>>>>>> if (fromIndex > rightIndex) { >>>>>>> fromIndex = rightIndex; >>>>>>> } >>>>>>> if (fromIndex < 0) { >>>>>>> return -1; >>>>>>> } >>>>>>> >>>>>>> jdk/src/java.base/share/classes/java/lang/StringUTF16.java: >>>>>>> public static int lastIndexOf(byte[] src, int srcCount, >>>>>>> byte[] tgt, int tgtCount, int >>>>>>> fromIndex) { >>>>>>> int min = tgtCount - 1; >>>>>>> int i = min + fromIndex; >>>>>>> int strLastIndex = tgtCount - 1; >>>>>>> char strLastChar = getChar(tgt, strLastIndex); >>>>>>> >>>>>>> startSearchForLastChar: >>>>>>> while (true) { >>>>>>> while (i >= min && getChar(src, i) != strLastChar) { >>>>>>> >>>>>>> There are 2 places: >>>>>>> * getChar(tgt, strLastIndex) => getChar(tgt, tgtCount-1) - >>>>>>> inbound >>>>>>> >>>>>>> * getChar(src, i); i in [ min; min+fromIndex ] >>>>>>> min = tgtCount - 1 >>>>>>> rightIndex = srcCount - tgtCount >>>>>>> fromIndex <= rightIndex >>>>>>> >>>>>>> 0 <= min + fromIndex <= min + rightIndex == (tgtCount >>>>>>> - 1) >>>>>>> + (srcCount - tgtCount) == srcCount - 1 >>>>>>> >>>>>>> Hence, should be covered by the check on count & value: >>>>>>> public int lastIndexOf(String str, int fromIndex) { >>>>>>> + byte[] value = this.value; >>>>>>> + int count = this.count; >>>>>>> + byte coder = this.coder; >>>>>>> + checkIndex(count, value.length >> coder); >>>>>>> return String.lastIndexOf(value, coder, count, str, >>>>>>> fromIndex); >>>>>>> } >>>>>>> >>>>>> >>>>>> OK, I will go with your version if it's OK with Sherman. >>>>>> >>>>>> dl >>>>>> >>>>>>> Best regards, >>>>>>> Vladimir Ivanov >>>>>>> >>>>>>>> On 3/17/17 5:58 AM, Vladimir Ivanov wrote: >>>>>>>>> >>>>>>>>>>> I have the same concern. Can we fix the immediate problem in >>>>>>>>>>> 9 and >>>>>>>>>>> integrate verification logic in 10? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> OK, Tobias is suggesting having verification logic only >>>>>>>>>> inside the >>>>>>>>>> intrinsics. Are you suggesting removing that as well? >>>>>>>>> >>>>>>>>> Yes and put them back in 10. >>>>>>>>> >>>>>>>>>> I'm OK with removing all the verification, but that won't reduce >>>>>>>>>> the >>>>>>>>>> library changes much. I could undo the renaming to >>>>>>>>>> Trusted.getChar, but >>>>>>>>>> we would still have the bounds checks moved into StringUTF16. >>>>>>>>> >>>>>>>>> I suggest to go with a point fix for 9: just add missing range >>>>>>>>> checks. >>>>>>>> >>>>>> >>>> > From igor.veresov at oracle.com Wed Mar 22 20:47:59 2017 From: igor.veresov at oracle.com (Igor Veresov) Date: Wed, 22 Mar 2017 13:47:59 -0700 Subject: RFR(XXXL): 8177046 Update Graal In-Reply-To: References: Message-ID: <63CD6113-091F-4832-A54F-3FB536B1A640@oracle.com> Thanks, Vladimir! igor > On Mar 22, 2017, at 10:43 AM, Vladimir Kozlov wrote: > > Looks good. Thank you for doing this update. > > Vladimir > > On 3/21/17 2:06 PM, Igor Veresov wrote: >> This is Graal refresh in JDK10. It required some changes to jaotc mostly related how Graal options are now handled. It all seems to work - aot, jprt, rbt hs-tier0-comp. There is one failure in rbt which occurs when Graal is used as a JIT. But I think it can be addressed later and fixed in the next refresh (if there are no objections). >> >> Webrevs: >> >> http://cr.openjdk.java.net/~iveresov/8177046/webrev-jdk.00/ >> http://cr.openjdk.java.net/~iveresov/8177046/webrev-hotspot.00/ >> >> >> Changes between JDK-8166417 and JDK-8177046 : >> >> commit 532c57329aa3a453ff4d2fefeb6fddc3cc03b8aa >> Merge: 7347014 bd02b2e >> Author: Thomas W?rthinger >> Date: Fri Mar 17 16:50:06 2017 -0700 >> >> [GR-3285] Fixes to support JDK AOT use cases correctly. >> >> commit 7347014a9ca6751f9f7c27436bdad8d50e7ea168 >> Merge: f06c39e 6d22782 >> Author: Doug Simon >> Date: Fri Mar 17 16:21:09 2017 -0700 >> >> [GR-3277] Gate on jdk9-ea+161. >> >> commit f06c39e247e74ec36d88af1552ee5a19d36a7bb0 >> Merge: 099df9f 52727fa >> Author: Thomas W?rthinger >> Date: Fri Mar 17 15:35:44 2017 -0700 >> >> [GR-3275] Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. >> >> commit bd02b2edb414a309e4ba68261c5f936ef0e0a40d >> Author: Igor Veresov >> Date: Fri Mar 17 12:16:55 2017 -0700 >> >> Fix a few things to make JDK AOT work agian >> >> commit 52727fadfae472ac361c8af02e015eed9730d7dd >> Author: Thomas W?rthinger >> Date: Fri Mar 17 15:43:05 2017 +0100 >> >> Rewrite recursive algorithm in PropagateDeoptimizeProbabilityPhase to be iterative. >> >> commit 145bebb7ebceea51c375ed715ad7dd82f002e6d4 >> Author: Thomas W?rthinger >> Date: Fri Mar 17 15:22:36 2017 +0100 >> >> Add new phase that correctly propagates deoptimize probabilities upwards through the graph to control splits. >> >> commit 099df9ff553086d10a4369f692559e7035fc24bf >> Merge: 31e5340 5dfcdf0 >> Author: Thomas W?rthinger >> Date: Fri Mar 17 11:01:30 2017 -0700 >> >> [GR-3274] Add additional canonicalizations to the multiplication node for the case where one operand is constant. >> >> commit 6d227828278a32f78defcb78fcc58bdd19b88066 >> Author: Doug Simon >> Date: Fri Mar 17 18:31:37 2017 +0100 >> >> gate on jdk9-ea+161 >> >> commit 5dfcdf0ae1902818cb681da9f2b81b5fedb5e50f >> Author: Thomas W?rthinger >> Date: Fri Mar 17 16:48:32 2017 +0100 >> >> Add additional canonicalizations to the multiplication node for the case where one operand is constant. >> >> commit 31e5340042fc8bb9fb22b5704da7189e3e05e9e8 >> Merge: eb57bf9 cc28520 >> Author: Doug Simon >> Date: Fri Mar 17 07:58:15 2017 -0700 >> >> [GR-3265] Support jdk9-ea+161. >> >> commit cc2852014b474b44e4f5cd685885d347c644701f >> Author: Doug Simon >> Date: Fri Mar 17 01:11:00 2017 +0100 >> >> support jdk9-ea+161 >> >> commit eb57bf9a2e3ec66dc82f8ec6ded118f596535632 >> Merge: 1f9dd5e 3b24c57 >> Author: Andreas Woess >> Date: Fri Mar 17 06:06:28 2017 -0700 >> >> [GR-3256] Fix TraceTruffleAssumptions stack trace output. >> >> commit 1f9dd5e79298f1a36d1bed99f3d24017052f5f85 >> Merge: ef5624c aa243ee >> Author: Doug Simon >> Date: Fri Mar 17 03:50:27 2017 -0700 >> >> [GR-3267] JMH intrinsics need to be optional. >> >> commit aa243ee242d6e6c1fdd8a615407051b5609bcd00 >> Author: Doug Simon >> Date: Fri Mar 17 10:24:22 2017 +0100 >> >> JMH intrinsics need to be optional >> >> commit ef5624c9839fe9258dbc858b759a7821187d4a89 >> Merge: 6a44fba f741158 >> Author: Thomas W?rthinger >> Date: Thu Mar 16 07:39:13 2017 -0700 >> >> [GR-3149] Fix an issue in the conditional elimination that could lead to pi nodes for phis picking up wrong guards. >> >> commit f7411584e6bb957a83b47b4591b1e9163160c654 >> Author: Thomas W?rthinger >> Date: Thu Mar 16 15:06:53 2017 +0100 >> >> Fix an issue in the new conditional elimination that could lead to pi nodes for phis picking up wrong guards if branches are killed while preparing the info elements. >> >> commit 3b24c57e9d227d390b1b15773458c98ce27db065 >> Author: Andreas Woess >> Date: Thu Mar 16 13:48:52 2017 +0100 >> >> Enable node source positions for Truffle compilations if shouldDebugNonSafepoints() or TruffleEnableInfopoints=true >> >> commit d214ec43996729def84313aa7316d342e5cc63ce >> Author: Andreas Woess >> Date: Wed Mar 15 21:39:09 2017 +0100 >> >> Remove leftover debug code >> >> commit 829ceef47a7b14fd13e291d5dd1228d7c1990990 >> Author: Andreas Woess >> Date: Wed Mar 15 18:19:23 2017 +0100 >> >> Cleanup: no need to subclass CachingPEGraphDecoder >> >> commit 001322b49be3822638d8a9e1652692dedaa57784 >> Author: Andreas Woess >> Date: Wed Mar 15 19:17:39 2017 +0100 >> >> [GR-3256] Fix TraceTruffleAssumptions stack trace output. >> >> commit 6a44fba8e8004fe12934dc31e4f5dbb8dc6b26b3 >> Merge: 2cdb24c 1fd6484 >> Author: Doug Simon >> Date: Wed Mar 15 17:38:06 2017 -0700 >> >> [GR-3226] Add ZipPy based OOPSLA14 paper. >> >> commit 2cdb24c193d7f491dbd2dcbb0ae115bdcdc8c689 >> Merge: 1879aca 7afd70a >> Author: Doug Simon >> Date: Wed Mar 15 05:45:42 2017 -0700 >> >> [GR-3246] Handle exceptions while opening a Debug scope better. >> >> commit 7afd70a750ffbe2f2df2885c837f2e5d94609264 >> Author: Doug Simon >> Date: Wed Mar 15 12:53:25 2017 +0100 >> >> better reporting of exception when opening a Debug scope >> >> commit 1879acafd6342623873b2cc69132960abb4e327e >> Merge: 2e50f8e e3e8dfe >> Author: Thomas W?rthinger >> Date: Wed Mar 15 04:17:21 2017 -0700 >> >> [GR-3245] Improve canonicalizations of NarrowNode and ZeroExtendNode. Add additional canonicalization after fixing reads. >> >> commit e3e8dfeb54443fcc0f5772f3273cf86b899e3365 >> Author: Thomas W?rthinger >> Date: Wed Mar 15 11:22:45 2017 +0100 >> >> Use result bits instead of stamp in ZeroExtendNode. >> >> commit 1fc9abbc64212df38add4df80bd45bead25451a8 >> Author: Thomas W?rthinger >> Date: Tue Mar 14 19:20:24 2017 +0100 >> >> Also clear last location access in fix reads phase. >> >> commit 9ecb01147f54dd7808dcbf0ee0147427e7f7b04d >> Author: Thomas W?rthinger >> Date: Tue Mar 14 19:13:12 2017 +0100 >> >> Make sure short circuit or nodes are not introduced by canonicalization after logic expansion phase was run. >> >> commit 9aa8fd04caec7458d78b5fb14be771a7464aa9ca >> Author: Thomas W?rthinger >> Date: Tue Mar 14 16:26:36 2017 +0100 >> >> Remove memory phis during fix reads phase. >> >> commit 7ae30083e7e8f8d6ab163e2caf5da731032c125c >> Author: Thomas W?rthinger >> Date: Tue Mar 14 16:26:09 2017 +0100 >> >> Run a canonicalizer without GVN after fixing reads and removing pi nodes. >> >> commit 9f496abc97c020e406f2073d1ff0d8bd4730224a >> Author: Thomas W?rthinger >> Date: Tue Mar 14 16:25:48 2017 +0100 >> >> Add ability to disable GVN in canonicalizer. >> >> commit 409d5d42f9929a4790a6d0ec30c7b8188a61e660 >> Author: Thomas W?rthinger >> Date: Tue Mar 14 15:51:56 2017 +0100 >> >> Improved canonicalizations for NarrowNode and ZeroExtendNode. >> >> commit 2e50f8edb5a3f33f772510b1eb0480a28eac7db2 >> Merge: 8ffb5cf cf1dd8f >> Author: Thomas W?rthinger >> Date: Wed Mar 15 03:11:00 2017 -0700 >> >> [GR-3244] Load all non simm13 constants for OP3 ops. >> >> commit cf1dd8ff253c115efba7e6ec5ed9496fa45aad8e >> Author: Stefan Anzinger >> Date: Wed Mar 15 09:22:01 2017 +0000 >> >> [GR-3244] Load all non simm13 constants for OP3 ops. >> >> commit 8ffb5cf6ff82a5bf33f265da780c3e4a322f2127 >> Merge: 4182260 92abdc9 >> Author: Doug Simon >> Date: Tue Mar 14 17:59:03 2017 -0700 >> >> [GR-3243] Make check for option descriptor existence overridable. >> >> commit 92abdc9d0a82db0b2679d92ac834e8cd70b8d9ea >> Author: Doug Simon >> Date: Wed Mar 15 00:20:06 2017 +0100 >> >> allow option descriptor existence check to be overridden >> >> commit 418226004e091c7b511c97ee62467c138bd9bf0f >> Merge: ff3feb9 c2a2447 >> Author: Doug Simon >> Date: Tue Mar 14 15:16:04 2017 -0700 >> >> [GR-3212] [GR-3057] Replace PiNode+NodeIntrinsicStamp with placeholder node. >> >> commit c2a2447ad86f404b66e2c102e375cfcb00ab34aa >> Author: Doug Simon >> Date: Mon Mar 13 17:27:45 2017 +0100 >> >> use placeholders for PiNodes that get their stamp from a snippet replacee >> >> commit ff3feb9b4d246779f37d551522782c9ef66243dd >> Merge: 8d3e056 853af95 >> Author: Doug Simon >> Date: Tue Mar 14 14:45:33 2017 -0700 >> >> [GR-3241] JDK9 aware mechanism for options loading must be universally applied. >> >> commit 853af9549616df9829af52860c8a2ee9bc40150d >> Author: Doug Simon >> Date: Tue Mar 14 21:56:53 2017 +0100 >> >> loading options must always be jdk9-modules aware >> >> commit 8d3e05605e59da9c4d576895c81ae04b4250efe8 >> Merge: 2cfd95a 3dac632 >> Author: Doug Simon >> Date: Tue Mar 14 14:13:36 2017 -0700 >> >> [GR-3240] Remove static field Stub.stubs. >> >> commit 1fd64845a4f1dc9b17d75edf045d4e88464d43f6 >> Author: Doug Simon >> Date: Tue Mar 14 22:11:19 2017 +0100 >> >> add "Accelerating iterators in optimizing AST interpreters" paper (OOPSLA14) >> >> commit 3dac632a0a789232cd405a622ef973ed3d2bc816 >> Author: Doug Simon >> Date: Tue Mar 14 21:04:19 2017 +0100 >> >> replace Stub.getStubs() with HotSpotForeignCallProvider.getStubs() >> >> commit 2cfd95a6a5ab2cd0785c67a1fe5264a5c3fdb42d >> Merge: 06fbf00 492bf4f >> Author: Thomas W?rthinger >> Date: Tue Mar 14 12:44:05 2017 -0700 >> >> [GR-3238] Improve killCFG to reliably delete nodes. >> >> commit 492bf4f48c3a7e8f5bfd0060b0ca681cbb0ddd5b >> Author: Gilles Duboscq >> Date: Thu Mar 9 17:42:44 2017 +0100 >> >> [GR-3195] Fix killCFG leaving 'unsafe' inputs >> >> Avoid using null for the input of Phi nodes, use Poison instead. >> >> commit 06fbf000db55cea8c15e0099415010adcb4984b0 >> Merge: 21ec724 0da5287 >> Author: Thomas W?rthinger >> Date: Tue Mar 14 06:53:40 2017 -0700 >> >> [GR-3227] Simplify and improve address lowering to swap index and base when appropriate. >> >> commit 0da528791a95721947a41ec5a33e65726ae443b8 >> Author: Thomas W?rthinger >> Date: Tue Mar 14 14:03:05 2017 +0100 >> >> Simplify and improve address lowering to swap index and base when appropriate. >> >> commit 21ec724defa8a0f08bbe5a512f45d0b8ed5146ad >> Merge: 7a12664 8fdd855 >> Author: Doug Simon >> Date: Tue Mar 14 05:47:15 2017 -0700 >> >> [GR-3222] Try detect missing @Option annotation processor. >> >> commit 7a1266444ead236c3dbb727b7faf39e3436f6d6c >> Merge: e78391d 6d84784 >> Author: Thomas W?rthinger >> Date: Tue Mar 14 04:26:27 2017 -0700 >> >> [GR-3225] Recognize implicit null checks as part of trapping null checks phase. >> >> commit 6d84784cb648102c191a1712e3dbfaad5a69f09e >> Author: Thomas W?rthinger >> Date: Tue Mar 14 01:44:07 2017 +0100 >> >> Recognize implicit null checks as part of trapping null checks phase. >> >> commit 8fdd8558be437b463cee5f04565eff2319530744 >> Author: Doug Simon >> Date: Mon Mar 13 23:38:55 2017 +0100 >> >> try detect missing @Option annotation processor dependency >> >> commit e78391dedad2787f274f28f156279472deb9aa45 >> Merge: bd6f7bf 89e208f >> Author: Thomas W?rthinger >> Date: Mon Mar 13 12:59:01 2017 -0700 >> >> [GR-3218] Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. >> >> commit 89e208f171d14306d1d6746e208ccb049e1df4be >> Author: Thomas W?rthinger >> Date: Mon Mar 13 20:32:02 2017 +0100 >> >> Fix a bug in the EconomicMap implementation that could lead to skipping an element during iteration when removing an element triggers a compression. >> >> commit bd6f7bffb0020b21a0d7b9628bd21bf03cd9b2bc >> Merge: 95ddee1 6f36b03 >> Author: Thomas W?rthinger >> Date: Mon Mar 13 10:48:35 2017 -0700 >> >> [GR-3217] Improve code for pointer compression. >> >> commit 6f36b03649c4012fbb2ed8656db4b01e451eb9fe >> Author: Thomas W?rthinger >> Date: Mon Mar 13 17:33:02 2017 +0100 >> >> Introduce mayNullCheckSkipConversion method in ConvertNode interface. Move address lowering after fixed read phase. >> >> commit 74fe0007e19dced56b07155b3ee5e95c7c0ce67e >> Author: Thomas W?rthinger >> Date: Mon Mar 13 15:16:07 2017 +0100 >> >> Add option to avoid barrier on unsafe stores. Rename unsafe store and load nodes to "raw" unsafe store and load nodes. >> >> commit 4a53d32d315925b766337f030cdaaf52ff0686be >> Author: Thomas W?rthinger >> Date: Thu Mar 9 14:18:15 2017 +0100 >> >> Fix write barrier verification phase. >> >> commit 9f67aa8d206369fba444345e4cc16389af8ebfd1 >> Author: Thomas W?rthinger >> Date: Wed Mar 8 17:56:31 2017 +0100 >> >> Adjust compressed null check test to not modify the graph and for the fact that this canonicalization now occurs in the IsNullNode. >> >> commit 45523aac92e8fcf2f4cb6725a70952ee0caea510 >> Author: Thomas W?rthinger >> Date: Wed Mar 8 15:32:14 2017 +0100 >> >> Add skip through lossless convert functionality to IsNullNode. >> >> commit 5ca64dd073772f43f10173cb7cef400823624dd9 >> Author: Thomas W?rthinger >> Date: Sun Feb 26 21:28:14 2017 +0100 >> >> Introduce init location and use this location to decide whether a write is an initialization write or not. >> >> commit 19ce207634905a612f94a441bd3e4881c9699995 >> Author: Thomas W?rthinger >> Date: Sun Feb 26 20:27:54 2017 +0100 >> >> Simplify ReadNode and WriteNode constructors. >> >> commit 05a3d7d8e53d16ec243d364ef24b6ef492b4cf0f >> Author: Thomas W?rthinger >> Date: Sun Feb 26 18:28:18 2017 +0100 >> >> Remove DirectObjectStoreNode and replace usages with UnsafeStoreNode. >> >> commit 60ba844f0bb94bbc9a0e4bdad2112cbc92fc72b4 >> Author: Thomas W?rthinger >> Date: Sun Feb 26 17:34:29 2017 +0100 >> >> Move CompressEncoding from HotSpot-specific to general part. Remove unused alignment field. >> >> commit 95ddee1ea392e4454b83264e4c0ef728821d0fad >> Merge: 64194d0 b560415 >> Author: Gilles Duboscq >> Date: Mon Mar 13 08:26:22 2017 -0700 >> >> [GR-2555] Fold `x - 1 |<| x || x == 0`. >> >> commit b56041582a6bbc19d871c5227b7fd6eff89f320b >> Author: Gilles Duboscq >> Date: Mon Mar 13 15:03:00 2017 +0100 >> >> ZeroExtend: avoid problems with empty stamps >> >> commit 64194d0b9be6e22ef948abaae3300b8051844407 >> Merge: 7281bc5 284e39f >> Author: Christian Humer >> Date: Mon Mar 13 05:59:25 2017 -0700 >> >> [GR-3182] Do not reuse frame descriptor for OSR root nodes. >> >> commit 42eb5d00d9abc466c8faa9f4bde5551a0807aa3c >> Author: Gilles Duboscq >> Date: Mon Feb 27 16:29:39 2017 +0100 >> >> Add NumUtil.sameSign and IntegerStamp.sameSignBounds >> >> commit 3dee10a429eef95104c192473a89909ef2d61f5f >> Author: Gilles Duboscq >> Date: Fri Feb 24 17:45:26 2017 +0100 >> >> Make sure splitIfAtPhi is not appliest before FSA >> >> commit 2163d91dac75656609a5b160f69e58db4ac9cbfd >> Author: Gilles Duboscq >> Date: Fri Feb 24 17:43:19 2017 +0100 >> >> Add more tests >> >> commit 1d453dfc3b7df282a842e1cb01d14d52e9d6ba80 >> Author: Gilles Duboscq >> Date: Fri Feb 24 17:41:18 2017 +0100 >> >> Canonicalize NormalizeCompare patterns >> >> commit e196bac444f1e95c018d0909af12d9a049b4be24 >> Author: Gilles Duboscq >> Date: Tue Mar 7 07:57:42 2017 -0800 >> >> Canonicalize `a + MIN < b + MIN` to `a |<| b` >> >> commit 2ef1eb30f194d140bbc762161dc5664c861f1c62 >> Author: Gilles Duboscq >> Date: Fri Feb 24 18:10:40 2017 +0100 >> >> Canonicalize x + c < x >> >> commit 85cc9ffe2a6b6e2d64c2a36a0e2ee9ab0b0a491b >> Author: Gilles Duboscq >> Date: Fri Feb 24 17:35:33 2017 +0100 >> >> Canonicalize x + c1 == c2 >> >> commit 4567b9e3602866ed367a8eea12959d7ba4d84f9a >> Author: Gilles Duboscq >> Date: Fri Jan 27 18:33:32 2017 +0100 >> >> [GR-2555] Fold `x - 1 |<| x || x == 0`. >> >> Added the `y + c |<| y` and `x |<| x + c` patterns for conditional >> elimination. >> Added `StampInverter`, make `IntegerConvert` implement it and use it in >> the new conditional elimination. >> This allows it to get a stamp for x when it has one for zeroExtand(x). >> >> commit 878a6d72927e4ca53f4ed028badde8be24e905a5 >> Author: Gilles Duboscq >> Date: Tue Feb 14 15:46:17 2017 +0100 >> >> Move NumUtil to core.common >> >> Also remove common and merge it into core.common >> >> commit 7281bc5cc25cb83e4ec7414b4804d33dab44384c >> Merge: a0848f5 a8a5023 >> Author: Doug Simon >> Date: Fri Mar 10 12:42:32 2017 -0800 >> >> [GR-3196] Remove obsolete ImmutableCode functionality. >> >> commit a8a50239411881f0f9f7a0fa215d7c38447ffdf1 >> Author: Doug Simon >> Date: Fri Mar 10 15:42:29 2017 +0100 >> >> removed obsolete ImmutableCode logic >> >> commit a0848f59192d1a60d1b8b7842b9afd7a13cd9762 >> Merge: 6453e48 7eceda8 >> Author: Tom Rodriguez >> Date: Fri Mar 10 08:55:24 2017 -0800 >> >> [GR-3179] Fixed register usage for string indexof assembly. >> >> commit 6453e489e796f009e1a4bcfec15f47aa393ed1aa >> Merge: bd0c1e6 27c119f >> Author: Vojin Jovanovic >> Date: Fri Mar 10 08:44:20 2017 -0800 >> >> [GR-3200] Update intellij instructions. >> >> commit 27c119fa93233a9662800b8ba57b8740e4d1e2b3 >> Author: Vojin Jovanovic >> Date: Fri Mar 10 16:22:49 2017 +0100 >> >> [doc] update intellij instructions >> >> commit 08c8f8ac24c366f70be86a113416dede8597e282 >> Author: Doug Simon >> Date: Fri Mar 10 12:43:35 2017 +0100 >> >> options should be taken from graph if possible >> >> commit bd0c1e6c2c405d2735f52d7459a377ba8ed00354 >> Merge: 9dfc7ba ec0bd51 >> Author: Doug Simon >> Date: Fri Mar 10 01:50:19 2017 -0800 >> >> [GR-2577] Make it possible to build Graal using only jdk9. >> >> commit ec0bd511c177a86742a9c9ea1e48b40ecb15817f >> Author: Doug Simon >> Date: Thu Mar 9 22:54:20 2017 +0100 >> >> update mx version >> >> commit 9dfc7baa47e299e224dda6d98963ad4491eda5ac >> Merge: 1bc5b55 e4baf69 >> Author: Thomas W?rthinger >> Date: Fri Mar 10 01:18:37 2017 -0800 >> >> [GR-3188] Add receiver null check for Truffle load nodes. >> >> commit 1bc5b55d432067f53b2c3ab2ae3769c773c740db >> Merge: 628fd73 ac4d892 >> Author: Aleksandar Prokopec >> Date: Thu Mar 9 14:30:22 2017 -0800 >> >> [GR-3186] Add the unfreeze method to Graph. >> >> commit e4baf69da8e898edfc4aeff245b38503fae9e123 >> Author: Thomas W?rthinger >> Date: Thu Mar 9 23:11:49 2017 +0100 >> >> Add receiver null check for Truffle load nodes. >> >> commit 628fd73bc0eabd520776b6ff70e594b628824779 >> Merge: 999da54 653fb60 >> Author: Josef Eisl >> Date: Thu Mar 9 14:07:54 2017 -0800 >> >> [GR-3175] Run DaCapo style benchmarks on both nodes in parallel. >> >> commit 7eceda86f64250769900d6822e2b003cc3f29f50 >> Author: Tom Rodriguez >> Date: Wed Mar 8 16:33:20 2017 -0800 >> >> Fixed register usage for string indexof assembly >> >> commit 653fb601e3dec18a4bee56ca80a662a036f5d982 >> Author: Josef Eisl >> Date: Thu Mar 9 13:21:39 2017 +0100 >> >> [ci] increase tmpfs for x32 to 25g >> >> commit a664309dd7012fb10443354112153ab10d1d395a >> Author: Josef Eisl >> Date: Thu Mar 9 11:37:26 2017 +0100 >> >> [ci] use curly braces for environment variables >> >> commit a37e70600b9bbb0f584aaacbc242a15e31a38cf6 >> Author: Josef Eisl >> Date: Thu Mar 9 10:54:47 2017 +0100 >> >> [ci] rename results file environment variables >> >> commit 15a25de31654dfddb9741ff929107a55198d19f6 >> Author: Josef Eisl >> Date: Thu Feb 23 16:54:44 2017 +0100 >> >> [ci] run DaCapo-style benchmarks in parallel on multi-node machines >> >> commit ac4d892824d40e9eec14d09bdd266ff127b0e8f4 >> Author: Aleksandar Prokopec >> Date: Thu Mar 9 14:02:05 2017 +0100 >> >> [feature] Add temporary graph freeze state, and allow unfreezing a graph. >> >> commit 3df3392bb818125288ab7f5a373e56061e77caaa >> Author: Doug Simon >> Date: Thu Mar 9 16:41:11 2017 +0100 >> >> IGV doesn't yet work with JDK 9 >> >> commit 999da5413324bfb8ed4e80ee432580a18f299928 >> Merge: feac9f6 21a99d7 >> Author: Thomas W?rthinger >> Date: Thu Mar 9 05:09:49 2017 -0800 >> >> [GR-3072] Fix non-null stamp machinery for other non-object pointers. >> >> commit 2d278ebaced888850305403c9e231eeb22ce8c09 >> Author: Doug Simon >> Date: Thu Mar 9 13:36:39 2017 +0100 >> >> made String.indexOf intrinsic optional >> >> commit 9eea440de6c54932fa07b4035931013aea20bc76 >> Author: Gilles Duboscq >> Date: Wed Feb 1 15:34:41 2017 +0100 >> >> make it possible to build against 9 alone >> >> Use newer mx >> Replace uses of internal ASM in test with external ASM jars >> Made some substitutions optional >> >> commit 284e39fda0613ec9e0f5f4bfcf44e0b95a4b6838 >> Author: Lukas Stadler >> Date: Thu Mar 9 12:02:55 2017 +0100 >> >> fix warning problem >> >> commit 5d5de01bec53de85de0142846db01f4cdea24a35 >> Author: Lukas Stadler >> Date: Thu Mar 9 11:53:04 2017 +0100 >> >> do not reuse frame descriptor for OSR root nodes >> >> commit feac9f656ade524ae81808ee81f47cb286f6653e >> Merge: 3cead4d 1ed06ff >> Author: Thomas W?rthinger >> Date: Thu Mar 9 04:00:21 2017 -0800 >> >> [GR-3077] The isSingleValueUser method returns wrong answer for guards. >> >> commit 3cead4d7405b6d55d1a7e6162c1295c987d5197d >> Merge: e9098f7 623d6f4 >> Author: Thomas W?rthinger >> Date: Thu Mar 9 03:20:41 2017 -0800 >> >> [GR-3184] Improve out of loop schedule to take frequency of latest block and block before the loop header into account. >> >> commit e9098f79a7c052ec6efe024cf1a3d76abf198301 >> Merge: 4edf987 d3c879f >> Author: Josef Eisl >> Date: Thu Mar 9 03:18:16 2017 -0800 >> >> [GR-3180] Move dump-on-error flags to gate command. >> >> commit 4edf987dc522a6147117a504c328dec3aca3fd52 >> Merge: 78521e4 681750b >> Author: Stefan Anzinger >> Date: Thu Mar 9 03:17:11 2017 -0800 >> >> [GR-2191] Extend inliner to start with a fixed list of invocations. >> >> commit 78521e45d34bac7ab4beb745c8ab9ec555d64d5a >> Merge: 2f7198e 9df9b45 >> Author: Lukas Stadler >> Date: Thu Mar 9 02:17:46 2017 -0800 >> >> [GR-3115] Inline methods with substitutions during partial evaluation. >> >> commit d3c879f84babaa6daa6a6d10c9d65c5bd4a86d33 >> Author: Josef Eisl >> Date: Thu Mar 9 10:59:02 2017 +0100 >> >> [ci] add DumpOnError and PrintGraphFile flags to the gate command >> >> commit 3bc433871313065fc8e3238e6359e6759baf6ecd >> Author: Josef Eisl >> Date: Thu Mar 9 10:56:37 2017 +0100 >> >> Revert "[feature] Capture bgv files on error." >> >> This reverts commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39. >> >> commit 2f7198e7f388e0d2f703a8de23c13880358c000f >> Merge: fde4a7c f61e0db >> Author: Codrut Stancu >> Date: Wed Mar 8 15:05:04 2017 -0800 >> >> [GR-3157] Trace constant roots. >> >> commit 623d6f44695a5670b1ee04d58f75b7894a763c3e >> Author: Thomas W?rthinger >> Date: Wed Mar 8 21:56:49 2017 +0100 >> >> Always move out of loops when value proxies are in the graph. >> >> commit 38468d9cf613d4f59a3f5706535b44f8b4f5993c >> Author: Thomas W?rthinger >> Date: Wed Mar 8 17:55:56 2017 +0100 >> >> Modify memory schedule test to include loop frequencies. >> >> commit f5353a213553b16e07a8ba4a5a54aba6e050ce5e >> Author: Thomas W?rthinger >> Date: Wed Mar 8 17:34:07 2017 +0100 >> >> Improve out of loop schedule to take frequency of latest block and block before the loop header into account. >> >> commit f61e0db76eb16726ffd2179ae2c2ee44cc075c0e >> Author: Codrut Stancu >> Date: Fri Mar 3 19:51:46 2017 -0800 >> >> Trace constant roots WIP. >> >> commit fde4a7c26c2d8d5323c51bc56e4bdc3392e73035 >> Merge: 8b69e82 e85077e >> Author: Josef Eisl >> Date: Wed Mar 8 10:06:13 2017 -0800 >> >> [GR-3039] Remove usage of AbstractBlockEndOp. >> >> commit e85077e645e4556c5256a545f22f9d99038ac38d >> Author: Josef Eisl >> Date: Fri Feb 24 22:09:18 2017 +0100 >> >> [fix] TraceRA: remove AbstractBlockEndOp >> >> commit 85f497f35b6bd544728f1057ad577a76add79e2a >> Author: Josef Eisl >> Date: Tue Feb 28 17:43:35 2017 +0100 >> >> [refactor] move outgoingValues to JumpOp (needed for phis only) >> >> commit 69af182ef55df980a8637763224a09ed40809eab >> Author: Josef Eisl >> Date: Tue Feb 28 17:50:37 2017 +0100 >> >> [fix] remove outgoing from BlockEndOp >> >> commit 19a7d71645326678af072f00faed7bcc6175cf1b >> Author: Josef Eisl >> Date: Wed Mar 8 09:49:11 2017 +0100 >> >> [fix] Remove addOutgoingValues ad forEachOutgoingValue from BlockEndOp >> >> commit 681750bf03f5f9bc9c63dd8d6d8d537ae1681ea3 >> Author: Stefan Anzinger >> Date: Fri Feb 24 13:26:42 2017 +0000 >> >> [feature] Extend inliner to start with a fixed list of invocations. >> >> commit 8b69e82739f0f8696b7e61cb2d0d10fa338d68a6 >> Merge: 6e73e85 d9c4c19 >> Author: Aleksandar Prokopec >> Date: Wed Mar 8 04:39:09 2017 -0800 >> >> [GR-3160] Always capture bgv files when Graal builds fail. >> >> commit d9c4c19dd92c6149f0a1306b48b348e66dee6b39 >> Author: Aleksandar Prokopec >> Date: Wed Mar 8 11:15:56 2017 +0100 >> >> [feature] Capture bgv files on error. >> >> commit 6e73e855621572d2df86d9aa0aae9c7eab158b2d >> Merge: abf7690 3de73d2 >> Author: Roland Schatz >> Date: Wed Mar 8 03:12:02 2017 -0800 >> >> [GR-3161] Update truffle import. >> >> commit 3de73d21cc5e946f80366c3b330737ea967b94ff >> Author: Roland Schatz >> Date: Wed Mar 8 11:30:44 2017 +0100 >> >> Update truffle import. >> >> commit abf76900647664115b38cc46e4fcfd0a76c9f94e >> Merge: b3b9eb7 1e2e897 >> Author: Thomas W?rthinger >> Date: Wed Mar 8 01:28:39 2017 -0800 >> >> [GR-3080] Fix issues with pi rewiring and picking up wrong conditions in the conditional elimination. >> >> commit 1e2e89737fa43878186d94ae36cb5aacdb7dc7d9 >> Author: Thomas W?rthinger >> Date: Tue Mar 7 22:38:26 2017 +0100 >> >> Add documentation on the methods that pick up stamps and change getSafeStamp for the primary value. >> >> commit a9d7655bbc623e730291b95dc95b35a1376da90c >> Author: Thomas W?rthinger >> Date: Tue Mar 7 21:23:39 2017 +0100 >> >> Adding back AndNode second level structural conditional elimination. >> >> commit 42fe25cbfa75fd055cdc548bab626e6868d89560 >> Author: Thomas W?rthinger >> Date: Tue Mar 7 16:12:29 2017 +0100 >> >> Only look up info elements in own pi chain. >> >> commit 6f310e81d7733b91394fae785545828637aaf5ed >> Author: Thomas W?rthinger >> Date: Mon Mar 6 20:58:02 2017 +0100 >> >> Make getSafeStamp more aggressive. >> >> commit 875e510f8197bbe15de0f3b0af4707c76007f907 >> Author: Thomas W?rthinger >> Date: Mon Mar 6 19:46:50 2017 +0100 >> >> Do not rewire pis in new conditional elimination. Use safe stamps on both sides of binary operations. >> >> commit b3b9eb76f239a1d01cb2d2329c3c8d964c95f288 >> Merge: 553d83c b7fb999 >> Author: Thomas W?rthinger >> Date: Wed Mar 8 00:34:51 2017 -0800 >> >> [GR-3159] Make FixReadsPhase extensible to allow changing scheduling strategy. >> >> commit b7fb9991b3be11483e8318c2409eacca80535f92 >> Author: Thomas W?rthinger >> Date: Tue Mar 7 21:58:09 2017 +0100 >> >> Make FixReadsPhase extensible to allow changing scheduling strategy. >> >> commit 553d83c86231497effd130c5bd4e7ba92a04f37f >> Merge: 950f4d0 d11b37d >> Author: Aleksandar Prokopec >> Date: Tue Mar 7 07:31:02 2017 -0800 >> >> [GR-3143] Do profiling on @TruffleBoundary and not @TruffleCallBoundary. >> >> commit d11b37df3b28ab01cb294614f1b01ab61f170f88 >> Author: Aleksandar Prokopec >> Date: Tue Mar 7 12:34:07 2017 +0100 >> >> [fix] Instrument TruffleBoundary calls instead of TruffleCallBoundary calls. >> >> commit 950f4d030178eef043fb2ee2b19c31612790e774 >> Merge: 82d2de2 5122025 >> Author: Josef Eisl >> Date: Tue Mar 7 05:58:25 2017 -0800 >> >> [GR-3039] TraceRA: no longer store global liveness information in LIR. >> >> commit 512202516f20a4886f259eac8b24260bd55421ed >> Author: Josef Eisl >> Date: Wed Mar 1 15:01:46 2017 +0100 >> >> [refactor] TraceRA[GLI]: rename addIncoming/addOutgoing to setIncoming/setOutgoing >> >> commit d73a39e114c7c8903ef195e8cc62f37cacea1052 >> Author: Josef Eisl >> Date: Wed Mar 1 13:23:31 2017 +0100 >> >> [refactor] TraceRA[BU]: inline PhiVisitor >> >> commit 4367403e3926209294ee809763f6025b092ef073 >> Author: Josef Eisl >> Date: Sat Feb 25 15:16:32 2017 +0100 >> >> [feature] TraceRA[LS]: only materialize the locations array if there is an inter-trace edge >> >> commit 4e92fde8266aeb98b24ce53d13c4c2a16447a32e >> Author: Josef Eisl >> Date: Tue Feb 28 11:26:36 2017 +0100 >> >> [fix] TraceRA[LS]: do not insert spill moves at block begin >> >> commit 3047f501f54a0a7b6af351a78386496a77726677 >> Author: Josef Eisl >> Date: Sat Feb 25 14:09:09 2017 +0100 >> >> [feature] TraceRA[LS]: set inter-trace hints only if there is none >> >> commit 2beb022cc6fd0f90d338ffb8af299e6874eabaeb >> Author: Josef Eisl >> Date: Sat Feb 25 14:02:44 2017 +0100 >> >> [fix] TraceRA[LS]: set hints for phis again >> >> commit da6bbc89aa9edfa40a815f5923b3de65b699ddda >> Author: Josef Eisl >> Date: Fri Feb 24 23:32:38 2017 +0100 >> >> [refactor] TraceRA: remove remaining SSI references >> >> commit 376c4318fd2d26d4a7c6db015c3d7f99669ba7ac >> Author: Josef Eisl >> Date: Fri Feb 24 23:12:56 2017 +0100 >> >> [refactor] TraceRA: rename SSIConstructionPhase to GlobalLivenessAnalysisPhase >> >> commit 5a80c97c9307808a5f7be393dc87b7904cf52cc1 >> Author: Josef Eisl >> Date: Fri Feb 24 22:59:25 2017 +0100 >> >> [refactor] TraceRA: inline FastSSIBuilder >> >> commit c610210904138d997566ef71250f688a1cbcf429 >> Author: Josef Eisl >> Date: Fri Feb 24 22:49:29 2017 +0100 >> >> [refactor] TraceRA: remove SSIBuilderBase >> >> commit d243ee9785788cd8b2494253fb152496b2cad416 >> Author: Josef Eisl >> Date: Fri Feb 24 22:38:54 2017 +0100 >> >> [refactor] TraceRA: remove old SSIBuilder >> >> commit 5ad64f66d489e65b896fb32407231d9b25640924 >> Author: Josef Eisl >> Date: Fri Feb 24 21:43:48 2017 +0100 >> >> [refactor] TraceRA: remove SSIUtil >> >> commit adbec4d62dbdc279e86a8143f3b8ac5026c36743 >> Author: Josef Eisl >> Date: Tue Feb 28 17:50:09 2017 +0100 >> >> [fix] TraceRA: no longer use BlockEndOp >> >> commit 05b04309d260619f46c01816d6085f7a171344e6 >> Author: Josef Eisl >> Date: Fri Feb 24 18:17:02 2017 +0100 >> >> [fix] TraceRA: remove obsolete verification code >> >> commit ff40a6950ec55e9a122ad09a37feb09a3f0347c2 >> Author: Josef Eisl >> Date: Fri Feb 24 18:11:00 2017 +0100 >> >> [fix] TraceRA: reenable inter-trace hints >> >> commit 490a30c2bdecbbf4008622979c5e1001a4525bcd >> Author: Josef Eisl >> Date: Wed Feb 22 13:41:28 2017 +0100 >> >> [doc] TraceRA[BU]: fix javadoc >> >> commit 84e0436c5373100b74372e225a1c5698b6095cac >> Author: Josef Eisl >> Date: Fri Feb 24 17:31:47 2017 +0100 >> >> [feature] TraceRA: remove indirection for getBlockIn and getBlockOut in GlobalLivenessInfo >> >> commit dcf20531d5594bffd02f6dbbdeba804106c68657 >> Author: Josef Eisl >> Date: Fri Feb 24 17:08:23 2017 +0100 >> >> [feature] TraceRA: do not initialize live vars with empty lists >> >> commit 9f21a8cddef25b4c02d6e710cd90201f85b4cbdc >> Author: Josef Eisl >> Date: Fri Feb 24 15:24:29 2017 +0100 >> >> [feature] TraceRA: support GlobalLivenessInfo in CFGPrinter >> >> commit f9f749f707be597af432e59b8aa701f817b4a4f9 >> Author: Josef Eisl >> Date: Fri Feb 24 15:26:34 2017 +0100 >> >> [feature] TraceRA: do no longer store global liveness info in LIR >> >> commit 91947056239d8f3c0dcf7e2bf91c532e91bbd6a6 >> Author: Josef Eisl >> Date: Fri Feb 24 15:27:45 2017 +0100 >> >> [fix] Improve assertion message in RedundantMoveElimination >> >> commit 82d2de215cbec3582663556d92faaa2f4483fe94 >> Merge: ef0b935 736c34a >> Author: Doug Simon >> Date: Tue Mar 7 03:17:57 2017 -0800 >> >> [GR-2865] Print absolute IGV dump paths. >> >> commit 1ed06ff10c3b155131a81fbff31abb1aa4fd6779 >> Author: Tom Rodriguez >> Date: Tue Feb 28 14:07:34 2017 -0800 >> >> isSingleValueUser returns wrong answer for guards >> >> commit 9df9b455e1a62101055b5267c2711ce5e8b6e0fc >> Author: Christian Wimmer >> Date: Mon Mar 6 15:17:08 2017 -0800 >> >> Partial evaluation tests for String.hashCode >> >> commit ea7a1ace84c5f20498b3c66642e0c828e2edd385 >> Author: Christian Wimmer >> Date: Mon Mar 6 14:01:22 2017 -0800 >> >> Inline methods with substitutions during partial evaluation >> >> commit 736c34a602a67275222f69beecd7b56ec37f4844 >> Author: Stefan Anzinger >> Date: Mon Mar 6 18:16:13 2017 +0000 >> >> [GR-2865] Print absolute IGV dump paths. >> >> commit ef0b935e346c7708cf871ac0ec07d88fbd30921b >> Merge: 485dc46 490067c >> Author: Doug Simon >> Date: Mon Mar 6 03:31:11 2017 -0800 >> >> [GR-3048] Re-enable gating on JDK 9 snapshots. >> >> commit 490067c9cab133f2ee472f787cb6dd28df2a9cfb >> Author: Doug Simon >> Date: Sun Mar 5 21:01:47 2017 +0100 >> >> include app class loader when searching for services in modules that extend Graal >> >> commit f9ec74f473ffeba34506d416d85838d2618f21f7 >> Author: Doug Simon >> Date: Sun Mar 5 20:31:28 2017 +0100 >> >> added utility for concatenating iterables >> >> commit 5c6c4078ced8ce32a9d3f95d4458e9bc2aec68e7 >> Author: Doug Simon >> Date: Wed Mar 1 16:04:41 2017 +0100 >> >> re-enable JDK 9 snapshot related builds >> >> commit 155a9821cda95f01d87b47f4b3e4b625f76b95b5 >> Author: Doug Simon >> Date: Sun Feb 26 15:03:57 2017 +0100 >> >> fall back to app class loader for LayoutFactory provider on JDK 9 >> >> commit ebd6ffc196f496fa12d66083756bba7c119c09e8 >> Author: Doug Simon >> Date: Sun Feb 26 22:44:57 2017 +0100 >> >> adapt to JDK-8174879 >> >> commit 485dc462a0776cabadb5c8ac20932383b7465459 >> Merge: 05e6896 a2d19fb >> Author: Thomas W?rthinger >> Date: Fri Mar 3 13:22:15 2017 -0800 >> >> [GR-3068] [GR-3074] Try global value numbering after canonicalization. >> >> commit a2d19fbe720ad3e8ef35e1d853ee1f9503984472 >> Author: Gilles Duboscq >> Date: Fri Mar 3 19:24:16 2017 +0100 >> >> [fix] Try global value numbering after canonicalization. >> >> commit 05e6896b52143c50817a3ba62f3573711def8f96 >> Merge: d483351 e1fe589 >> Author: Thomas W?rthinger >> Date: Fri Mar 3 10:23:58 2017 -0800 >> >> [GR-3107] Compute better stamps for values at merges by meeting the stamps of values at the end of the incoming branches. >> >> commit d483351be40e8c047eda7d79efd20021f78ee088 >> Merge: fd4b395 e7351d8 >> Author: Lukas Stadler >> Date: Fri Mar 3 08:50:41 2017 -0800 >> >> [GR-3106] Stop processing canonicalized nodes at VirtualObjectNodes. >> >> commit e1fe589fdddf6a9927c480fc4ea5701d15ef125d >> Author: Thomas W?rthinger >> Date: Fri Mar 3 15:17:13 2017 +0100 >> >> Clean up and adding documentation. >> >> commit e7351d87bb0f18b5c4a0f0329a68c6b5325d1561 >> Author: Lukas Stadler >> Date: Fri Mar 3 16:24:51 2017 +0100 >> >> stop processing canonicalized nodes at VirtualObjectNodes >> >> commit 1567b6c23626864f89a512cc2c448bc423b12da6 >> Author: Thomas W?rthinger >> Date: Thu Mar 2 14:41:25 2017 +0100 >> >> Allow fixed read phase to be configurable with boolean whether inputs should be replaced with constants. Make sure canDeoptimize in SafeDivRemNode cannot change after removing PiNodes. >> >> commit 47fed0986421f0938f8379ba151529c0f8991039 >> Author: Thomas W?rthinger >> Date: Sun Feb 26 00:17:04 2017 +0100 >> >> Be more conservative when inserting pis to improve phis in order to prevent update cycles. >> >> commit 952ccb4f04c9535a964d3af990b4279527c32044 >> Author: Thomas W?rthinger >> Date: Sat Feb 25 23:32:59 2017 +0100 >> >> Introduce pi nodes in conditional elimination if phis can obtain a better stamp. >> >> commit 337a710bdc077322f05028c7e4dd7678a590581f >> Author: Thomas W?rthinger >> Date: Sat Feb 25 21:28:05 2017 +0100 >> >> Try to also improve phi stamps at merge points. >> >> commit 5b6b1c2815e2d8b4c0216f4c37e609836174bf4f >> Author: Thomas W?rthinger >> Date: Sat Feb 25 20:46:03 2017 +0100 >> >> Calculate union stamps at merge points. >> >> commit 6f22827967f1c7adecee26ba9d67856380f4189e >> Author: Thomas W?rthinger >> Date: Sat Feb 25 18:39:07 2017 +0100 >> >> Make sure constants with potentially wrong kind are not propagated by word cast. >> >> commit 1fca899db56f37100dc6c50bb1cd7b333b147dae >> Author: Thomas W?rthinger >> Date: Sat Feb 25 15:48:02 2017 +0100 >> >> Put constant input replacement behind flag. >> >> commit 11fd15f04cfd2989527a157f9a2f3069b4499d07 >> Author: Thomas W?rthinger >> Date: Sat Feb 25 15:35:42 2017 +0100 >> >> Add new test case for double compare against 0.0 and fix FloatStamp#asConstant to be more conservative due to 0.0 and -0.0 cases. >> >> commit 7315323b298c0b3cb54f4dc47bd538ce9717acd3 >> Author: Thomas W?rthinger >> Date: Sat Feb 25 14:14:08 2017 +0100 >> >> Replace inputs with constants when stamp is constant in raw conditional elimination. >> >> commit 8654aff9d4abc1b9be85c66f783c5ae52d07c2fa >> Author: Thomas W?rthinger >> Date: Sat Feb 25 13:50:47 2017 +0100 >> >> Handle conditional nodes in raw conditional elimination. >> >> commit fd4b395934002dceb55750d72de754faf2b3d271 >> Merge: eed04a6 d3e2667 >> Author: Gilles Duboscq >> Date: Fri Mar 3 05:36:37 2017 -0800 >> >> [GR-3074] Add unused `GuardNode` to loop fragment. >> >> commit d3e2667d06114c24d514f2ea0313ebbf7e9aa713 >> Author: Gilles Duboscq >> Date: Fri Mar 3 14:10:48 2017 +0100 >> >> [GR-3074] Add unused `GuardNode` to loop fragement >> >> This will help answer questions about induction variables. >> However it's not correct enough to make loop transformations: it might >> say some nodes are in the loop even though they can only be scheduled >> below the loop. >> >> commit eed04a6891a97fb9761326bbeacdfeee94c58684 >> Merge: 75791e5 e271f7e >> Author: Gilles Duboscq >> Date: Fri Mar 3 05:09:10 2017 -0800 >> >> [GR-3095] Keep workdir if dacapo benchmark fails. >> >> commit e271f7e8fd6383bda15ede51f176a9405128cac2 >> Author: Gilles Duboscq >> Date: Wed Mar 1 15:34:25 2017 +0100 >> >> [GR-3095] Keep workdir if dacapo benchmark fails >> >> This makes it easier to investigate the problem >> >> commit 75791e585e65ef34aff08aa0e0b2c3aad15a7bea >> Merge: 6293a8e aeff877 >> Author: Christian Wimmer >> Date: Thu Mar 2 16:16:35 2017 -0800 >> >> [GR-2032] Improve handling of NodeSourcePosition in Truffle. >> >> commit aeff877454c86a9bcba8d710b645cf01a4034510 >> Author: Christian Wimmer >> Date: Tue Feb 28 16:53:29 2017 -0800 >> >> Do not store Truffle options in static final field >> >> commit 51fb6c3aafbedef8aab3920e4b119426a0a4c590 >> Author: Christian Wimmer >> Date: Tue Feb 28 13:10:40 2017 -0800 >> >> Propagate NodeSourcePosition in more phases >> >> commit 3fc9d98f75b979433d29bb463a5102832500795d >> Author: Christian Wimmer >> Date: Tue Feb 28 13:09:53 2017 -0800 >> >> Allow customization of CompilationResult >> >> commit c597eef0d9c16797f748e6a9bf0549f8d31b3fd5 >> Author: Christian Wimmer >> Date: Tue Feb 28 13:09:30 2017 -0800 >> >> Allow to set debugId >> >> commit 6293a8e889d11b0d75156041221cc0e9bb169093 >> Merge: efe0365 999c554 >> Author: Christian Haeubl >> Date: Thu Mar 2 02:28:58 2017 -0800 >> >> [GR-3065] Reduce encoded graph footprint. >> >> commit efe03652d6408cb9f854f87a539ffa890a00f691 >> Merge: d142e7c bc959a3 >> Author: Christian Haeubl >> Date: Wed Mar 1 04:51:11 2017 -0800 >> >> [GR-3054] Performance- and footprint-related optimizations for the graph decoder. >> >> commit 999c55476888eba67716d59461bce3898a18d46b >> Author: Christian Haeubl >> Date: Tue Feb 28 10:40:58 2017 +0100 >> >> Reduce encoded graph footprint. >> >> commit d142e7cca297ad1dcacfb78e85ebd07384c606f7 >> Merge: 13902d9 29500eb >> Author: Boris Spasojevic >> Date: Tue Feb 28 22:24:26 2017 -0800 >> >> [GR-2148] Don't invalidate targets if a call to interpreter is made and the target is still valid. >> >> commit 13902d94221889f2ecfceed1c103fec3189798fd >> Merge: c616d03 1bb1135 >> Author: Tom Rodriguez >> Date: Tue Feb 28 13:59:15 2017 -0800 >> >> [GR-2955] Casts for MethodHandle arguments must be properly guarded. >> >> commit bc959a328ad099e7e0740049d9ab2251e9e09adc >> Author: Christian Haeubl >> Date: Mon Feb 27 13:25:07 2017 +0100 >> >> Minor cleanups. >> >> commit 094143a255235b914fd58319ab59fa4508dcb61e >> Author: Christian Haeubl >> Date: Mon Feb 27 13:06:15 2017 +0100 >> >> Place inputs before successors in the encoded graph. >> >> commit 15c6ded2fb529f3e5707e15d992ef097776ba84f >> Author: Christian Haeubl >> Date: Mon Feb 27 13:03:52 2017 +0100 >> >> Replace data structures to increase partial-evaluation performance while decreasing memory footprint. >> >> commit 0970ddd20594fb4fd28dec6cfde622ac1ead99ba >> Author: Christian Haeubl >> Date: Mon Feb 27 11:34:03 2017 +0100 >> >> Minor performance-related changes. >> >> commit 1bb1135a7c1c18723005017bb62f41c42145c31d >> Author: Tom Rodriguez >> Date: Fri Feb 24 11:27:34 2017 -0800 >> >> Casts for MethodHandle arguments must be properly guarded >> >> commit c616d03c0fa3315acb3a9db5b2a4fcb7b54baa4f >> Merge: a36e6c9 b71b9ab >> Author: Boris Spasojevic >> Date: Tue Feb 28 04:36:08 2017 -0800 >> >> [GR-3040] Per thread map passed to TraceCompilationListener. >> >> commit a36e6c94a62bc55f9d5bb8aebbd21862bb257f19 >> Merge: 2b5e28e 7ba0daa >> Author: Christian Humer >> Date: Tue Feb 28 04:14:05 2017 -0800 >> >> [GR-3056] More deterministic PerformanceTruffleInliningTest. >> >> commit 7ba0daa31a951806ce0c7a186355f9ae4d530409 >> Author: Boris Spasojevic >> Date: Tue Feb 28 10:44:20 2017 +0100 >> >> Formatting. >> >> commit 04c51474a9729ae5fd22c0be1fd17130960a1a75 >> Author: Boris Spasojevic >> Date: Tue Feb 28 10:31:09 2017 +0100 >> >> Formatting. >> >> commit 303e8784d6d338d6c203470593ed2192a219d75f >> Author: Boris Spasojevic >> Date: Tue Feb 28 10:12:26 2017 +0100 >> >> Run tests 10 times and use minimum duration to eliminate noise. >> >> commit 21a99d7cbab78f2d404a8e4e32a65e987de4e510 >> Author: Tom Rodriguez >> Date: Mon Feb 27 11:02:04 2017 -0800 >> >> Fix non-null stamp machinery for other non-object pointers >> >> commit 2b5e28e6ef4d66b1a08a81f6209d6c2d466e5940 >> Merge: 7b1a5b4 6fd1d1a >> Author: Christian Wimmer >> Date: Mon Feb 27 10:52:06 2017 -0800 >> >> [GR-3025] Add more hooks for subclasses to influence synthetic start / unwind code. >> >> commit 6fd1d1adb449a2d4c342086aa1b8435745454821 >> Author: Christian Wimmer >> Date: Thu Feb 23 16:43:59 2017 -0800 >> >> Add more hooks for subclasses to influence synthetic start / unwind code >> >> commit 7b1a5b4a0c934ab8e142fbbafa548ecc1c81e15c >> Merge: 519eba1 7d06bef >> Author: Christian Humer >> Date: Mon Feb 27 08:46:33 2017 -0800 >> >> [GR-2688] Use new copy uninitialized from Truffle. >> >> commit 7d06bef1cc636cf13129e20a44d8b198711998f4 >> Author: Christian Humer >> Date: Fri Feb 24 16:33:40 2017 +0100 >> >> Update Truffle version. >> >> commit 94cda073783b45bd9b500339adffbb282984d440 >> Author: Christian Humer >> Date: Tue Feb 21 12:25:33 2017 +0100 >> >> Simplify clone uninitialized support. >> >> commit d21c7ac9c24f568a1500b3aaed30845035ff1885 >> Author: Christian Humer >> Date: Tue Feb 21 12:25:15 2017 +0100 >> >> Fix typo in TVMCI. >> >> commit 7d9581a3f0a82ff7d5e9a9eb03642d1eb12b0dc2 >> Author: Christian Humer >> Date: Wed Feb 15 14:15:30 2017 +0100 >> >> Use TMVCI to access isCloneUnitializedSupported and cloneUnitialized >> . >> >> commit 596758d9acfd630414eeeea9dbb631a4d095c9fc >> Author: Christian Humer >> Date: Wed Feb 8 21:24:34 2017 +0100 >> >> Use new copy uninitialized from Truffle. >> >> commit b71b9ab7bc1aec3b50570bdde3547c720963c6c2 >> Author: Boris Spasojevic >> Date: Mon Feb 27 14:42:15 2017 +0100 >> >> Formatting. >> >> commit f454ea3e55695b360e2a5973c9cef22c9932d92a >> Author: Boris Spasojevic >> Date: Mon Feb 27 14:24:45 2017 +0100 >> >> Removing unused member map from TraceCompilationListener. >> >> commit 519eba1c375461b221d3cc22fa5a37cd379f079a >> Merge: 6ea8f00 ba001b4 >> Author: Lukas Stadler >> Date: Mon Feb 27 05:24:09 2017 -0800 >> >> [GR-2727] Remove faulty precondition check in PEA for virtual object compatibility. >> >> commit 6ea8f00f39f5070da80e92fa278725d5cfc0a10a >> Merge: 7c02f8d 14dc595 >> Author: Thomas W?rthinger >> Date: Mon Feb 27 05:21:17 2017 -0800 >> >> [GR-3049] Convert Math.*Exact operations to non-exact operations. >> >> commit bc9c311f02a6bbd2e446347d1849d07d696bf24f >> Author: Boris Spasojevic >> Date: Mon Feb 27 14:17:42 2017 +0100 >> >> Avoid problems stemming from a map shared among threads by passing a map to the listener per thread. >> >> commit ba001b4c2042ea668dc8b41445242f59b4567329 >> Author: Lukas Stadler >> Date: Mon Feb 27 13:55:23 2017 +0100 >> >> PEA: remove faulty precondition check for virtual object compatibility >> >> commit 14dc5950a9658b2ef5452a5e1b54b722adba5336 >> Author: Christian Haeubl >> Date: Wed Feb 22 17:16:52 2017 +0100 >> >> Variable name cleanup. >> >> commit cf9fb5af86173824049212b4ecdd1821a088fb39 >> Author: Christian Haeubl >> Date: Fri Feb 17 09:27:08 2017 +0100 >> >> Add exact math canonicalizations/simplifications. >> >> commit 342eccb0cf6e604c39f529a9cfe8ab8ef7781ca1 >> Author: Thomas W?rthinger >> Date: Sun Nov 6 19:22:01 2016 +0100 >> >> Canonicalize exact add to normal add if overflow can never happen based on the operand stamps. >> >> commit 7c02f8de6c98d8fdace6b399fe304ff3b9e4289e >> Merge: 72806d4 d278c21 >> Author: Boris Spasojevic >> Date: Sun Feb 26 04:50:02 2017 -0800 >> >> [GR-2632] [GR-1624] Truffle inlining performance improvements and tests. >> >> commit d278c21a7d95634a864fe26accccbaf9e652dfe1 >> Merge: 005fec5 72806d4 >> Author: Boris Spasojevic >> Date: Sun Feb 26 11:34:37 2017 +0100 >> >> Merge branch 'master' into tests/gr-2632 >> >> commit 72806d4c6606f754eafc0ec441980b04834e0ae1 >> Merge: f54ad5d c6f6374 >> Author: Thomas W?rthinger >> Date: Sat Feb 25 03:57:24 2017 -0800 >> >> [GR-3046] New conditional elimination after fixing reads. >> >> commit c6f63742edcf4349de0b273b1c59beeef7356a19 >> Author: Thomas W?rthinger >> Date: Sat Feb 25 01:04:15 2017 +0100 >> >> Correctly handle default successor when calculating switch node succeeding stamps. >> >> commit 5430c2ceba5e65db0530bb342cd2edeb136681db >> Author: Thomas W?rthinger >> Date: Fri Feb 24 23:34:26 2017 +0100 >> >> Remove redundant conditional elimination phase. >> >> commit b42e007bd1083f2e1c817b503e50ff77b34a95a9 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 22:08:57 2017 +0100 >> >> Fix arithmetic stamp improveWith implementation to take stamp compatibility into account. >> >> commit b88a1b62f3af258d230ebee17d7aa37d83454b13 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 22:03:31 2017 +0100 >> >> Replace nodes with constant stamps with constants in raw conditional elimination. >> >> commit 6d8e4f6a468fa70d41d5f545fb815cd0e2e2daf8 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 21:42:05 2017 +0100 >> >> Add stamp parameters to binary logic node succeeding stamp method. >> >> commit 1d0cddeb2f4ff7316b92cd96712892215ae3f3a6 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 20:29:08 2017 +0100 >> >> Fixed an issue in the getSuperclass snippet that could lead to an unsafe memory read. >> >> commit 81ef1cb31197ffdc58ca8c9fd709dcc491a62237 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 19:45:45 2017 +0100 >> >> Add flag to stress test scheduling reads early. >> >> commit f54ad5d72a2d616e27b89dba6f15f676fe9fc48f >> Merge: 7d1ad12 3efa7a0 >> Author: Aleksandar Prokopec >> Date: Fri Feb 24 10:39:27 2017 -0800 >> >> [GR-3042] Correctly repair the number of measurements when a benchmark fails. >> >> commit 8b286f4b41c65cdaed10f9fee103a9a2c170e865 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 17:55:08 2017 +0100 >> >> Propagate stamps for unary and binary operations. >> >> commit 3efa7a0ddf33b66292929cb89b2cf6efe3ead701 >> Author: Aleksandar Prokopec >> Date: Fri Feb 24 19:17:44 2017 +0100 >> >> [fix] Fix bug in calculation of total iterations when a benchmark fails. >> >> commit c60e255617564e654522e68294bd99ef6a4d00d7 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 16:56:26 2017 +0100 >> >> Simplify integer switches in raw conditional elimination. >> >> commit fd006365d35c4fb539465fc422a1cfea0b58c204 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 16:37:02 2017 +0100 >> >> Move succeeding stamp calculation to switch nodes as common utility and use from raw conditional elimination. >> >> commit 75f1d85125aeda2253fab45c65a38afb04c7b609 >> Author: Thomas W?rthinger >> Date: Fri Feb 24 16:28:45 2017 +0100 >> >> Fixed an issue in NewConiditionalEliminationPhase that prevented switches from correctly registering stamps. >> >> commit a7ca9170642ac1d7900869ddde34b02a9d7ad2ad >> Author: Thomas W?rthinger >> Date: Fri Feb 24 16:13:16 2017 +0100 >> >> Add new conditional elimination after fixing reads. >> >> commit bc4ef64f2c3218855d94dce45134b5768cf0340a >> Author: Thomas W?rthinger >> Date: Fri Feb 24 14:25:49 2017 +0100 >> >> Change block iteration order of FixReadsPhase to be dominator tree based. >> >> commit 7d1ad12cbd24723767be368d78399ca1e1f3a39a >> Merge: 193b418 730703a >> Author: Lukas Stadler >> Date: Fri Feb 24 05:09:57 2017 -0800 >> >> [GR-3034] Add message to assertion in ArithmeticStamp. >> >> commit 730703a1a2d3e895ad0401ada04bc8925ebe79da >> Author: Lukas Stadler >> Date: Fri Feb 24 12:12:36 2017 +0100 >> >> add message to assertion in ArithmeticStamp >> >> commit 193b41808b1145325d634b12a2965eef4838395e >> Merge: 5841886 455484f >> Author: Thomas W?rthinger >> Date: Fri Feb 24 02:44:50 2017 -0800 >> >> [GR-3031] Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. >> >> commit 455484fcf177118659d994c08cf1794356f00d5a >> Author: Thomas W?rthinger >> Date: Fri Feb 24 00:02:20 2017 +0100 >> >> Correctly take killing begin nodes into account when creating latest schedule. >> >> commit 58370156a1463b75617adaee996c8560f25b09dc >> Author: Thomas W?rthinger >> Date: Thu Feb 23 22:48:23 2017 +0100 >> >> Adjust AheadOfTimeCompilationTest to new fixed reads structure. >> >> commit 5313605f2da9cff0c1eeca32f13c3d7e33412a40 >> Author: Thomas W?rthinger >> Date: Thu Feb 23 22:33:29 2017 +0100 >> >> Introduce FixReadsPhase that fixes floating reads and deletes pi nodes from the graph. >> >> commit 58418863f1ed601afa49f188f25e9630c193b49c >> Merge: 1efc1c5 67de314 >> Author: Thomas W?rthinger >> Date: Thu Feb 23 11:13:57 2017 -080