From roland.westrelin at oracle.com Tue Sep 4 13:06:51 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 4 Sep 2012 22:06:51 +0200 Subject: RFR(S): 7184649: NPG: Implement another MetdataPtr case Message-ID: <2C3470E2-8305-4CAA-B3BC-5B8F3B52AC85@oracle.com> http://cr.openjdk.java.net/~roland/7184649/ From vladimir.kozlov at oracle.com Tue Sep 4 14:17:12 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 04 Sep 2012 14:17:12 -0700 Subject: RFR(S): 7184649: NPG: Implement another MetdataPtr case In-Reply-To: <2C3470E2-8305-4CAA-B3BC-5B8F3B52AC85@oracle.com> References: <2C3470E2-8305-4CAA-B3BC-5B8F3B52AC85@oracle.com> Message-ID: <50466FD8.5050701@oracle.com> Looks good. Thanks, Vladimir Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7184649/ From stefan.karlsson at oracle.com Wed Sep 5 01:51:39 2012 From: stefan.karlsson at oracle.com (Stefan Karlsson) Date: Wed, 05 Sep 2012 10:51:39 +0200 Subject: Review request: 7195935: NPG: Some issues with compressed oops Message-ID: <5047129B.3020706@oracle.com> http://cr.openjdk.java.net/~stefank/7195935/webrev/ 7195935: NPG: Some issues with compressed oops Summary: Don't decompress the klass pointer in the G1 pre-barrier code when !UseCompressedKlassPointers The code mimics the behavior in LIRGenerator::do_getClass, including using T_OBJECT as the type for src_klass: LIR_Opr src_klass = new_register(T_OBJECT); StefanK From coleen.phillimore at oracle.com Wed Sep 5 05:37:39 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Wed, 05 Sep 2012 08:37:39 -0400 Subject: Review request: 7195935: NPG: Some issues with compressed oops In-Reply-To: <5047129B.3020706@oracle.com> References: <5047129B.3020706@oracle.com> Message-ID: <50474793.4040904@oracle.com> Good find! This should work fine until Roland's changes to properly separate compressed oops and klass pointers in compiled code are finished. Thanks, Coleen On 9/5/2012 4:51 AM, Stefan Karlsson wrote: > http://cr.openjdk.java.net/~stefank/7195935/webrev/ > > 7195935: NPG: Some issues with compressed oops > Summary: Don't decompress the klass pointer in the G1 pre-barrier code > when !UseCompressedKlassPointers > > The code mimics the behavior in LIRGenerator::do_getClass, including > using T_OBJECT as the type for src_klass: > LIR_Opr src_klass = new_register(T_OBJECT); > > StefanK From andrew_nuss at yahoo.com Wed Sep 5 09:00:39 2012 From: andrew_nuss at yahoo.com (Andy Nuss) Date: Wed, 5 Sep 2012 09:00:39 -0700 (PDT) Subject: nano cost for simple virtual calls and object casts Message-ID: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> Hi, I am writing an automata, for a specialized regex/parser-generator scripting grammar, even though java.util.regex and antlr are great, I'm doing something a little different, with different matching powers.? I wrote an experimental version of my automata, same essential code in both C++ and java, and my automata execution speed per character, not counting overhead, was 3x to 6x faster in the C++ version. Because for many reasons, as with Antlr, this matching engine has to be for java, then so do its automata, and writing a native function for just the automata is not really a good solution overall. So I was trying to get at the root cause of slowness in the java hotspot compiled version.? I wrote a careful test for the nanosecond overhead of "virtual" calls to what would otherwise be simple inlineable methods.? That came out to about 0.5 nanos (0.7 for interface calls).? Also, I profiled several kinds of object casts, and that was 0.4 nanos.? By the way, using an iterative loop to copy very simple array elems was used as a baseline, and the array elem copy cost was about 0.5 nanos per object. As it relates to my data structures in the automata execution function bottleneck, there are for each character transition possibly many "vtable" calls and possibly many "casts".? The "casts" are in my case principally due to the use of generics, and in particular my several generic linked lists on elem T.? All these half nano costs add up, and slow down the engine in java relative to the C++ version where static_casts are like nops and I think simple virtual calls are much faster.? (As to arrays, there's not much that can be done.)? My todo is therefore, redesign a little to ensure that there are no virtual calls for what would otherwise be inlineable methods.? For the many types of linked lists used, I have no choice but to manually "bloat" the linked list methods out of List and into each list class. Question: does casting really have to be so expensive in java and why?? is there any way to reduce the overhead of simple "virtual" calls of abstract classes, possibly at the expense of interface calls? Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120905/6c88170e/attachment.html From rednaxelafx at gmail.com Wed Sep 5 09:21:58 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 6 Sep 2012 00:21:58 +0800 Subject: nano cost for simple virtual calls and object casts In-Reply-To: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> References: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> Message-ID: Hi Andy, You may be relying on microbenchmarks, and tiny little details in these microbenchmarks may actually have "unexpected" impact on the result. So it'd really be better if you provide the actual test cases for others to be able to explain what's happening. You may want to read this page for a guide on microbenchmarks [1], and other pages in the same wiki to get an idea of what HotSpot is already doing. The JIT compilers in HotSpot, especially the server compiler, tries hard to optimize virtual call sites; if a virtual call site isn't really polymorphic, it'd be as fast as a static call site; ditto for casts. Regards, Kris [1]: https://wikis.oracle.com/display/HotSpotInternals/MicroBenchmarks On Thu, Sep 6, 2012 at 12:00 AM, Andy Nuss wrote: > Hi, > > I am writing an automata, for a specialized regex/parser-generator > scripting grammar, even though java.util.regex and antlr are great, I'm > doing something a little different, with different matching powers. I > wrote an experimental version of my automata, same essential code in both > C++ and java, and my automata execution speed per character, not counting > overhead, was 3x to 6x faster in the C++ version. > > Because for many reasons, as with Antlr, this matching engine has to be > for java, then so do its automata, and writing a native function for just > the automata is not really a good solution overall. > > So I was trying to get at the root cause of slowness in the java hotspot > compiled version. I wrote a careful test for the nanosecond overhead of > "virtual" calls to what would otherwise be simple inlineable methods. That > came out to about 0.5 nanos (0.7 for interface calls). Also, I profiled > several kinds of object casts, and that was 0.4 nanos. By the way, using > an iterative loop to copy very simple array elems was used as a baseline, > and the array elem copy cost was about 0.5 nanos per object. > > As it relates to my data structures in the automata execution function > bottleneck, there are for each character transition possibly many "vtable" > calls and possibly many "casts". The "casts" are in my case principally > due to the use of generics, and in particular my several generic linked > lists on elem T. All these half nano costs add up, and slow down the > engine in java relative to the C++ version where static_casts are like nops > and I think simple virtual calls are much faster. (As to arrays, there's > not much that can be done.) My todo is therefore, redesign a little to > ensure that there are no virtual calls for what would otherwise be > inlineable methods. For the many types of linked lists used, I have no > choice but to manually "bloat" the linked list methods out of List and > into each list class. > > Question: does casting really have to be so expensive in java and why? is > there any way to reduce the overhead of simple "virtual" calls of abstract > classes, possibly at the expense of interface calls? > > Andy > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120906/9078d1d3/attachment-0001.html From andrew_nuss at yahoo.com Wed Sep 5 10:03:53 2012 From: andrew_nuss at yahoo.com (Andy Nuss) Date: Wed, 5 Sep 2012 10:03:53 -0700 (PDT) Subject: nano cost for simple virtual calls and object casts In-Reply-To: References: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> Message-ID: <1346864633.83526.YahooMailNeo@web120306.mail.ne1.yahoo.com> That's a good idea, I did take great care with my 2 important benchmarks, but how do I post the code in a readable form and given that each one is about 100 lines?? By the way, the issue is with my own generic utility classes.? I would be surprised given that each generic class which is part of the bottleneck and instantiated with so many different T's would be able to avoid the cast and the vtable call, because in that case it would be doing incredible code bloat.? Is that a good assumption? ________________________________ From: Krystal Mok To: Andy Nuss Cc: "hotspot-compiler-dev at openjdk.java.net" Sent: Wednesday, September 5, 2012 9:21 AM Subject: Re: nano cost for simple virtual calls and object casts Hi Andy, You may be relying on microbenchmarks, and tiny little details in these microbenchmarks may actually have "unexpected" impact on the result. So it'd really be better if you provide the actual test cases for others to be able to explain what's happening. You may want to read this page for a guide on microbenchmarks [1], and other pages in the same wiki to get an idea of what HotSpot is already doing. The JIT compilers in HotSpot, especially the server compiler, tries hard to optimize virtual call sites; if a virtual call site isn't really polymorphic, it'd be as fast as a static call site; ditto for casts. Regards, Kris [1]:? https://wikis.oracle.com/display/HotSpotInternals/MicroBenchmarks? On Thu, Sep 6, 2012 at 12:00 AM, Andy Nuss wrote: Hi, > > >I am writing an automata, for a specialized regex/parser-generator scripting grammar, even though java.util.regex and antlr are great, I'm doing something a little different, with different matching powers.? I wrote an experimental version of my automata, same essential code in both C++ and java, and my automata execution speed per character, not counting overhead, was 3x to 6x faster in the C++ version. > > >Because for many reasons, as with Antlr, this matching engine has to be for java, then so do its automata, and writing a native function for just the automata is not really a good solution overall. > > >So I was trying to get at the root cause of slowness in the java hotspot compiled version.? I wrote a careful test for the nanosecond overhead of "virtual" calls to what would otherwise be simple inlineable methods.? That came out to about 0.5 nanos (0.7 for interface calls).? Also, I profiled several kinds of object casts, and that was 0.4 nanos.? By the way, using an iterative loop to copy very simple array elems was used as a baseline, and the array elem copy cost was about 0.5 nanos per object. > > >As it relates to my data structures in the automata execution function bottleneck, there are for each character transition possibly many "vtable" calls and possibly many "casts".? The "casts" are in my case principally due to the use of generics, and in particular my several generic linked lists on elem T.? All these half nano costs add up, and slow down the engine in java relative to the C++ version where static_casts are like nops and I think simple virtual calls are much faster.? (As to arrays, there's not much that can be done.)? My todo is therefore, redesign a little to ensure that there are no virtual calls for what would otherwise be inlineable methods.? For the many types of linked lists used, I have no choice but to manually "bloat" the linked list methods out of List and into each list class. > > >Question: does casting really have to be so expensive in java and why?? is there any way to reduce the overhead of simple "virtual" calls of abstract classes, possibly at the expense of interface calls? > >Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120905/d940d5f5/attachment.html From rednaxelafx at gmail.com Wed Sep 5 10:10:28 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 6 Sep 2012 01:10:28 +0800 Subject: nano cost for simple virtual calls and object casts In-Reply-To: <1346864633.83526.YahooMailNeo@web120306.mail.ne1.yahoo.com> References: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> <1346864633.83526.YahooMailNeo@web120306.mail.ne1.yahoo.com> Message-ID: You could try hosting services like pastbin [1] or Github [2] or the like. - Kris [1]: http://pastebin.com/ [2]: https://github.com/ On Thu, Sep 6, 2012 at 1:03 AM, Andy Nuss wrote: > That's a good idea, I did take great care with my 2 important benchmarks, > but how do I post the code in a readable form and given that each one is > about 100 lines? By the way, the issue is with my own generic utility > classes. I would be surprised given that each generic class which is part > of the bottleneck and instantiated with so many different T's would be able > to avoid the cast and the vtable call, because in that case it would be > doing incredible code bloat. Is that a good assumption? > > > ------------------------------ > *From:* Krystal Mok > *To:* Andy Nuss > *Cc:* "hotspot-compiler-dev at openjdk.java.net" < > hotspot-compiler-dev at openjdk.java.net> > *Sent:* Wednesday, September 5, 2012 9:21 AM > *Subject:* Re: nano cost for simple virtual calls and object casts > > Hi Andy, > > You may be relying on microbenchmarks, and tiny little details in these > microbenchmarks may actually have "unexpected" impact on the result. So > it'd really be better if you provide the actual test cases for others to be > able to explain what's happening. > > You may want to read this page for a guide on microbenchmarks [1], and > other pages in the same wiki to get an idea of what HotSpot is already > doing. The JIT compilers in HotSpot, especially the server compiler, tries > hard to optimize virtual call sites; if a virtual call site isn't really > polymorphic, it'd be as fast as a static call site; ditto for casts. > > Regards, > Kris > > [1]: https://wikis.oracle.com/display/HotSpotInternals/MicroBenchmarks > > On Thu, Sep 6, 2012 at 12:00 AM, Andy Nuss wrote: > > Hi, > > I am writing an automata, for a specialized regex/parser-generator > scripting grammar, even though java.util.regex and antlr are great, I'm > doing something a little different, with different matching powers. I > wrote an experimental version of my automata, same essential code in both > C++ and java, and my automata execution speed per character, not counting > overhead, was 3x to 6x faster in the C++ version. > > Because for many reasons, as with Antlr, this matching engine has to be > for java, then so do its automata, and writing a native function for just > the automata is not really a good solution overall. > > So I was trying to get at the root cause of slowness in the java hotspot > compiled version. I wrote a careful test for the nanosecond overhead of > "virtual" calls to what would otherwise be simple inlineable methods. That > came out to about 0.5 nanos (0.7 for interface calls). Also, I profiled > several kinds of object casts, and that was 0.4 nanos. By the way, using > an iterative loop to copy very simple array elems was used as a baseline, > and the array elem copy cost was about 0.5 nanos per object. > > As it relates to my data structures in the automata execution function > bottleneck, there are for each character transition possibly many "vtable" > calls and possibly many "casts". The "casts" are in my case principally > due to the use of generics, and in particular my several generic linked > lists on elem T. All these half nano costs add up, and slow down the > engine in java relative to the C++ version where static_casts are like nops > and I think simple virtual calls are much faster. (As to arrays, there's > not much that can be done.) My todo is therefore, redesign a little to > ensure that there are no virtual calls for what would otherwise be > inlineable methods. For the many types of linked lists used, I have no > choice but to manually "bloat" the linked list methods out of List and > into each list class. > > Question: does casting really have to be so expensive in java and why? is > there any way to reduce the overhead of simple "virtual" calls of abstract > classes, possibly at the expense of interface calls? > > Andy > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120906/f409472c/attachment.html From forax at univ-mlv.fr Wed Sep 5 10:17:23 2012 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 05 Sep 2012 19:17:23 +0200 Subject: nano cost for simple virtual calls and object casts In-Reply-To: <1346864633.83526.YahooMailNeo@web120306.mail.ne1.yahoo.com> References: <1346860839.42037.YahooMailNeo@web120301.mail.ne1.yahoo.com> <1346864633.83526.YahooMailNeo@web120306.mail.ne1.yahoo.com> Message-ID: <50478923.8060208@univ-mlv.fr> On 09/05/2012 07:03 PM, Andy Nuss wrote: > That's a good idea, I did take great care with my 2 important > benchmarks, but how do I post the code in a readable form and given > that each one is about 100 lines? http://pastebin.com/ or https://gist.github.com/ > By the way, the issue is with my own generic utility classes. I would > be surprised given that each generic class which is part of the > bottleneck and instantiated with so many different T's would be able > to avoid the cast and the vtable call, because in that case it would > be doing incredible code bloat. Is that a good assumption? generics in Java and C++ templates are very different beasts, unlike C++, Java share the generics code and tend to use casts at boundaries, i.e. in the code that use the instantiated generics so these casts are usually cheap. Now, if you have virtual call in a middle of a parametrized class, calls like equals or hashCode in collections by example, these calls tend to be megamorphic and are never inlined. R?mi > > > ------------------------------------------------------------------------ > *From:* Krystal Mok > *To:* Andy Nuss > *Cc:* "hotspot-compiler-dev at openjdk.java.net" > > *Sent:* Wednesday, September 5, 2012 9:21 AM > *Subject:* Re: nano cost for simple virtual calls and object casts > > Hi Andy, > > You may be relying on microbenchmarks, and tiny little details in > these microbenchmarks may actually have "unexpected" impact on the > result. So it'd really be better if you provide the actual test cases > for others to be able to explain what's happening. > > You may want to read this page for a guide on microbenchmarks [1], and > other pages in the same wiki to get an idea of what HotSpot is already > doing. The JIT compilers in HotSpot, especially the server compiler, > tries hard to optimize virtual call sites; if a virtual call site > isn't really polymorphic, it'd be as fast as a static call site; ditto > for casts. > > Regards, > Kris > > [1]: https://wikis.oracle.com/display/HotSpotInternals/MicroBenchmarks > > On Thu, Sep 6, 2012 at 12:00 AM, Andy Nuss > wrote: > > Hi, > > I am writing an automata, for a specialized regex/parser-generator > scripting grammar, even though java.util.regex and antlr are > great, I'm doing something a little different, with different > matching powers. I wrote an experimental version of my automata, > same essential code in both C++ and java, and my automata > execution speed per character, not counting overhead, was 3x to 6x > faster in the C++ version. > > Because for many reasons, as with Antlr, this matching engine has > to be for java, then so do its automata, and writing a native > function for just the automata is not really a good solution overall. > > So I was trying to get at the root cause of slowness in the java > hotspot compiled version. I wrote a careful test for the > nanosecond overhead of "virtual" calls to what would otherwise be > simple inlineable methods. That came out to about 0.5 nanos (0.7 > for interface calls). Also, I profiled several kinds of object > casts, and that was 0.4 nanos. By the way, using an iterative > loop to copy very simple array elems was used as a baseline, and > the array elem copy cost was about 0.5 nanos per object. > > As it relates to my data structures in the automata execution > function bottleneck, there are for each character transition > possibly many "vtable" calls and possibly many "casts". The > "casts" are in my case principally due to the use of generics, and > in particular my several generic linked lists on elem T. All > these half nano costs add up, and slow down the engine in java > relative to the C++ version where static_casts are like nops and I > think simple virtual calls are much faster. (As to arrays, > there's not much that can be done.) My todo is therefore, redesign > a little to ensure that there are no virtual calls for what would > otherwise be inlineable methods. For the many types of linked > lists used, I have no choice but to manually "bloat" the linked > list methods out of List and into each list class. > > Question: does casting really have to be so expensive in java and > why? is there any way to reduce the overhead of simple "virtual" > calls of abstract classes, possibly at the expense of interface calls? > > Andy > > > > From john.coomes at oracle.com Thu Sep 6 20:31:47 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 03:31:47 +0000 Subject: hg: hsx/hotspot-comp: 2 new changesets Message-ID: <20120907033147.829254794F@hg.openjdk.java.net> Changeset: c1a277c6022a Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/c1a277c6022a Added tag jdk8-b53 for changeset febd7ff52800 ! .hgtags Changeset: d5e73011bde2 Author: katleman Date: 2012-08-30 10:26 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/d5e73011bde2 Added tag jdk8-b54 for changeset c1a277c6022a ! .hgtags From john.coomes at oracle.com Thu Sep 6 20:31:51 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 03:31:51 +0000 Subject: hg: hsx/hotspot-comp/corba: 2 new changesets Message-ID: <20120907033154.D962647950@hg.openjdk.java.net> Changeset: 16c82fc74695 Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/16c82fc74695 Added tag jdk8-b53 for changeset 63aeb7a2472f ! .hgtags Changeset: 6b2a363213f4 Author: katleman Date: 2012-08-30 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/6b2a363213f4 Added tag jdk8-b54 for changeset 16c82fc74695 ! .hgtags From john.coomes at oracle.com Thu Sep 6 20:31:59 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 03:31:59 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 2 new changesets Message-ID: <20120907033209.A610147951@hg.openjdk.java.net> Changeset: 7dd81ccb7c11 Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/7dd81ccb7c11 Added tag jdk8-b53 for changeset 2c566f25c39f ! .hgtags Changeset: 0cb5f2471628 Author: katleman Date: 2012-08-30 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/0cb5f2471628 Added tag jdk8-b54 for changeset 7dd81ccb7c11 ! .hgtags From john.coomes at oracle.com Thu Sep 6 20:32:18 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 03:32:18 +0000 Subject: hg: hsx/hotspot-comp/jaxws: 2 new changesets Message-ID: <20120907033224.CB92747952@hg.openjdk.java.net> Changeset: 91970935926a Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/91970935926a Added tag jdk8-b53 for changeset 8a35fd644d3c ! .hgtags Changeset: 109c9e1f2d85 Author: katleman Date: 2012-08-30 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/109c9e1f2d85 Added tag jdk8-b54 for changeset 91970935926a ! .hgtags From john.coomes at oracle.com Fri Sep 7 01:59:46 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 08:59:46 +0000 Subject: hg: hsx/hotspot-comp: 2 new changesets Message-ID: <20120907085946.B290F47967@hg.openjdk.java.net> Changeset: b85b44cced24 Author: jcoomes Date: 2012-09-05 12:42 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/b85b44cced24 7196361: add hotspot/make/closed to hgforest.sh Reviewed-by: ohair ! make/scripts/hgforest.sh Changeset: 76844579fa4b Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/76844579fa4b Added tag jdk8-b55 for changeset b85b44cced24 ! .hgtags From john.coomes at oracle.com Fri Sep 7 01:59:51 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 08:59:51 +0000 Subject: hg: hsx/hotspot-comp/corba: 4 new changesets Message-ID: <20120907085954.6C64B47968@hg.openjdk.java.net> Changeset: 18a02ad8dc73 Author: coffeys Date: 2012-08-16 10:33 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/18a02ad8dc73 7056731: Race condition in CORBA code causes re-use of ABORTed connections Reviewed-by: lancea Contributed-by: d.macdonald at auckland.ac.nz ! src/share/classes/com/sun/corba/se/impl/transport/CorbaResponseWaitingRoomImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java Changeset: d086e67eb9dd Author: lana Date: 2012-08-27 10:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/d086e67eb9dd Merge Changeset: e8a0e84383d6 Author: lana Date: 2012-08-30 20:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/e8a0e84383d6 Merge Changeset: bf1bb47414e1 Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/bf1bb47414e1 Added tag jdk8-b55 for changeset e8a0e84383d6 ! .hgtags From john.coomes at oracle.com Fri Sep 7 01:59:59 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 08:59:59 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 4 new changesets Message-ID: <20120907090011.63D7147969@hg.openjdk.java.net> Changeset: 2946807a6d7f Author: joehw Date: 2012-08-17 09:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/2946807a6d7f 7191547: XMLEventFactory.newFactory(String factoryId, ClassLoader loader) does not work as expected Summary: similar to the patch for 6756677 for XMLInputFactory and XMLOutputFactory, this patch fixes an error in XMLEventFactory where factoryId was taken as factory class. Reviewed-by: lancea ! src/javax/xml/stream/XMLEventFactory.java Changeset: 933d0234670f Author: lana Date: 2012-08-27 10:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/933d0234670f Merge Changeset: 7c2363666890 Author: lana Date: 2012-08-30 20:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/7c2363666890 Merge Changeset: f19d63b2119a Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/f19d63b2119a Added tag jdk8-b55 for changeset 7c2363666890 ! .hgtags From john.coomes at oracle.com Fri Sep 7 02:00:16 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 09:00:16 +0000 Subject: hg: hsx/hotspot-comp/jaxws: Added tag jdk8-b55 for changeset 109c9e1f2d85 Message-ID: <20120907090020.10F9A4796A@hg.openjdk.java.net> Changeset: 7813455ccdb0 Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/7813455ccdb0 Added tag jdk8-b55 for changeset 109c9e1f2d85 ! .hgtags From john.coomes at oracle.com Fri Sep 7 02:26:39 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 09:26:39 +0000 Subject: hg: hsx/hotspot-comp/langtools: 10 new changesets Message-ID: <20120907092720.7225D4796D@hg.openjdk.java.net> Changeset: 9cf72631baf5 Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/9cf72631baf5 Added tag jdk8-b53 for changeset d3d0b9cd76e0 ! .hgtags Changeset: c47742f53f99 Author: katleman Date: 2012-08-30 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/c47742f53f99 Added tag jdk8-b54 for changeset 9cf72631baf5 ! .hgtags Changeset: 9d47f4850714 Author: jjh Date: 2012-08-15 13:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/9d47f4850714 7191449: update copyright year to match last edit in jdk8 langtools repository Reviewed-by: jjh Contributed-by: steve.sides at oracle.com ! make/jprt.properties ! make/tools/anttasks/CompilePropertiesTask.java ! make/tools/anttasks/GenStubsTask.java ! make/tools/anttasks/SelectToolTask.java ! make/tools/compileproperties/CompileProperties.java ! make/tools/genstubs/GenStubs.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java ! test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh ! test/tools/javac/api/7086261/T7086261.java ! test/tools/javac/api/T6397104.java ! test/tools/javac/diags/CheckExamples.java ! test/tools/javac/diags/MessageInfo.java ! test/tools/javac/diags/RunExamples.java ! test/tools/javac/diags/examples/ApplicableMethodFound1.java ! test/tools/javac/diags/examples/IllegalDot.java ! test/tools/javac/diags/examples/InconvertibleTypes.java ! test/tools/javac/diags/examples/KindnameConstructor.java ! test/tools/javac/diags/examples/NotApplicableMethodFound.java ! test/tools/javac/diags/examples/PossibleLossPrecision.java ! test/tools/javac/diags/examples/ResourceNotApplicableToType.java ! test/tools/javac/diags/examples/VarargsArgumentMismatch.java ! test/tools/javac/diags/examples/VerboseResolveMulti1.java ! test/tools/javac/diags/examples/WhereCaptured.java ! test/tools/javac/diags/examples/WhereCaptured1.java ! test/tools/javac/diags/examples/WhereIntersection.java ! test/tools/javac/diags/examples/WhereTypeVar.java ! test/tools/javac/generics/typevars/T7148242.java ! test/tools/javac/newlines/Newlines.sh ! test/tools/javac/parser/T4881269.java ! test/tools/javac/processing/TestWarnErrorCount.java Changeset: 5ac2e9ee969e Author: jjg Date: 2012-08-17 17:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/5ac2e9ee969e 7192449: fix up tests to accommodate jtreg spec change Reviewed-by: darcy ! test/tools/javac/processing/6414633/T6414633.java ! test/tools/javac/processing/options/testPrintProcessorInfo/TestWithXstdout.java Changeset: 464f52f59f7d Author: sundar Date: 2012-08-20 21:24 +0530 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/464f52f59f7d 7181320: javac NullPointerException for switch labels with cast to String expressions Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java + test/tools/javac/StringsInSwitch/7181320/BinOpInCaseLabel.java + test/tools/javac/StringsInSwitch/7181320/CastInCaseLabel.java + test/tools/javac/StringsInSwitch/7181320/CondExprInCaseLabel.java + test/tools/javac/StringsInSwitch/7181320/CondExprInCaseLabel1.java + test/tools/javac/StringsInSwitch/7181320/CondExprInCaseLabel2.java Changeset: 37008b4cd97a Author: jjg Date: 2012-08-20 13:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/37008b4cd97a 7192744: fix up tests to accommodate jtreg spec change Reviewed-by: darcy ! test/tools/javac/processing/6348499/T6348499.java ! test/tools/javac/processing/T6920317.java Changeset: c9749226cdde Author: ksrini Date: 2012-08-27 07:21 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/c9749226cdde 7192068: (javac) provide a way for IDEs to produce Enclosing Method attributes. Reviewed-by: jjg Contributed-by: jan.lahoda at oracle.com ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Changeset: 542c87b8ce7f Author: lana Date: 2012-08-27 10:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/542c87b8ce7f Merge Changeset: e48e7e1f026b Author: lana Date: 2012-08-30 20:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/e48e7e1f026b Merge Changeset: 0f8cf3d89a7c Author: katleman Date: 2012-09-06 17:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/0f8cf3d89a7c Added tag jdk8-b55 for changeset e48e7e1f026b ! .hgtags From john.coomes at oracle.com Fri Sep 7 02:01:54 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Sep 2012 09:01:54 +0000 Subject: hg: hsx/hotspot-comp/jdk: 83 new changesets Message-ID: <20120907092254.B662B4796C@hg.openjdk.java.net> Changeset: 156ab3c38556 Author: katleman Date: 2012-08-23 12:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/156ab3c38556 Added tag jdk8-b53 for changeset 2c6933c5106b ! .hgtags Changeset: baf30df50ce3 Author: andrew Date: 2012-08-23 15:42 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/baf30df50ce3 7192804: Build should not install jvisualvm man page for OpenJDK Summary: OpenJDK builds don't ship VisualVM so shouldn't ship its man page either. Reviewed-by: dholmes ! make/common/Release.gmk ! makefiles/Images.gmk Changeset: 70ad0ed1d6ce Author: katleman Date: 2012-08-29 15:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/70ad0ed1d6ce Merge Changeset: 906acc4f3c78 Author: katleman Date: 2012-08-30 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/906acc4f3c78 Added tag jdk8-b54 for changeset 70ad0ed1d6ce ! .hgtags Changeset: 26a8b57bd6c0 Author: twisti Date: 2012-08-24 15:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/26a8b57bd6c0 Merge - test/java/lang/invoke/MaxTest.java Changeset: 3f42c0d924d2 Author: twisti Date: 2012-08-31 15:20 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3f42c0d924d2 Merge Changeset: ecc1c8085ec7 Author: bae Date: 2012-08-17 11:22 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/ecc1c8085ec7 7150594: VM chash in JCK api/java_awt/Image/ConvolveOp/ tests for 64 bit jdk8 on linux. Reviewed-by: jgodinez, prr ! src/share/native/sun/awt/medialib/mlib_sys.c Changeset: 61076e7e3c04 Author: lana Date: 2012-08-27 11:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/61076e7e3c04 Merge - src/share/classes/java/lang/invoke/AdapterMethodHandle.java - src/share/classes/java/lang/invoke/CountingMethodHandle.java Changeset: b41845694f39 Author: serb Date: 2012-08-13 17:43 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b41845694f39 7161437: [macosx] awt.FileDialog doesn't respond appropriately for mac when selecting folders Reviewed-by: art, anthony Contributed-by: Marco Dinacci ! src/macosx/classes/sun/lwawt/macosx/CFileDialog.java ! src/macosx/native/sun/awt/CFileDialog.h ! src/macosx/native/sun/awt/CFileDialog.m Changeset: adbef77870e1 Author: leonidr Date: 2012-08-13 17:53 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/adbef77870e1 7159381: [macosx] Dock Icon defaults to Generic Java Application Category Reviewed-by: anthony ! src/macosx/native/sun/osxapp/NSApplicationAWT.h ! src/macosx/native/sun/osxapp/NSApplicationAWT.m Changeset: f63010f4655d Author: kizune Date: 2012-08-13 19:19 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f63010f4655d Merge Changeset: 0025dab4c283 Author: kizune Date: 2012-08-13 19:49 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0025dab4c283 7177144: [macosx] Drag and drop not working (regression in 7u6) Reviewed-by: art, serb ! src/share/classes/java/awt/EventQueue.java Changeset: f003387c33ad Author: omajid Date: 2012-08-14 17:11 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f003387c33ad 7190813: (launcher) RPATH needs to have additional paths Reviewed-by: anthony, ksrini ! make/common/Program.gmk ! make/sun/jawt/Makefile + test/tools/launcher/RunpathTest.java Changeset: 164919db548b Author: rupashka Date: 2012-08-15 14:33 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/164919db548b 7190543: Nimbus LaF: regression: JSplitPane is not opaque -- or should it? Reviewed-by: alexsch + test/javax/swing/JSplitPane/4201995/bug4201995.java Changeset: 65d874d16d59 Author: serb Date: 2012-08-15 15:02 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/65d874d16d59 7172187: [macosx] JAWT native CALayer not positioned over Canvas Reviewed-by: art, anthony ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/PlatformComponent.java ! src/macosx/classes/sun/lwawt/macosx/CFRetainedResource.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformComponent.java ! src/macosx/native/sun/awt/AWTSurfaceLayers.m Changeset: 8d570757fe95 Author: rupashka Date: 2012-08-17 17:04 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8d570757fe95 7190597: Nimbus: regtest for 4235420 fails Reviewed-by: alexsch + test/javax/swing/JTable/4235420/bug4235420.java Changeset: 2fe9c1f0b16b Author: dingxmin Date: 2012-08-20 13:16 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2fe9c1f0b16b 7188612: JTable's AccessibleJTable throws IllegalComponentStateException instead of null Reviewed-by: rupashka ! src/share/classes/javax/swing/JTable.java + test/javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java Changeset: fbf21a561c45 Author: malenkov Date: 2012-08-20 13:38 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fbf21a561c45 7189112: java.beans.Introspector misses write methods Reviewed-by: rupashka ! src/share/classes/java/beans/PropertyDescriptor.java + test/java/beans/Introspector/Test7189112.java Changeset: 8a2bc6e82d81 Author: rupashka Date: 2012-08-21 14:37 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8a2bc6e82d81 6866747: J2SE_Swing_Reg:can not see any HSB tab Reviewed-by: alexsch - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: d769dbb87c49 Author: zhouyx Date: 2012-08-24 11:35 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/d769dbb87c49 7193169: The code example in javadoc of Component.java misses 'implements' keyword Reviewed-by: anthony ! src/share/classes/java/awt/Component.java Changeset: e3122759abe3 Author: anthony Date: 2012-08-24 14:58 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e3122759abe3 7160609: [macosx] JDK crash in libjvm.dylib ( C [GeForceGLDriver+0x675a] gldAttachDrawable+0x941) Summary: Constrain window dimensions with screen bounds and GL_MAX_TEXTURE_SIZE Reviewed-by: art, serb ! src/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/PlatformWindow.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/native/sun/java2d/opengl/CGLGraphicsConfig.m + src/share/classes/sun/awt/TextureSizeConstraining.java + test/java/awt/Frame/HugeFrame/HugeFrame.java Changeset: eaec23aae76a Author: lana Date: 2012-08-27 11:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/eaec23aae76a Merge - src/share/classes/java/lang/invoke/AdapterMethodHandle.java - src/share/classes/java/lang/invoke/CountingMethodHandle.java Changeset: f54660c18774 Author: serb Date: 2012-08-28 16:04 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f54660c18774 7186371: [macosx] Main menu shortcuts not displayed (7u6 regression) Reviewed-by: leonidr ! src/macosx/classes/com/apple/laf/ScreenMenuItem.java ! src/macosx/classes/com/apple/laf/ScreenMenuItemCheckbox.java Changeset: 5378c339ed47 Author: lana Date: 2012-08-28 12:20 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5378c339ed47 Merge - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: 717ed00b7787 Author: sherman Date: 2012-08-09 10:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/717ed00b7787 7189363: Regex Pattern compilation buggy for special sequences Summary: fixed the incorrect implementation in expr(...) Reviewed-by: psandoz, alanb ! src/share/classes/java/util/regex/Pattern.java ! test/java/util/regex/RegExTest.java Changeset: 57b5025548d6 Author: mullan Date: 2012-08-10 09:12 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/57b5025548d6 7187962: sun.security.pkcs11.P11DSAKeyFactory.implTranslatePublicKey doesn't check if params is null Reviewed-by: valeriep ! src/share/classes/sun/security/provider/certpath/BasicChecker.java Changeset: 629f357fc17b Author: mullan Date: 2012-08-10 09:17 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/629f357fc17b Merge Changeset: 114fbbeb8f75 Author: valeriep Date: 2012-08-10 13:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/114fbbeb8f75 7107613: scalability bloker in javax.crypto.CryptoPermissions Summary: Changed the type of field "perms" from Hashtable to ConcurrentHashMap. Reviewed-by: weijun, xuelei ! src/share/classes/javax/crypto/CryptoPermissions.java Changeset: 175036ada2e3 Author: valeriep Date: 2012-08-10 13:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/175036ada2e3 7107616: scalability bloker in javax.crypto.JceSecurityManager Summary: Changed the type of field "exemptCache" from HashMap to ConcurrentHashMap. Reviewed-by: weijun, xuelei ! src/share/classes/javax/crypto/JceSecurityManager.java Changeset: 9e97dacbfd35 Author: valeriep Date: 2012-08-10 13:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9e97dacbfd35 7185471: Avoid key expansion when AES cipher is re-init w/ the same key Summary: Saved the last cipher key value and skip key expansion if key value is the same. Reviewed-by: weijun, xuelei ! src/share/classes/com/sun/crypto/provider/AESCrypt.java Changeset: 449c17c7a63a Author: lana Date: 2012-08-10 12:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/449c17c7a63a Merge Changeset: e8b14276d434 Author: lana Date: 2012-08-10 14:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e8b14276d434 Merge Changeset: e7d125f2575b Author: chegar Date: 2012-08-12 22:56 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e7d125f2575b 7188755: Crash due to missing synchronization on gconf_client in DefaultProxySelector.c Reviewed-by: chegar Contributed-by: Christian Schulte ! src/share/classes/sun/net/spi/DefaultProxySelector.java + test/java/net/ProxySelector/MultiThreadedSystemProxies.java Changeset: bf0c6f91bc22 Author: luchsh Date: 2012-08-13 19:51 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bf0c6f91bc22 7190219: (bf) CharBuffer.put(String,int,int) modifies position even if BufferOverflowException thrown Reviewed-by: alanb ! src/share/classes/java/nio/X-Buffer.java.template ! test/java/nio/Buffer/Basic-X.java.template ! test/java/nio/Buffer/Basic.java ! test/java/nio/Buffer/BasicByte.java ! test/java/nio/Buffer/BasicChar.java ! test/java/nio/Buffer/BasicDouble.java ! test/java/nio/Buffer/BasicFloat.java ! test/java/nio/Buffer/BasicInt.java ! test/java/nio/Buffer/BasicLong.java ! test/java/nio/Buffer/BasicShort.java Changeset: 399c2adf3ad6 Author: chegar Date: 2012-08-13 13:41 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/399c2adf3ad6 7190254: NetworkInterface getFlags implementation should support full integer bit range for flags value Reviewed-by: chegar Contributed-by: Shirish Kuncolienkar ! src/solaris/native/java/net/NetworkInterface.c Changeset: 5e5bdfd18325 Author: vinnie Date: 2012-08-13 14:06 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5e5bdfd18325 7190945: pkcs11 problem loading NSS libs on Ubuntu Reviewed-by: xuelei, alanb ! src/share/classes/sun/security/pkcs11/Secmod.java ! test/sun/security/pkcs11/PKCS11Test.java ! test/sun/security/pkcs11/Secmod/keystore.jks Changeset: f0bf7358ba23 Author: jfranck Date: 2012-08-09 17:49 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f0bf7358ba23 7188442: rename java.lang.annotation.ContainerAnnotation to ContainedBy Reviewed-by: darcy, jjg + src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerAnnotation.java Changeset: 35e024c6a62c Author: andrew Date: 2012-08-15 14:35 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/35e024c6a62c 7110151: Use underlying platform's zlib library for Java zlib support Summary: Make SYSTEM_ZLIB more flexible by using ZLIB_{CFLAGS,LIBS} and building on more than just MACOSX. Reviewed-by: sherman, alanb ! make/com/sun/java/pack/Makefile ! make/common/Program.gmk ! make/common/shared/Defs-linux.gmk ! make/common/shared/Defs-macosx.gmk ! make/common/shared/Defs-solaris.gmk ! make/java/jli/Makefile ! make/java/zip/Makefile ! make/jdk_generic_profile.sh ! make/sun/splashscreen/Makefile ! src/share/native/com/sun/java/util/jar/pack/defines.h ! src/share/native/java/util/zip/Adler32.c ! src/share/native/java/util/zip/CRC32.c ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/Inflater.c ! src/share/native/java/util/zip/zip_util.c Changeset: da14e2c90bcb Author: robm Date: 2012-08-15 22:46 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/da14e2c90bcb 6931128: (spec) File attribute tests fail when run as root. Reviewed-by: alanb ! src/share/classes/java/io/File.java ! test/java/io/File/Basic.java ! test/java/io/File/SetAccess.java ! test/java/io/File/SetReadOnly.java ! test/java/io/File/SymLinks.java + test/java/io/File/Util.java Changeset: 39b01268b845 Author: coffeys Date: 2012-08-16 10:35 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/39b01268b845 7056731: Race condition in CORBA code causes re-use of ABORTed connections Reviewed-by: lancea Contributed-by: d.macdonald at auckland.ac.nz ! test/Makefile + test/com/sun/corba/cachedSocket/7056731.sh + test/com/sun/corba/cachedSocket/Hello.idl + test/com/sun/corba/cachedSocket/HelloClient.java + test/com/sun/corba/cachedSocket/HelloServer.java Changeset: 56d8756749bd Author: coffeys Date: 2012-08-16 10:48 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/56d8756749bd 7185965: Build error in javadoc make stage for bundles not containing crypto package Reviewed-by: chegar ! make/common/shared/Defs-java.gmk Changeset: e48a9a1c14e3 Author: alanb Date: 2012-08-16 11:14 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e48a9a1c14e3 7191556: (fs) UnixNativeDispatcher.getextmntent should be moved into platform specific code Reviewed-by: andrew ! make/java/nio/Makefile ! make/java/nio/mapfile-bsd ! make/java/nio/mapfile-linux ! make/java/nio/mapfile-solaris ! src/solaris/classes/sun/nio/fs/DefaultFileTypeDetector.java ! src/solaris/classes/sun/nio/fs/LinuxFileSystem.java ! src/solaris/classes/sun/nio/fs/LinuxFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/LinuxNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/SolarisFileSystem.java ! src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/SolarisNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/solaris/native/sun/nio/fs/BsdNativeDispatcher.c ! src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c ! src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c ! src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c ! src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c Changeset: 4fb8792725d5 Author: alanb Date: 2012-08-16 11:42 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4fb8792725d5 7191892: ProblemList.txt updates (8/2012) Reviewed-by: alanb Contributed-by: amy.lu at oracle.com ! test/ProblemList.txt Changeset: e50a39d011b5 Author: alanb Date: 2012-08-16 14:35 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e50a39d011b5 7132247: java/rmi/registry/readTest/readTest.sh failing with Cygwin Reviewed-by: alanb Contributed-by: Eric Wang ! test/ProblemList.txt ! test/java/rmi/registry/readTest/readTest.sh Changeset: 4993f8aa7f2e Author: dingxmin Date: 2012-08-17 17:10 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4993f8aa7f2e 7191275: Cleanup OS specific blocks in PlainDatagramSocketImpl.c to support more unix-like platforms Reviewed-by: chegar ! src/solaris/native/java/net/PlainDatagramSocketImpl.c Changeset: 6b2ebf3c4964 Author: mullan Date: 2012-08-17 14:32 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6b2ebf3c4964 6500133: REGRESSION: CertificateParsingException for CRL Distribution Point with blank Reviewed-by: mullan Contributed-by: jason.uh at oracle.com ! src/share/classes/sun/security/x509/URIName.java + test/sun/security/x509/URIName/Parse.java Changeset: 509421263cdd Author: dcubed Date: 2012-08-17 12:51 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/509421263cdd 7191322: add test for 7064927 to java.lang.instrument Summary: Add support for canRetransform attribute to the test manager. Add test for 7064927. Reviewed-by: dsamersoff, sspitsyn, ohair ! test/java/lang/instrument/ATransformerManagementTestCase.java + test/java/lang/instrument/DummyClassWithLVT.java + test/java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.java + test/java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.sh + test/java/lang/instrument/retransformAgent.mf Changeset: 16f2865aac24 Author: ksrini Date: 2012-08-17 08:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/16f2865aac24 7190750: (pack200) the java unpacker produces non spec. compliant classfile with lambda classfiles Reviewed-by: jrose ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java Changeset: a2359f0f9533 Author: alanb Date: 2012-08-19 13:03 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a2359f0f9533 7192275: Minimize LogManager dependencies on java.beans Summary: Reduce dependency to PropertyChangeListener and PropertyChangeEvent. Also add basic test coverage. Reviewed-by: dcubed, dsamersoff, mchung ! src/share/classes/java/util/logging/LogManager.java + test/java/util/logging/Listeners.java + test/java/util/logging/ListenersWithSM.java + test/java/util/logging/java.policy Changeset: 5e7cfe034df4 Author: alanb Date: 2012-08-19 13:29 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5e7cfe034df4 7191467: (fs) WatchService periodically fails to queue ENTRY_DELETE event for short lived file [sol11] Reviewed-by: chegar ! src/solaris/classes/sun/nio/fs/SolarisWatchService.java ! test/java/nio/file/WatchService/MayFlies.java Changeset: 86c963b1dbf8 Author: weijun Date: 2012-08-20 07:59 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/86c963b1dbf8 7192202: Make sure keytool prints both unknown and unparseable extensions Reviewed-by: mullan + test/sun/security/tools/keytool/UnknownAndUnparseable.java Changeset: 59aa7660ade4 Author: robm Date: 2012-08-20 14:52 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/59aa7660ade4 7191777: test/java/lang/ProcessBuilder/Basic.java failing intermittently due to additions for 4244896 Reviewed-by: dholmes, alanb ! test/java/lang/ProcessBuilder/Basic.java Changeset: 6d29c2af040f Author: alanb Date: 2012-08-21 13:42 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6d29c2af040f 7132889: (se) AbstractSelectableChannel.register and configureBlocking not safe from asynchronous close Reviewed-by: alanb Contributed-by: Shirish Kuncolienkar ! src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java + test/java/nio/channels/SelectionKey/RacyRegister.java Changeset: 131a683a2ce0 Author: naoto Date: 2012-08-21 11:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/131a683a2ce0 6336885: RFE: Locale Data Deployment Enhancements 4609153: Provide locale data for Indic locales 5104387: Support for gl_ES locale (galician language) 6337471: desktop/system locale preferences support 7056139: (cal) SPI support for locale-dependent Calendar parameters 7058206: Provide CalendarData SPI for week params and display field value names 7073852: Support multiple scripts for digits and decimal symbols per locale 7079560: [Fmt-Da] Context dependent month names support in SimpleDateFormat 7171324: getAvailableLocales() of locale sensitive services should return the actual availability of locales 7151414: (cal) Support calendar type identification 7168528: LocaleServiceProvider needs to be aware of Locale extensions 7171372: (cal) locale's default Calendar should be created if unknown calendar is specified Summary: JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data (part 1 w/o packaging changes. by Naoto Sato and Masayoshi Okutsu) Reviewed-by: erikj, sherman, peytoia ! make/java/java/Exportedfiles.gmk ! make/java/java/FILES_c.gmk ! make/java/java/FILES_java.gmk ! make/java/java/Makefile ! make/java/java/genlocales.gmk ! make/java/java/localegen.sh ! make/java/java/mapfile-vers ! make/java/text/base/FILES_java.gmk ! make/java/util/FILES_java.gmk ! make/java/util/FILES_properties.gmk ! make/java/util/Makefile ! make/sun/Makefile + make/sun/cldr/Makefile ! make/sun/text/FILES_java.gmk ! make/sun/text/FILES_properties.gmk ! make/sun/text/Makefile ! make/tools/Makefile + make/tools/cldrconverter/Makefile + make/tools/src/build/tools/cldrconverter/AbstractLDMLHandler.java + make/tools/src/build/tools/cldrconverter/Bundle.java + make/tools/src/build/tools/cldrconverter/BundleGenerator.java + make/tools/src/build/tools/cldrconverter/CLDRConverter.java + make/tools/src/build/tools/cldrconverter/CalendarType.java + make/tools/src/build/tools/cldrconverter/Container.java + make/tools/src/build/tools/cldrconverter/CopyrightHeaders.java + make/tools/src/build/tools/cldrconverter/Entry.java + make/tools/src/build/tools/cldrconverter/IgnoredContainer.java + make/tools/src/build/tools/cldrconverter/KeyContainer.java + make/tools/src/build/tools/cldrconverter/LDMLParseHandler.java + make/tools/src/build/tools/cldrconverter/MetaZonesParseHandler.java + make/tools/src/build/tools/cldrconverter/NumberingSystemsParseHandler.java + make/tools/src/build/tools/cldrconverter/ResourceBundleGenerator.java + make/tools/src/build/tools/cldrconverter/StringArrayElement.java + make/tools/src/build/tools/cldrconverter/StringArrayEntry.java + make/tools/src/build/tools/cldrconverter/StringEntry.java + make/tools/src/build/tools/cldrconverter/SupplementDataParseHandler.java + make/tools/src/build/tools/generatebreakiteratordata/BreakIteratorRBControl.java ! make/tools/src/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java ! makefiles/CreateJars.gmk ! makefiles/GendataBreakIterator.gmk ! makefiles/GenerateJavaSources.gmk + makefiles/GensrcCLDR.gmk ! makefiles/GensrcLocaleDataMetaInfo.gmk ! makefiles/GensrcProperties.gmk ! makefiles/Tools.gmk + src/macosx/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java + src/macosx/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c - src/share/classes/java/text/BreakDictionary.java ! src/share/classes/java/text/BreakIterator.java - src/share/classes/java/text/CollationRules.java ! src/share/classes/java/text/Collator.java ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/DateFormatSymbols.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/DecimalFormatSymbols.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java ! src/share/classes/java/text/NumberFormat.java - src/share/classes/java/text/RuleBasedBreakIterator.java ! src/share/classes/java/text/SimpleDateFormat.java ! src/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/share/classes/java/util/Calendar.java ! src/share/classes/java/util/Currency.java ! src/share/classes/java/util/GregorianCalendar.java ! src/share/classes/java/util/JapaneseImperialCalendar.java ! src/share/classes/java/util/Locale.java ! src/share/classes/java/util/TimeZone.java + src/share/classes/java/util/spi/CalendarDataProvider.java ! src/share/classes/java/util/spi/CurrencyNameProvider.java ! src/share/classes/java/util/spi/LocaleServiceProvider.java ! src/share/classes/javax/swing/JSpinner.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java ! src/share/classes/sun/text/resources/FormatData.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java + src/share/classes/sun/text/resources/ar/CollationData_ar.java + src/share/classes/sun/text/resources/ar/FormatData_ar.java + src/share/classes/sun/text/resources/ar/FormatData_ar_JO.java + src/share/classes/sun/text/resources/ar/FormatData_ar_LB.java + src/share/classes/sun/text/resources/ar/FormatData_ar_SY.java + src/share/classes/sun/text/resources/be/CollationData_be.java + src/share/classes/sun/text/resources/be/FormatData_be.java + src/share/classes/sun/text/resources/be/FormatData_be_BY.java + src/share/classes/sun/text/resources/bg/CollationData_bg.java + src/share/classes/sun/text/resources/bg/FormatData_bg.java + src/share/classes/sun/text/resources/bg/FormatData_bg_BG.java + src/share/classes/sun/text/resources/ca/CollationData_ca.java + src/share/classes/sun/text/resources/ca/FormatData_ca.java + src/share/classes/sun/text/resources/ca/FormatData_ca_ES.java + src/share/classes/sun/text/resources/cs/CollationData_cs.java + src/share/classes/sun/text/resources/cs/FormatData_cs.java + src/share/classes/sun/text/resources/cs/FormatData_cs_CZ.java + src/share/classes/sun/text/resources/da/CollationData_da.java + src/share/classes/sun/text/resources/da/FormatData_da.java + src/share/classes/sun/text/resources/da/FormatData_da_DK.java + src/share/classes/sun/text/resources/de/FormatData_de.java + src/share/classes/sun/text/resources/de/FormatData_de_AT.java + src/share/classes/sun/text/resources/de/FormatData_de_CH.java + src/share/classes/sun/text/resources/de/FormatData_de_DE.java + src/share/classes/sun/text/resources/de/FormatData_de_LU.java + src/share/classes/sun/text/resources/el/CollationData_el.java + src/share/classes/sun/text/resources/el/FormatData_el.java + src/share/classes/sun/text/resources/el/FormatData_el_CY.java + src/share/classes/sun/text/resources/el/FormatData_el_GR.java + src/share/classes/sun/text/resources/en/FormatData_en.java + src/share/classes/sun/text/resources/en/FormatData_en_AU.java + src/share/classes/sun/text/resources/en/FormatData_en_CA.java + src/share/classes/sun/text/resources/en/FormatData_en_GB.java + src/share/classes/sun/text/resources/en/FormatData_en_IE.java + src/share/classes/sun/text/resources/en/FormatData_en_IN.java + src/share/classes/sun/text/resources/en/FormatData_en_MT.java + src/share/classes/sun/text/resources/en/FormatData_en_NZ.java + src/share/classes/sun/text/resources/en/FormatData_en_PH.java + src/share/classes/sun/text/resources/en/FormatData_en_SG.java + src/share/classes/sun/text/resources/en/FormatData_en_US.java + src/share/classes/sun/text/resources/en/FormatData_en_ZA.java + src/share/classes/sun/text/resources/es/CollationData_es.java + src/share/classes/sun/text/resources/es/FormatData_es.java + src/share/classes/sun/text/resources/es/FormatData_es_AR.java + src/share/classes/sun/text/resources/es/FormatData_es_BO.java + src/share/classes/sun/text/resources/es/FormatData_es_CL.java + src/share/classes/sun/text/resources/es/FormatData_es_CO.java + src/share/classes/sun/text/resources/es/FormatData_es_CR.java + src/share/classes/sun/text/resources/es/FormatData_es_DO.java + src/share/classes/sun/text/resources/es/FormatData_es_EC.java + src/share/classes/sun/text/resources/es/FormatData_es_ES.java + src/share/classes/sun/text/resources/es/FormatData_es_GT.java + src/share/classes/sun/text/resources/es/FormatData_es_HN.java + src/share/classes/sun/text/resources/es/FormatData_es_MX.java + src/share/classes/sun/text/resources/es/FormatData_es_NI.java + src/share/classes/sun/text/resources/es/FormatData_es_PA.java + src/share/classes/sun/text/resources/es/FormatData_es_PE.java + src/share/classes/sun/text/resources/es/FormatData_es_PR.java + src/share/classes/sun/text/resources/es/FormatData_es_PY.java + src/share/classes/sun/text/resources/es/FormatData_es_SV.java + src/share/classes/sun/text/resources/es/FormatData_es_US.java + src/share/classes/sun/text/resources/es/FormatData_es_UY.java + src/share/classes/sun/text/resources/es/FormatData_es_VE.java + src/share/classes/sun/text/resources/et/CollationData_et.java + src/share/classes/sun/text/resources/et/FormatData_et.java + src/share/classes/sun/text/resources/et/FormatData_et_EE.java + src/share/classes/sun/text/resources/fi/CollationData_fi.java + src/share/classes/sun/text/resources/fi/FormatData_fi.java + src/share/classes/sun/text/resources/fi/FormatData_fi_FI.java + src/share/classes/sun/text/resources/fr/CollationData_fr.java + src/share/classes/sun/text/resources/fr/FormatData_fr.java + src/share/classes/sun/text/resources/fr/FormatData_fr_BE.java + src/share/classes/sun/text/resources/fr/FormatData_fr_CA.java + src/share/classes/sun/text/resources/fr/FormatData_fr_CH.java + src/share/classes/sun/text/resources/fr/FormatData_fr_FR.java + src/share/classes/sun/text/resources/ga/FormatData_ga.java + src/share/classes/sun/text/resources/ga/FormatData_ga_IE.java + src/share/classes/sun/text/resources/hi/CollationData_hi.java + src/share/classes/sun/text/resources/hi/FormatData_hi_IN.java + src/share/classes/sun/text/resources/hr/CollationData_hr.java + src/share/classes/sun/text/resources/hr/FormatData_hr.java + src/share/classes/sun/text/resources/hr/FormatData_hr_HR.java + src/share/classes/sun/text/resources/hu/CollationData_hu.java + src/share/classes/sun/text/resources/hu/FormatData_hu.java + src/share/classes/sun/text/resources/hu/FormatData_hu_HU.java + src/share/classes/sun/text/resources/in/FormatData_in.java + src/share/classes/sun/text/resources/in/FormatData_in_ID.java + src/share/classes/sun/text/resources/is/CollationData_is.java + src/share/classes/sun/text/resources/is/FormatData_is.java + src/share/classes/sun/text/resources/is/FormatData_is_IS.java + src/share/classes/sun/text/resources/it/FormatData_it.java + src/share/classes/sun/text/resources/it/FormatData_it_CH.java + src/share/classes/sun/text/resources/it/FormatData_it_IT.java + src/share/classes/sun/text/resources/iw/CollationData_iw.java + src/share/classes/sun/text/resources/iw/FormatData_iw.java + src/share/classes/sun/text/resources/iw/FormatData_iw_IL.java + src/share/classes/sun/text/resources/ja/CollationData_ja.java + src/share/classes/sun/text/resources/ja/FormatData_ja.java + src/share/classes/sun/text/resources/ja/FormatData_ja_JP.java + src/share/classes/sun/text/resources/ko/CollationData_ko.java + src/share/classes/sun/text/resources/ko/FormatData_ko.java + src/share/classes/sun/text/resources/ko/FormatData_ko_KR.java + src/share/classes/sun/text/resources/lt/CollationData_lt.java + src/share/classes/sun/text/resources/lt/FormatData_lt.java + src/share/classes/sun/text/resources/lt/FormatData_lt_LT.java + src/share/classes/sun/text/resources/lv/CollationData_lv.java + src/share/classes/sun/text/resources/lv/FormatData_lv.java + src/share/classes/sun/text/resources/lv/FormatData_lv_LV.java + src/share/classes/sun/text/resources/mk/CollationData_mk.java + src/share/classes/sun/text/resources/mk/FormatData_mk.java + src/share/classes/sun/text/resources/mk/FormatData_mk_MK.java + src/share/classes/sun/text/resources/ms/FormatData_ms.java + src/share/classes/sun/text/resources/ms/FormatData_ms_MY.java + src/share/classes/sun/text/resources/mt/FormatData_mt.java + src/share/classes/sun/text/resources/mt/FormatData_mt_MT.java + src/share/classes/sun/text/resources/nl/FormatData_nl.java + src/share/classes/sun/text/resources/nl/FormatData_nl_BE.java + src/share/classes/sun/text/resources/nl/FormatData_nl_NL.java + src/share/classes/sun/text/resources/no/CollationData_no.java + src/share/classes/sun/text/resources/no/FormatData_no.java + src/share/classes/sun/text/resources/no/FormatData_no_NO.java + src/share/classes/sun/text/resources/no/FormatData_no_NO_NY.java + src/share/classes/sun/text/resources/pl/CollationData_pl.java + src/share/classes/sun/text/resources/pl/FormatData_pl.java + src/share/classes/sun/text/resources/pl/FormatData_pl_PL.java + src/share/classes/sun/text/resources/pt/FormatData_pt.java + src/share/classes/sun/text/resources/pt/FormatData_pt_BR.java + src/share/classes/sun/text/resources/pt/FormatData_pt_PT.java + src/share/classes/sun/text/resources/ro/CollationData_ro.java + src/share/classes/sun/text/resources/ro/FormatData_ro.java + src/share/classes/sun/text/resources/ro/FormatData_ro_RO.java + src/share/classes/sun/text/resources/ru/CollationData_ru.java + src/share/classes/sun/text/resources/ru/FormatData_ru.java + src/share/classes/sun/text/resources/ru/FormatData_ru_RU.java + src/share/classes/sun/text/resources/sk/CollationData_sk.java + src/share/classes/sun/text/resources/sk/FormatData_sk.java + src/share/classes/sun/text/resources/sk/FormatData_sk_SK.java + src/share/classes/sun/text/resources/sl/CollationData_sl.java + src/share/classes/sun/text/resources/sl/FormatData_sl.java + src/share/classes/sun/text/resources/sl/FormatData_sl_SI.java + src/share/classes/sun/text/resources/sq/CollationData_sq.java + src/share/classes/sun/text/resources/sq/FormatData_sq.java + src/share/classes/sun/text/resources/sq/FormatData_sq_AL.java + src/share/classes/sun/text/resources/sr/CollationData_sr.java + src/share/classes/sun/text/resources/sr/CollationData_sr_Latn.java + src/share/classes/sun/text/resources/sr/FormatData_sr.java + src/share/classes/sun/text/resources/sr/FormatData_sr_BA.java + src/share/classes/sun/text/resources/sr/FormatData_sr_CS.java + src/share/classes/sun/text/resources/sr/FormatData_sr_Latn.java + src/share/classes/sun/text/resources/sr/FormatData_sr_Latn_ME.java + src/share/classes/sun/text/resources/sr/FormatData_sr_ME.java + src/share/classes/sun/text/resources/sr/FormatData_sr_RS.java + src/share/classes/sun/text/resources/sv/CollationData_sv.java + src/share/classes/sun/text/resources/sv/FormatData_sv.java + src/share/classes/sun/text/resources/sv/FormatData_sv_SE.java + src/share/classes/sun/text/resources/th/BreakIteratorInfo_th.java + src/share/classes/sun/text/resources/th/BreakIteratorRules_th.java + src/share/classes/sun/text/resources/th/CollationData_th.java + src/share/classes/sun/text/resources/th/FormatData_th.java + src/share/classes/sun/text/resources/th/FormatData_th_TH.java + src/share/classes/sun/text/resources/th/thai_dict - src/share/classes/sun/text/resources/thai_dict + src/share/classes/sun/text/resources/tr/CollationData_tr.java + src/share/classes/sun/text/resources/tr/FormatData_tr.java + src/share/classes/sun/text/resources/tr/FormatData_tr_TR.java + src/share/classes/sun/text/resources/uk/CollationData_uk.java + src/share/classes/sun/text/resources/uk/FormatData_uk.java + src/share/classes/sun/text/resources/uk/FormatData_uk_UA.java + src/share/classes/sun/text/resources/vi/CollationData_vi.java + src/share/classes/sun/text/resources/vi/FormatData_vi.java + src/share/classes/sun/text/resources/vi/FormatData_vi_VN.java + src/share/classes/sun/text/resources/zh/CollationData_zh.java + src/share/classes/sun/text/resources/zh/CollationData_zh_HK.java + src/share/classes/sun/text/resources/zh/CollationData_zh_TW.java + src/share/classes/sun/text/resources/zh/FormatData_zh.java + src/share/classes/sun/text/resources/zh/FormatData_zh_CN.java + src/share/classes/sun/text/resources/zh/FormatData_zh_HK.java + src/share/classes/sun/text/resources/zh/FormatData_zh_SG.java + src/share/classes/sun/text/resources/zh/FormatData_zh_TW.java ! src/share/classes/sun/util/BuddhistCalendar.java - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java + src/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java + src/share/classes/sun/util/cldr/resources/21_0_1/LICENSE + src/share/classes/sun/util/cldr/resources/21_0_1/common/dtd/ldml.dtd + src/share/classes/sun/util/cldr/resources/21_0_1/common/dtd/ldmlSupplemental.dtd + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/aa.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/aa_DJ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/aa_ER.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/aa_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/af.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/af_NA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/af_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/agq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/agq_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ak.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ak_GH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/am.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/am_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_001.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_AE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_BH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_DZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_EG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_IQ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_JO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_KW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_LB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_LY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_MA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_OM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_QA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_SA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_SD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_SY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_TN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ar_YE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/as.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/as_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/asa.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/asa_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/az.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/az_Cyrl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/az_Cyrl_AZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/az_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/az_Latn_AZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bas.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bas_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/be.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/be_BY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bem.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bem_ZM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bez.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bez_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bg_BG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bm.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bm_ML.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bn_BD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bn_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bo_CN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bo_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/br.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/br_FR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/brx.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/brx_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bs.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/bs_BA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/byn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/byn_ER.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ca.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ca_ES.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cgg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cgg_UG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/chr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/chr_US.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cs.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cs_CZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cy.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/cy_GB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/da.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/da_DK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dav.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dav_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_AT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_BE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_DE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_LI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/de_LU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dje.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dje_NE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dua.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dua_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dyo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dyo_SN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dz.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/dz_BT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ebu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ebu_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ee.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ee_GH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ee_TG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/el.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/el_CY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/el_GR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_AS.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_AU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_BB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_BE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_BM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_BW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_BZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_CA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_Dsrt.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_Dsrt_US.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_GB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_GU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_GY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_HK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_IE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_JM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_MH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_MP.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_MT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_MU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_NA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_NZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_PH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_PK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_SG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_TT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_UM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_US.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_US_POSIX.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_VI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/en_ZW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/eo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_419.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_AR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_BO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_CL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_CO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_CR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_DO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_EC.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_ES.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_GQ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_GT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_HN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_MX.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_NI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_PA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_PE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_PR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_PY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_SV.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_US.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_UY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/es_VE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/et.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/et_EE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/eu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/eu_ES.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ewo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ewo_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fa.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fa_AF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fa_IR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ff.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ff_SN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fi.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fi_FI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fil.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fil_PH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fo_FO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_BE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_BF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_BI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_BJ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_BL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_DJ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_FR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_GA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_GF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_GN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_GP.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_GQ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_KM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_LU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_MC.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_MF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_MG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_ML.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_MQ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_NE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_RE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_RW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_SN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_TD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_TG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fr_YT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fur.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/fur_IT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ga.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ga_IE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gd.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gd_GB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gl_ES.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gsw.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gsw_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gu_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/guz.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/guz_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gv.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/gv_GB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ha.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ha_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ha_Latn_GH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ha_Latn_NE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ha_Latn_NG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/haw.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/haw_US.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/he.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/he_IL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hi.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hi_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hr_HR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hu_HU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hy.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/hy_AM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ia.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/id.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/id_ID.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ig.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ig_NG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ii.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ii_CN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/is.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/is_IS.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/it.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/it_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/it_IT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ja.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ja_JP.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/jmc.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/jmc_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ka.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ka_GE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kab.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kab_DZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kam.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kam_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kde.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kde_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kea.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kea_CV.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/khq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/khq_ML.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ki.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ki_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kk.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kk_Cyrl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kk_Cyrl_KZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kl_GL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kln.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kln_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/km.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/km_KH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kn_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ko.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ko_KR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kok.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kok_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksb.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksb_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksf.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksf_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksh.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ksh_DE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kw.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/kw_GB.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lag.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lag_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lg_UG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ln.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ln_CD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ln_CG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lo_LA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lt.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lt_LT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lu_CD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/luo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/luo_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/luy.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/luy_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lv.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/lv_LV.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mas.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mas_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mas_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mer.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mer_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mfe.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mfe_MU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mg_MG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mgh.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mgh_MZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mk.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mk_MK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ml.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ml_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mr_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ms.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ms_BN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ms_MY.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mt.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mt_MT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mua.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/mua_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/my.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/my_MM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/naq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/naq_NA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nb.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nb_NO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nd.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nd_ZW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ne.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ne_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ne_NP.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl_AW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl_BE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl_CW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl_NL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nl_SX.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nmg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nmg_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nn_NO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nr_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nso.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nso_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nus.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nus_SD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nyn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/nyn_UG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/om.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/om_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/om_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/or.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/or_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pa.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pa_Arab.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pa_Arab_PK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pa_Guru.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pa_Guru_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pl_PL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ps.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ps_AF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_AO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_BR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_GW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_MZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_PT.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/pt_ST.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rm.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rm_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rn_BI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ro.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ro_MD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ro_RO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rof.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rof_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/root.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ru.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ru_MD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ru_RU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ru_UA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rw.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rw_RW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rwk.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/rwk_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sah.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sah_RU.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/saq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/saq_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sbp.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sbp_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/se.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/se_FI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/se_NO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/seh.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/seh_MZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ses.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ses_ML.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sg_CF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/shi.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/shi_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/shi_Latn_MA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/shi_Tfng.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/shi_Tfng_MA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/si.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/si_LK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sk.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sk_SK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sl_SI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sn_ZW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/so.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/so_DJ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/so_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/so_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/so_SO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sq_AL.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Cyrl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Cyrl_BA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Cyrl_ME.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Cyrl_RS.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Latn_BA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Latn_ME.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sr_Latn_RS.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ss.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ss_SZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ss_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ssy.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ssy_ER.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/st.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/st_LS.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/st_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sv.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sv_FI.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sv_SE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sw.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sw_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/sw_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/swc.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/swc_CD.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ta.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ta_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ta_LK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/te.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/te_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/teo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/teo_KE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/teo_UG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tg.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tg_Cyrl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tg_Cyrl_TJ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/th.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/th_TH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ti.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ti_ER.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ti_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tig.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tig_ER.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tn_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/to.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/to_TO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tr.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tr_TR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ts.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ts_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/twq.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/twq_NE.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tzm.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tzm_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/tzm_Latn_MA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uk.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uk_UA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ur.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ur_IN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ur_PK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Arab.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Arab_AF.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Cyrl.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Cyrl_UZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/uz_Latn_UZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vai.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vai_Latn.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vai_Latn_LR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vai_Vaii.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vai_Vaii_LR.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ve.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/ve_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vi.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vi_VN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vun.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/vun_TZ.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/wae.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/wae_CH.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/wal.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/wal_ET.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/xh.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/xh_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/xog.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/xog_UG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/yav.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/yav_CM.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/yo.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/yo_NG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hans.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hans_CN.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hans_HK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hans_MO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hans_SG.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hant.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hant_HK.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hant_MO.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zh_Hant_TW.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zu.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/main/zu_ZA.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/metaZones.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/numberingSystems.xml + src/share/classes/sun/util/cldr/resources/21_0_1/common/supplemental/supplementalData.xml ! src/share/classes/sun/util/locale/LocaleUtils.java + src/share/classes/sun/util/locale/provider/AuxLocaleProviderAdapter.java + src/share/classes/sun/util/locale/provider/AvailableLanguageTags.java + src/share/classes/sun/util/locale/provider/BreakDictionary.java + src/share/classes/sun/util/locale/provider/BreakIteratorProviderImpl.java + src/share/classes/sun/util/locale/provider/CalendarDataProviderImpl.java + src/share/classes/sun/util/locale/provider/CalendarDataUtility.java + src/share/classes/sun/util/locale/provider/CollationRules.java + src/share/classes/sun/util/locale/provider/CollatorProviderImpl.java + src/share/classes/sun/util/locale/provider/CurrencyNameProviderImpl.java + src/share/classes/sun/util/locale/provider/DateFormatProviderImpl.java + src/share/classes/sun/util/locale/provider/DateFormatSymbolsProviderImpl.java + src/share/classes/sun/util/locale/provider/DecimalFormatSymbolsProviderImpl.java + src/share/classes/sun/util/locale/provider/DictionaryBasedBreakIterator.java + src/share/classes/sun/util/locale/provider/HostLocaleProviderAdapter.java + src/share/classes/sun/util/locale/provider/JRELocaleConstants.java + src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java + src/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template + src/share/classes/sun/util/locale/provider/LocaleNameProviderImpl.java + src/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java + src/share/classes/sun/util/locale/provider/LocaleResources.java + src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java + src/share/classes/sun/util/locale/provider/NumberFormatProviderImpl.java + src/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java + src/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java + src/share/classes/sun/util/locale/provider/TimeZoneNameProviderImpl.java + src/share/classes/sun/util/locale/provider/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties ! src/share/classes/sun/util/resources/LocaleData.java - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties ! src/share/classes/sun/util/resources/OpenListResourceBundle.java - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java + src/share/classes/sun/util/resources/ar/CalendarData_ar.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_AE.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_BH.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_DZ.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_EG.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_IQ.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_JO.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_KW.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_LB.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_LY.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_MA.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_OM.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_QA.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_SA.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_SD.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_SY.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_TN.properties + src/share/classes/sun/util/resources/ar/CurrencyNames_ar_YE.properties + src/share/classes/sun/util/resources/ar/LocaleNames_ar.properties + src/share/classes/sun/util/resources/be/CalendarData_be.properties + src/share/classes/sun/util/resources/be/CurrencyNames_be_BY.properties + src/share/classes/sun/util/resources/be/LocaleNames_be.properties + src/share/classes/sun/util/resources/bg/CalendarData_bg.properties + src/share/classes/sun/util/resources/bg/CurrencyNames_bg_BG.properties + src/share/classes/sun/util/resources/bg/LocaleNames_bg.properties + src/share/classes/sun/util/resources/ca/CalendarData_ca.properties + src/share/classes/sun/util/resources/ca/CurrencyNames_ca_ES.properties + src/share/classes/sun/util/resources/ca/LocaleNames_ca.properties + src/share/classes/sun/util/resources/cs/CalendarData_cs.properties + src/share/classes/sun/util/resources/cs/CurrencyNames_cs_CZ.properties + src/share/classes/sun/util/resources/cs/LocaleNames_cs.properties + src/share/classes/sun/util/resources/da/CalendarData_da.properties + src/share/classes/sun/util/resources/da/CurrencyNames_da_DK.properties + src/share/classes/sun/util/resources/da/LocaleNames_da.properties + src/share/classes/sun/util/resources/de/CalendarData_de.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de_AT.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de_CH.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de_DE.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de_GR.properties + src/share/classes/sun/util/resources/de/CurrencyNames_de_LU.properties + src/share/classes/sun/util/resources/de/LocaleNames_de.properties + src/share/classes/sun/util/resources/de/TimeZoneNames_de.java + src/share/classes/sun/util/resources/el/CalendarData_el.properties + src/share/classes/sun/util/resources/el/CalendarData_el_CY.properties + src/share/classes/sun/util/resources/el/CurrencyNames_el_CY.properties + src/share/classes/sun/util/resources/el/CurrencyNames_el_GR.properties + src/share/classes/sun/util/resources/el/LocaleNames_el.properties + src/share/classes/sun/util/resources/el/LocaleNames_el_CY.properties + src/share/classes/sun/util/resources/en/CalendarData_en.properties + src/share/classes/sun/util/resources/en/CalendarData_en_GB.properties + src/share/classes/sun/util/resources/en/CalendarData_en_IE.properties + src/share/classes/sun/util/resources/en/CalendarData_en_MT.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_AU.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_CA.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_GB.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_IE.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_IN.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_MT.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_NZ.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_PH.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_SG.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_US.properties + src/share/classes/sun/util/resources/en/CurrencyNames_en_ZA.properties + src/share/classes/sun/util/resources/en/LocaleNames_en.properties + src/share/classes/sun/util/resources/en/LocaleNames_en_MT.properties + src/share/classes/sun/util/resources/en/LocaleNames_en_PH.properties + src/share/classes/sun/util/resources/en/LocaleNames_en_SG.properties + src/share/classes/sun/util/resources/en/TimeZoneNames_en.java + src/share/classes/sun/util/resources/en/TimeZoneNames_en_CA.java + src/share/classes/sun/util/resources/en/TimeZoneNames_en_GB.java + src/share/classes/sun/util/resources/en/TimeZoneNames_en_IE.java + src/share/classes/sun/util/resources/es/CalendarData_es.properties + src/share/classes/sun/util/resources/es/CalendarData_es_ES.properties + src/share/classes/sun/util/resources/es/CalendarData_es_US.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_AR.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_BO.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_CL.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_CO.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_CR.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_CU.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_DO.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_EC.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_ES.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_GT.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_HN.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_MX.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_NI.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_PA.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_PE.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_PR.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_PY.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_SV.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_US.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_UY.properties + src/share/classes/sun/util/resources/es/CurrencyNames_es_VE.properties + src/share/classes/sun/util/resources/es/LocaleNames_es.properties + src/share/classes/sun/util/resources/es/LocaleNames_es_US.properties + src/share/classes/sun/util/resources/es/TimeZoneNames_es.java + src/share/classes/sun/util/resources/et/CalendarData_et.properties + src/share/classes/sun/util/resources/et/CurrencyNames_et_EE.properties + src/share/classes/sun/util/resources/et/LocaleNames_et.properties + src/share/classes/sun/util/resources/fi/CalendarData_fi.properties + src/share/classes/sun/util/resources/fi/CurrencyNames_fi_FI.properties + src/share/classes/sun/util/resources/fi/LocaleNames_fi.properties + src/share/classes/sun/util/resources/fr/CalendarData_fr.properties + src/share/classes/sun/util/resources/fr/CalendarData_fr_CA.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr_BE.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr_CA.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr_CH.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr_FR.properties + src/share/classes/sun/util/resources/fr/CurrencyNames_fr_LU.properties + src/share/classes/sun/util/resources/fr/LocaleNames_fr.properties + src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java + src/share/classes/sun/util/resources/ga/CurrencyNames_ga_IE.properties + src/share/classes/sun/util/resources/ga/LocaleNames_ga.properties + src/share/classes/sun/util/resources/hi/CalendarData_hi.properties + src/share/classes/sun/util/resources/hi/CurrencyNames_hi_IN.properties + src/share/classes/sun/util/resources/hi/LocaleNames_hi.properties + src/share/classes/sun/util/resources/hi/TimeZoneNames_hi.java + src/share/classes/sun/util/resources/hr/CalendarData_hr.properties + src/share/classes/sun/util/resources/hr/CurrencyNames_hr_HR.properties + src/share/classes/sun/util/resources/hr/LocaleNames_hr.properties + src/share/classes/sun/util/resources/hu/CalendarData_hu.properties + src/share/classes/sun/util/resources/hu/CurrencyNames_hu_HU.properties + src/share/classes/sun/util/resources/hu/LocaleNames_hu.properties + src/share/classes/sun/util/resources/in/CalendarData_in_ID.properties + src/share/classes/sun/util/resources/in/CurrencyNames_in_ID.properties + src/share/classes/sun/util/resources/in/LocaleNames_in.properties + src/share/classes/sun/util/resources/is/CalendarData_is.properties + src/share/classes/sun/util/resources/is/CurrencyNames_is_IS.properties + src/share/classes/sun/util/resources/is/LocaleNames_is.properties + src/share/classes/sun/util/resources/it/CalendarData_it.properties + src/share/classes/sun/util/resources/it/CurrencyNames_it.properties + src/share/classes/sun/util/resources/it/CurrencyNames_it_CH.properties + src/share/classes/sun/util/resources/it/CurrencyNames_it_IT.properties + src/share/classes/sun/util/resources/it/LocaleNames_it.properties + src/share/classes/sun/util/resources/it/TimeZoneNames_it.java + src/share/classes/sun/util/resources/iw/CalendarData_iw.properties + src/share/classes/sun/util/resources/iw/CurrencyNames_iw_IL.properties + src/share/classes/sun/util/resources/iw/LocaleNames_iw.properties + src/share/classes/sun/util/resources/ja/CalendarData_ja.properties + src/share/classes/sun/util/resources/ja/CurrencyNames_ja.properties + src/share/classes/sun/util/resources/ja/CurrencyNames_ja_JP.properties + src/share/classes/sun/util/resources/ja/LocaleNames_ja.properties + src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java + src/share/classes/sun/util/resources/ko/CalendarData_ko.properties + src/share/classes/sun/util/resources/ko/CurrencyNames_ko.properties + src/share/classes/sun/util/resources/ko/CurrencyNames_ko_KR.properties + src/share/classes/sun/util/resources/ko/LocaleNames_ko.properties + src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java + src/share/classes/sun/util/resources/lt/CalendarData_lt.properties + src/share/classes/sun/util/resources/lt/CurrencyNames_lt_LT.properties + src/share/classes/sun/util/resources/lt/LocaleNames_lt.properties + src/share/classes/sun/util/resources/lv/CalendarData_lv.properties + src/share/classes/sun/util/resources/lv/CurrencyNames_lv_LV.properties + src/share/classes/sun/util/resources/lv/LocaleNames_lv.properties + src/share/classes/sun/util/resources/mk/CalendarData_mk.properties + src/share/classes/sun/util/resources/mk/CurrencyNames_mk_MK.properties + src/share/classes/sun/util/resources/mk/LocaleNames_mk.properties + src/share/classes/sun/util/resources/ms/CalendarData_ms_MY.properties + src/share/classes/sun/util/resources/ms/CurrencyNames_ms_MY.properties + src/share/classes/sun/util/resources/ms/LocaleNames_ms.properties + src/share/classes/sun/util/resources/mt/CalendarData_mt.properties + src/share/classes/sun/util/resources/mt/CalendarData_mt_MT.properties + src/share/classes/sun/util/resources/mt/CurrencyNames_mt_MT.properties + src/share/classes/sun/util/resources/mt/LocaleNames_mt.properties + src/share/classes/sun/util/resources/nl/CalendarData_nl.properties + src/share/classes/sun/util/resources/nl/CurrencyNames_nl_BE.properties + src/share/classes/sun/util/resources/nl/CurrencyNames_nl_NL.properties + src/share/classes/sun/util/resources/nl/LocaleNames_nl.properties + src/share/classes/sun/util/resources/no/CalendarData_no.properties + src/share/classes/sun/util/resources/no/CurrencyNames_no_NO.properties + src/share/classes/sun/util/resources/no/LocaleNames_no.properties + src/share/classes/sun/util/resources/no/LocaleNames_no_NO_NY.properties + src/share/classes/sun/util/resources/pl/CalendarData_pl.properties + src/share/classes/sun/util/resources/pl/CurrencyNames_pl_PL.properties + src/share/classes/sun/util/resources/pl/LocaleNames_pl.properties + src/share/classes/sun/util/resources/pt/CalendarData_pt.properties + src/share/classes/sun/util/resources/pt/CalendarData_pt_PT.properties + src/share/classes/sun/util/resources/pt/CurrencyNames_pt.properties + src/share/classes/sun/util/resources/pt/CurrencyNames_pt_BR.properties + src/share/classes/sun/util/resources/pt/CurrencyNames_pt_PT.properties + src/share/classes/sun/util/resources/pt/LocaleNames_pt.properties + src/share/classes/sun/util/resources/pt/LocaleNames_pt_BR.properties + src/share/classes/sun/util/resources/pt/LocaleNames_pt_PT.properties + src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java + src/share/classes/sun/util/resources/ro/CalendarData_ro.properties + src/share/classes/sun/util/resources/ro/CurrencyNames_ro_RO.properties + src/share/classes/sun/util/resources/ro/LocaleNames_ro.properties + src/share/classes/sun/util/resources/ru/CalendarData_ru.properties + src/share/classes/sun/util/resources/ru/CurrencyNames_ru_RU.properties + src/share/classes/sun/util/resources/ru/LocaleNames_ru.properties + src/share/classes/sun/util/resources/sk/CalendarData_sk.properties + src/share/classes/sun/util/resources/sk/CurrencyNames_sk_SK.properties + src/share/classes/sun/util/resources/sk/LocaleNames_sk.properties + src/share/classes/sun/util/resources/sl/CalendarData_sl.properties + src/share/classes/sun/util/resources/sl/CurrencyNames_sl_SI.properties + src/share/classes/sun/util/resources/sl/LocaleNames_sl.properties + src/share/classes/sun/util/resources/sq/CalendarData_sq.properties + src/share/classes/sun/util/resources/sq/CurrencyNames_sq_AL.properties + src/share/classes/sun/util/resources/sq/LocaleNames_sq.properties + src/share/classes/sun/util/resources/sr/CalendarData_sr.properties + src/share/classes/sun/util/resources/sr/CalendarData_sr_Latn_BA.properties + src/share/classes/sun/util/resources/sr/CalendarData_sr_Latn_ME.properties + src/share/classes/sun/util/resources/sr/CalendarData_sr_Latn_RS.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_BA.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_CS.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_Latn_BA.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_Latn_ME.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_Latn_RS.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_ME.properties + src/share/classes/sun/util/resources/sr/CurrencyNames_sr_RS.properties + src/share/classes/sun/util/resources/sr/LocaleNames_sr.properties + src/share/classes/sun/util/resources/sr/LocaleNames_sr_Latn.properties + src/share/classes/sun/util/resources/sv/CalendarData_sv.properties + src/share/classes/sun/util/resources/sv/CurrencyNames_sv.properties + src/share/classes/sun/util/resources/sv/CurrencyNames_sv_SE.properties + src/share/classes/sun/util/resources/sv/LocaleNames_sv.properties + src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java + src/share/classes/sun/util/resources/th/CalendarData_th.properties + src/share/classes/sun/util/resources/th/CurrencyNames_th_TH.properties + src/share/classes/sun/util/resources/th/LocaleNames_th.properties + src/share/classes/sun/util/resources/tr/CalendarData_tr.properties + src/share/classes/sun/util/resources/tr/CurrencyNames_tr_TR.properties + src/share/classes/sun/util/resources/tr/LocaleNames_tr.properties + src/share/classes/sun/util/resources/uk/CalendarData_uk.properties + src/share/classes/sun/util/resources/uk/CurrencyNames_uk_UA.properties + src/share/classes/sun/util/resources/uk/LocaleNames_uk.properties + src/share/classes/sun/util/resources/vi/CalendarData_vi.properties + src/share/classes/sun/util/resources/vi/CurrencyNames_vi_VN.properties + src/share/classes/sun/util/resources/vi/LocaleNames_vi.properties + src/share/classes/sun/util/resources/zh/CalendarData_zh.properties + src/share/classes/sun/util/resources/zh/CurrencyNames_zh_CN.properties + src/share/classes/sun/util/resources/zh/CurrencyNames_zh_HK.java + src/share/classes/sun/util/resources/zh/CurrencyNames_zh_SG.java + src/share/classes/sun/util/resources/zh/CurrencyNames_zh_TW.properties + src/share/classes/sun/util/resources/zh/LocaleNames_zh.properties + src/share/classes/sun/util/resources/zh/LocaleNames_zh_HK.java + src/share/classes/sun/util/resources/zh/LocaleNames_zh_SG.properties + src/share/classes/sun/util/resources/zh/LocaleNames_zh_TW.properties + src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java + src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_HK.java + src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java + src/solaris/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java ! src/solaris/native/java/lang/java_props_macosx.c + src/solaris/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c + src/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java + src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c + test/java/text/Format/DateFormat/ContextMonthNamesTest.java + test/java/text/Format/NumberFormat/MultipleNumberScriptTest.java + test/java/util/Calendar/CalendarTypeTest.java ! test/java/util/Locale/Bug6989440.java + test/java/util/Locale/ExtensionsTest.java ! test/java/util/Locale/LocaleCategory.sh + test/java/util/Locale/LocaleProviders.java + test/java/util/Locale/LocaleProviders.sh ! test/java/util/PluggableLocale/BreakIteratorProviderTest.java + test/java/util/PluggableLocale/CalendarDataProviderTest.java + test/java/util/PluggableLocale/CalendarDataProviderTest.sh ! test/java/util/PluggableLocale/CollatorProviderTest.java ! test/java/util/PluggableLocale/CurrencyNameProviderTest.java ! test/java/util/PluggableLocale/DateFormatProviderTest.java ! test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java ! test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java ! test/java/util/PluggableLocale/GenericTest.java ! test/java/util/PluggableLocale/LocaleNameProviderTest.java ! test/java/util/PluggableLocale/NumberFormatProviderTest.java ! test/java/util/PluggableLocale/ProviderTest.java + test/java/util/PluggableLocale/SupportedLocalesTest.java ! test/java/util/PluggableLocale/TimeZoneNameProviderTest.java ! test/java/util/PluggableLocale/barprovider.jar + test/java/util/PluggableLocale/providersrc/CalendarDataProviderImpl.java ! test/java/util/PluggableLocale/providersrc/Makefile + test/java/util/PluggableLocale/providersrc/java.util.spi.CalendarDataProvider ! test/java/util/PluggableLocale/providersrc/java.util.spi.TimeZoneNameProvider ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: e7b53fe85540 Author: dingxmin Date: 2012-08-23 16:28 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e7b53fe85540 7193463: Improve registering signal handlers in java.lang.Terminator.setup() Reviewed-by: dholmes, alanb ! src/solaris/classes/java/lang/Terminator.java ! src/windows/classes/java/lang/Terminator.java Changeset: de5a85353f4d Author: alanb Date: 2012-08-23 13:07 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/de5a85353f4d 7191587: (se) SelectionKey.interestOps does not defer changing the interest set to the next select [macosx] Reviewed-by: alanb Contributed-by: Jason T Greene ! src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java ! src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java Changeset: faf4528aea4e Author: naoto Date: 2012-08-24 10:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/faf4528aea4e 7193601: Build breakage with the fix to 6336885 (build-infra build) Reviewed-by: mduigou ! makefiles/CompileJavaClasses.gmk Changeset: a7cdfd16e36e Author: alanb Date: 2012-08-24 19:35 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a7cdfd16e36e 7193933: More ProblemList.txt updates (8/2012) Reviewed-by: darcy, chegar ! test/ProblemList.txt Changeset: bd91a601265c Author: khazra Date: 2012-08-24 11:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bd91a601265c 7168172: (fs) Files.isReadable slow on Windows Summary: Remove DACL checking for read access, also reviewed by Ulf.Zibis at CoSoCo.de, zhong.j.yu at gmail.com Reviewed-by: alanb ! src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java Changeset: d52081a08d11 Author: mchung Date: 2012-08-24 22:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/d52081a08d11 7193339: Prepare system classes be defined by a non-null module loader Reviewed-by: alanb, dholmes, dsamersoff, sspitsyn, psandoz ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanMapping.java ! src/share/classes/com/sun/jmx/remote/internal/IIOPHelper.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/management/ManagementFactory.java ! src/share/classes/java/lang/management/PlatformComponent.java ! src/share/classes/java/util/prefs/Preferences.java ! src/share/classes/javax/script/ScriptEngineManager.java ! src/share/classes/sun/management/MappedMXBeanType.java ! src/share/classes/sun/misc/Unsafe.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/reflect/misc/ReflectUtil.java Changeset: 61ddc8ce7f3b Author: weijun Date: 2012-08-27 10:23 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/61ddc8ce7f3b 7152121: Krb5LoginModule no longer handles keyTabNames with "file:" prefix Reviewed-by: mullan ! src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java + test/sun/security/krb5/auto/FileKeyTab.java Changeset: 96990c9da294 Author: lana Date: 2012-08-27 10:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/96990c9da294 Merge - src/share/classes/java/lang/invoke/AdapterMethodHandle.java - src/share/classes/java/lang/invoke/CountingMethodHandle.java ! src/share/classes/sun/misc/Unsafe.java ! src/share/classes/sun/util/resources/es/CurrencyNames_es_VE.properties ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: fe496675b5e7 Author: weijun Date: 2012-08-28 17:25 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fe496675b5e7 7194472: FileKeyTab.java test fails on Windows Reviewed-by: alanb ! test/sun/security/krb5/auto/FileKeyTab.java Changeset: 06d0478023ca Author: jjg Date: 2012-08-28 10:29 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/06d0478023ca 7194032: update tests for upcoming changes for jtreg Reviewed-by: alanb, iris ! test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh ! test/java/rmi/registry/readTest/readTest.sh Changeset: 997e0d6238b7 Author: jjg Date: 2012-08-28 10:31 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/997e0d6238b7 7194035: update tests for upcoming changes for jtreg Reviewed-by: alanb, sspitsyn ! test/sun/tools/common/ApplicationSetup.sh ! test/sun/tools/jps/jps-Vvml_2.sh ! test/sun/tools/jps/jps-m_2.sh Changeset: c5099c988cce Author: alanb Date: 2012-08-28 11:12 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c5099c988cce 6962637: TEST_BUG: java/io/File/MaxPathLength.java may fail in busy system Reviewed-by: dholmes, alanb Contributed-by: Eric Wang ! test/ProblemList.txt ! test/java/io/File/MaxPathLength.java Changeset: 8b90182f2b33 Author: mullan Date: 2012-08-28 08:43 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8b90182f2b33 7192896: Reason of CertPathValidatorException should be UNDETERMINED_REVOCATION_STATUS if OCSP request failed Reviewed-by: xuelei ! src/share/classes/sun/security/provider/certpath/OCSP.java Changeset: ca7f914b5fea Author: mullan Date: 2012-08-28 08:46 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/ca7f914b5fea Merge Changeset: bfd5ecb1b4aa Author: dcubed Date: 2012-08-28 09:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bfd5ecb1b4aa 7194608: add VerifyLocalVariableTableOnRetransformTest.sh to Problem.list Reviewed-by: alanb ! test/ProblemList.txt Changeset: 2bb076d17162 Author: lana Date: 2012-08-28 12:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2bb076d17162 Merge ! make/common/Program.gmk - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java Changeset: d75666f36cfe Author: lana Date: 2012-08-30 20:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/d75666f36cfe Merge - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: 1f37a6b26a6b Author: malenkov Date: 2012-06-15 21:01 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1f37a6b26a6b 7162473: ConstructorFinder/FieldFinder/MethodFinder gives access to restricted classes Reviewed-by: art, ahgross ! src/share/classes/com/sun/beans/finder/ConstructorFinder.java ! src/share/classes/com/sun/beans/finder/FieldFinder.java ! src/share/classes/com/sun/beans/finder/MethodFinder.java Changeset: 35f97cef5c26 Author: malenkov Date: 2012-06-19 20:34 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/35f97cef5c26 7162476: XMLDecoder security issue via ClassFinder Reviewed-by: art, ahgross ! make/sun/Makefile - make/sun/beans/Makefile + src/share/classes/com/sun/beans/editors/BooleanEditor.java + src/share/classes/com/sun/beans/editors/ByteEditor.java + src/share/classes/com/sun/beans/editors/ColorEditor.java + src/share/classes/com/sun/beans/editors/DoubleEditor.java + src/share/classes/com/sun/beans/editors/EnumEditor.java + src/share/classes/com/sun/beans/editors/FloatEditor.java + src/share/classes/com/sun/beans/editors/FontEditor.java + src/share/classes/com/sun/beans/editors/IntegerEditor.java + src/share/classes/com/sun/beans/editors/LongEditor.java + src/share/classes/com/sun/beans/editors/NumberEditor.java + src/share/classes/com/sun/beans/editors/ShortEditor.java + src/share/classes/com/sun/beans/editors/StringEditor.java ! src/share/classes/com/sun/beans/finder/BeanInfoFinder.java ! src/share/classes/com/sun/beans/finder/ClassFinder.java ! src/share/classes/com/sun/beans/finder/PropertyEditorFinder.java + src/share/classes/com/sun/beans/infos/ComponentBeanInfo.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java ! test/java/beans/Introspector/4520754/Test4520754.java ! test/java/beans/PropertyEditor/6380849/TestPropertyEditor.java ! test/java/beans/PropertyEditor/Test6963811.java Changeset: bc84e7d15615 Author: malenkov Date: 2012-07-31 21:01 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bc84e7d15615 7183701: [TEST] closed/java/beans/security/TestClassFinder.java - compilation failed Reviewed-by: rupashka ! test/java/beans/PropertyEditor/6380849/TestPropertyEditor.java ! test/java/beans/PropertyEditor/Test6963811.java Changeset: 82351952278f Author: bagiras Date: 2012-08-30 13:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/82351952278f 7163201: Simplify toolkit internals references Reviewed-by: art, anthony, ahgross ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/share/classes/java/awt/AWTEvent.java ! src/share/classes/java/awt/CheckboxMenuItem.java ! src/share/classes/java/awt/Cursor.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/Menu.java ! src/share/classes/java/awt/MenuBar.java ! src/share/classes/java/awt/MenuComponent.java ! src/share/classes/java/awt/MenuItem.java ! src/share/classes/java/awt/SystemTray.java ! src/share/classes/java/awt/TrayIcon.java ! src/share/classes/java/awt/event/KeyEvent.java ! src/share/classes/javax/swing/ClientPropertyKey.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/EmbeddedFrame.java ! src/share/classes/sun/awt/SunToolkit.java ! src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java ! src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java ! src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java ! src/solaris/classes/sun/awt/X11/XMenuBarPeer.java ! src/solaris/classes/sun/awt/X11/XMenuItemPeer.java ! src/solaris/classes/sun/awt/X11/XMenuPeer.java ! src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java ! src/solaris/classes/sun/awt/X11/XScrollPanePeer.java ! src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java ! src/solaris/classes/sun/awt/X11/XTextAreaPeer.java ! src/solaris/classes/sun/awt/X11/XTextFieldPeer.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11/XWindow.java ! src/solaris/classes/sun/awt/X11/XlibWrapper.java ! src/windows/classes/sun/awt/windows/WCanvasPeer.java ! src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java ! src/windows/classes/sun/awt/windows/WPopupMenuPeer.java ! src/windows/classes/sun/awt/windows/WWindowPeer.java Changeset: bc21b21d8387 Author: bagiras Date: 2012-07-23 15:51 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bc21b21d8387 7180036: Build failure in Mac platform caused by fix # 7163201 Reviewed-by: art, kizune, ahgross ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Changeset: 32ac225d85f1 Author: bagiras Date: 2012-07-25 19:46 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/32ac225d85f1 7185678: java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java failed with NPE Reviewed-by: art, ahgross ! src/solaris/classes/sun/awt/X11/XMenuItemPeer.java Changeset: b195c7431fbc Author: lana Date: 2012-08-30 20:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b195c7431fbc Merge ! make/sun/Makefile - make/sun/beans/Makefile ! src/share/classes/java/awt/EventQueue.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java Changeset: e946d8fcbd70 Author: malenkov Date: 2012-08-31 09:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e946d8fcbd70 7194567: Improve long term persistence of java.beans objects Reviewed-by: ahgross, art ! src/share/classes/com/sun/beans/decoder/MethodElementHandler.java Changeset: 0c20f5dbede9 Author: lana Date: 2012-08-31 12:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0c20f5dbede9 Merge Changeset: 6f41c7242a2e Author: jcoomes Date: 2012-08-31 16:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6f41c7242a2e Merge - test/java/lang/invoke/MaxTest.java Changeset: 1f3f4b333341 Author: jcoomes Date: 2012-09-05 12:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1f3f4b333341 Merge - make/sun/beans/Makefile - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: 1fb204840512 Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1fb204840512 Added tag jdk8-b55 for changeset 1f3f4b333341 ! .hgtags From vitalyd at gmail.com Fri Sep 7 06:24:56 2012 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 7 Sep 2012 09:24:56 -0400 Subject: Array not zeroed on creation In-Reply-To: <5049EAAC.20002@fastmail.fm> References: <5049EAAC.20002@fastmail.fm> Message-ID: Dan, I've cc'd compiler dev and removed hotspot dev as this looks like a compiler issue. Hope you don't mind. My hunch is that the Arrays.fill() is tripping this up - is it reproducable if fill() is removed? Sent from my phone On Sep 7, 2012 8:39 AM, "Dan Hicks" wrote: > This bug has come to my attention: http://stackoverflow.com/** > questions/12317668/java-int-**array-initializes-with-**nonzero-elements > > Basically there is a reproducible (by several people) situation where a > new int array is not zeroed. The author reports the error is reproducible > on HotSpot 64-bit server VM, Java version from 1.7.0_04 to 1.7.0_10 on > Gentoo Linux, Debian Linux (both kernel 3.0 version) and MacOS Lion. (Not > tested on 32-bit or Windows.) > > Reportedly bug7196857 has been filed with Oracle. > > -- > Dan Hicks > Nothing makes us so lonely as our secrets. --Paul Tournier > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/ada77944/attachment.html From nils.eliasson at oracle.com Fri Sep 7 07:11:30 2012 From: nils.eliasson at oracle.com (Nils Eliasson) Date: Fri, 07 Sep 2012 16:11:30 +0200 Subject: Array not zeroed on creation In-Reply-To: References: <5049EAAC.20002@fastmail.fm> Message-ID: <504A0092.9080207@oracle.com> The bug reproduces with a fill or a corresponding zeroing for loop. But not without. So the bug is that there should be a check of uses between the allocation and the fill (or that the check is incomplete). //Nils Vitaly Davidovich skrev 2012-09-07 15:24: > > Dan, > > I've cc'd compiler dev and removed hotspot dev as this looks like a > compiler issue. Hope you don't mind. > > My hunch is that the Arrays.fill() is tripping this up - is it > reproducable if fill() is removed? > > Sent from my phone > > On Sep 7, 2012 8:39 AM, "Dan Hicks" > wrote: > > This bug has come to my attention: > http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements > > Basically there is a reproducible (by several people) situation > where a new int array is not zeroed. The author reports the error > is reproducible on HotSpot 64-bit server VM, Java version from > 1.7.0_04 to 1.7.0_10 on Gentoo Linux, Debian Linux (both kernel > 3.0 version) and MacOS Lion. (Not tested on 32-bit or Windows.) > > Reportedly bug7196857 has been filed with Oracle. > > -- > Dan Hicks > Nothing makes us so lonely as our secrets. --Paul Tournier > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/32434b64/attachment.html From krystal.mo at oracle.com Fri Sep 7 08:20:47 2012 From: krystal.mo at oracle.com (Krystal Mo) Date: Fri, 07 Sep 2012 23:20:47 +0800 Subject: Array not zeroed on creation In-Reply-To: <504A0092.9080207@oracle.com> References: <5049EAAC.20002@fastmail.fm> <504A0092.9080207@oracle.com> Message-ID: <504A10CF.9080801@oracle.com> +1 with Nils. Running the test case with -XX:-OptimizeFill works around the problem; running again, this time with -XX:+TraceOptimizeFill, shows: $ ~/testjdk/hotspot-comp/bin/java -XX:-TieredCompilation -XX:+TraceOptimizeFill -XX:+PrintCompilation Test7196857 194 1 java.util.Arrays::fill (21 bytes) 195 1 % Test7196857::main @ 89 (162 bytes) fill intrinsic for: 111 StoreI === 138 131 109 11 [[ 124 131 ]] @int[int:>=0]:exact+any *, idx=5; Memory: @int[int:>=0]:NotNull:exact+any *, idx=5; !jvms: Arrays::fill @ bci:13 fill intrinsic for: 463 StoreI === 537 442 461 20 [[ 509 442 ]] @int[int:>=0]:exact+any *, idx=6; Memory: @int[int:10]:NotNull:exact+any *, idx=6; !orig=[500],488,[486],[111] !jvms: Arrays::fill @ bci:13 Test7196857::main @ bci:83 Eliminated zeroing in allocation not fill intrinsic candidate: variant store value 219 1 % Test7196857::main @ -2 (162 bytes) made not entrant Exception in thread "main" java.lang.RuntimeException: Array just after allocation: [-1163019586, -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, -1163019586] at Test7196857.main(Test7196857.java:11) Notice "Eliminated zeroing in allocation", which is caused by the missing check that Nils mentioned. - Kris On 09/07/2012 10:11 PM, Nils Eliasson wrote: > The bug reproduces with a fill or a corresponding zeroing for loop. > But not without. So the bug is that there should be a check of uses > between the allocation and the fill (or that the check is incomplete). > > //Nils > > Vitaly Davidovich skrev 2012-09-07 15:24: >> >> Dan, >> >> I've cc'd compiler dev and removed hotspot dev as this looks like a >> compiler issue. Hope you don't mind. >> >> My hunch is that the Arrays.fill() is tripping this up - is it >> reproducable if fill() is removed? >> >> Sent from my phone >> >> On Sep 7, 2012 8:39 AM, "Dan Hicks" > > wrote: >> >> This bug has come to my attention: >> http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements >> >> Basically there is a reproducible (by several people) situation >> where a new int array is not zeroed. The author reports the >> error is reproducible on HotSpot 64-bit server VM, Java version >> from 1.7.0_04 to 1.7.0_10 on Gentoo Linux, Debian Linux (both >> kernel 3.0 version) and MacOS Lion. (Not tested on 32-bit or >> Windows.) >> >> Reportedly bug7196857 has been filed with Oracle. >> >> -- >> Dan Hicks >> Nothing makes us so lonely as our secrets. --Paul Tournier >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/7155b2dc/attachment.html From vitalyd at gmail.com Fri Sep 7 08:30:22 2012 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 7 Sep 2012 11:30:22 -0400 Subject: Array not zeroed on creation In-Reply-To: <504A10CF.9080801@oracle.com> References: <5049EAAC.20002@fastmail.fm> <504A0092.9080207@oracle.com> <504A10CF.9080801@oracle.com> Message-ID: I wonder if the "if" is messing this up as well; interpreter profile will indicate that the branch is never taken since interpreter will always zero the array. Otherwise, this bug seems a bit more "obvious" in the sense that testing would've caught it, I'd think, if it always eliminated zeroing (I.e. use after new'ing it was unpredicated). Sent from my phone On Sep 7, 2012 11:20 AM, "Krystal Mo" wrote: > +1 with Nils. > > Running the test case with -XX:-OptimizeFill works around the problem; > running again, this time with -XX:+TraceOptimizeFill, shows: > > $ ~/testjdk/hotspot-comp/bin/java -XX:-TieredCompilation > -XX:+TraceOptimizeFill -XX:+PrintCompilation Test7196857 > 194 1 java.util.Arrays::fill (21 bytes) > 195 1 % Test7196857::main @ 89 (162 bytes) > fill intrinsic for: > 111 StoreI === 138 131 109 11 [[ 124 131 ]] > @int[int:>=0]:exact+any *, idx=5; Memory: @int[int:>=0]:NotNull:exact+any > *, idx=5; !jvms: Arrays::fill @ bci:13 > fill intrinsic for: > 463 StoreI === 537 442 461 20 [[ 509 442 ]] > @int[int:>=0]:exact+any *, idx=6; Memory: @int[int:10]:NotNull:exact+any > *, idx=6; !orig=[500],488,[486],[111] !jvms: Arrays::fill @ bci:13 > Test7196857::main @ bci:83 > Eliminated zeroing in allocation > not fill intrinsic candidate: variant store value > 219 1 % Test7196857::main @ -2 (162 bytes) made not > entrant > Exception in thread "main" java.lang.RuntimeException: Array just after > allocation: [-1163019586, -1163019586, -1163019586, -1163019586, > -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, > -1163019586] > at Test7196857.main(Test7196857.java:11) > > Notice "Eliminated zeroing in allocation", which is caused by the missing > check that Nils mentioned. > > - Kris > > On 09/07/2012 10:11 PM, Nils Eliasson wrote: > > The bug reproduces with a fill or a corresponding zeroing for loop. But > not without. So the bug is that there should be a check of uses between the > allocation and the fill (or that the check is incomplete). > > //Nils > > Vitaly Davidovich skrev 2012-09-07 15:24: > > Dan, > > I've cc'd compiler dev and removed hotspot dev as this looks like a > compiler issue. Hope you don't mind. > > My hunch is that the Arrays.fill() is tripping this up - is it > reproducable if fill() is removed? > > Sent from my phone > On Sep 7, 2012 8:39 AM, "Dan Hicks" wrote: > >> This bug has come to my attention: >> http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements >> >> Basically there is a reproducible (by several people) situation where a >> new int array is not zeroed. The author reports the error is reproducible >> on HotSpot 64-bit server VM, Java version from 1.7.0_04 to 1.7.0_10 on >> Gentoo Linux, Debian Linux (both kernel 3.0 version) and MacOS Lion. (Not >> tested on 32-bit or Windows.) >> >> Reportedly bug7196857 has been filed with Oracle. >> >> -- >> Dan Hicks >> Nothing makes us so lonely as our secrets. --Paul Tournier >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/f874f82a/attachment-0001.html From krystal.mo at oracle.com Fri Sep 7 08:42:35 2012 From: krystal.mo at oracle.com (Krystal Mo) Date: Fri, 07 Sep 2012 23:42:35 +0800 Subject: Array not zeroed on creation In-Reply-To: References: <5049EAAC.20002@fastmail.fm> <504A0092.9080207@oracle.com> <504A10CF.9080801@oracle.com> Message-ID: <504A15EB.4030009@oracle.com> The "if"s are there all right, no worries. It's just the check for uses between the allocation and the fill that's missing (incorrectly removed by the OptimizeFill feature). 0x00007f5b4905f16d: mov 0x18(%rax),%r10d 0x00007f5b4905f171: test %r10d,%r10d 0x00007f5b4905f174: jne 0x00007f5b4905f2fd ;*ifeq ; - Test7196857::main at 42 (line 10) The zero check loop in the test case is unrolled; the quoted code above is one of the unrolled checks. - Kris On 09/07/2012 11:30 PM, Vitaly Davidovich wrote: > > I wonder if the "if" is messing this up as well; interpreter profile > will indicate that the branch is never taken since interpreter will > always zero the array. Otherwise, this bug seems a bit more "obvious" > in the sense that testing would've caught it, I'd think, if it always > eliminated zeroing (I.e. use after new'ing it was unpredicated). > > Sent from my phone > > On Sep 7, 2012 11:20 AM, "Krystal Mo" > wrote: > > +1 with Nils. > > Running the test case with -XX:-OptimizeFill works around the > problem; running again, this time with -XX:+TraceOptimizeFill, shows: > > $ ~/testjdk/hotspot-comp/bin/java -XX:-TieredCompilation > -XX:+TraceOptimizeFill -XX:+PrintCompilation Test7196857 > 194 1 java.util.Arrays::fill (21 bytes) > 195 1 % Test7196857::main @ 89 (162 bytes) > fill intrinsic for: > 111 StoreI === 138 131 109 11 [[ 124 131 ]] > @int[int:>=0]:exact+any *, idx=5; Memory: > @int[int:>=0]:NotNull:exact+any *, idx=5; !jvms: Arrays::fill @ bci:13 > fill intrinsic for: > 463 StoreI === 537 442 461 20 [[ 509 442 ]] > @int[int:>=0]:exact+any *, idx=6; Memory: > @int[int:10]:NotNull:exact+any *, idx=6; > !orig=[500],488,[486],[111] !jvms: Arrays::fill @ bci:13 > Test7196857::main @ bci:83 > Eliminated zeroing in allocation > not fill intrinsic candidate: variant store value > 219 1 % Test7196857::main @ -2 (162 bytes) made > not entrant > Exception in thread "main" java.lang.RuntimeException: Array just > after allocation: [-1163019586, -1163019586, -1163019586, > -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, > -1163019586, -1163019586] > at Test7196857.main(Test7196857.java:11) > > Notice "Eliminated zeroing in allocation", which is caused by the > missing check that Nils mentioned. > > - Kris > > On 09/07/2012 10:11 PM, Nils Eliasson wrote: >> The bug reproduces with a fill or a corresponding zeroing for >> loop. But not without. So the bug is that there should be a check >> of uses between the allocation and the fill (or that the check is >> incomplete). >> >> //Nils >> >> Vitaly Davidovich skrev 2012-09-07 15:24: >>> >>> Dan, >>> >>> I've cc'd compiler dev and removed hotspot dev as this looks >>> like a compiler issue. Hope you don't mind. >>> >>> My hunch is that the Arrays.fill() is tripping this up - is it >>> reproducable if fill() is removed? >>> >>> Sent from my phone >>> >>> On Sep 7, 2012 8:39 AM, "Dan Hicks" >> > wrote: >>> >>> This bug has come to my attention: >>> http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements >>> >>> Basically there is a reproducible (by several people) >>> situation where a new int array is not zeroed. The author >>> reports the error is reproducible on HotSpot 64-bit server >>> VM, Java version from 1.7.0_04 to 1.7.0_10 on Gentoo Linux, >>> Debian Linux (both kernel 3.0 version) and MacOS Lion. (Not >>> tested on 32-bit or Windows.) >>> >>> Reportedly bug7196857 has been filed with Oracle. >>> >>> -- >>> Dan Hicks >>> Nothing makes us so lonely as our secrets. --Paul Tournier >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/9f8505c3/attachment.html From vitalyd at gmail.com Fri Sep 7 08:50:50 2012 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 7 Sep 2012 11:50:50 -0400 Subject: Array not zeroed on creation In-Reply-To: <504A15EB.4030009@oracle.com> References: <5049EAAC.20002@fastmail.fm> <504A0092.9080207@oracle.com> <504A10CF.9080801@oracle.com> <504A15EB.4030009@oracle.com> Message-ID: Thanks Kris. What I meant was whether the control flow graph became a bit more complex which caused the optimizer to miss the obvious use before fill() is called. I certainly understand that the code gen will still emit a 0 check (with an uncommon trap presumably). Since you're already playing with this, can you try doing something "obvious" and unpredicated with the array between alloc and fill(), and see if it still repros? Sent from my phone On Sep 7, 2012 11:42 AM, "Krystal Mo" wrote: > The "if"s are there all right, no worries. It's just the check for uses > between the allocation and the fill that's missing (incorrectly removed by > the OptimizeFill feature). > > 0x00007f5b4905f16d: mov 0x18(%rax),%r10d > 0x00007f5b4905f171: test %r10d,%r10d > 0x00007f5b4905f174: jne 0x00007f5b4905f2fd ;*ifeq > ; - Test7196857::main at 42(line 10) > > The zero check loop in the test case is unrolled; the quoted code above is > one of the unrolled checks. > > - Kris > > On 09/07/2012 11:30 PM, Vitaly Davidovich wrote: > > I wonder if the "if" is messing this up as well; interpreter profile will > indicate that the branch is never taken since interpreter will always zero > the array. Otherwise, this bug seems a bit more "obvious" in the sense > that testing would've caught it, I'd think, if it always eliminated zeroing > (I.e. use after new'ing it was unpredicated). > > Sent from my phone > On Sep 7, 2012 11:20 AM, "Krystal Mo" wrote: > >> +1 with Nils. >> >> Running the test case with -XX:-OptimizeFill works around the problem; >> running again, this time with -XX:+TraceOptimizeFill, shows: >> >> $ ~/testjdk/hotspot-comp/bin/java -XX:-TieredCompilation >> -XX:+TraceOptimizeFill -XX:+PrintCompilation Test7196857 >> 194 1 java.util.Arrays::fill (21 bytes) >> 195 1 % Test7196857::main @ 89 (162 bytes) >> fill intrinsic for: >> 111 StoreI === 138 131 109 11 [[ 124 131 ]] >> @int[int:>=0]:exact+any *, idx=5; Memory: @int[int:>=0]:NotNull:exact+any >> *, idx=5; !jvms: Arrays::fill @ bci:13 >> fill intrinsic for: >> 463 StoreI === 537 442 461 20 [[ 509 442 ]] >> @int[int:>=0]:exact+any *, idx=6; Memory: @int[int:10]:NotNull:exact+any >> *, idx=6; !orig=[500],488,[486],[111] !jvms: Arrays::fill @ bci:13 >> Test7196857::main @ bci:83 >> Eliminated zeroing in allocation >> not fill intrinsic candidate: variant store value >> 219 1 % Test7196857::main @ -2 (162 bytes) made not >> entrant >> Exception in thread "main" java.lang.RuntimeException: Array just after >> allocation: [-1163019586, -1163019586, -1163019586, -1163019586, >> -1163019586, -1163019586, -1163019586, -1163019586, -1163019586, >> -1163019586] >> at Test7196857.main(Test7196857.java:11) >> >> Notice "Eliminated zeroing in allocation", which is caused by the missing >> check that Nils mentioned. >> >> - Kris >> >> On 09/07/2012 10:11 PM, Nils Eliasson wrote: >> >> The bug reproduces with a fill or a corresponding zeroing for loop. But >> not without. So the bug is that there should be a check of uses between the >> allocation and the fill (or that the check is incomplete). >> >> //Nils >> >> Vitaly Davidovich skrev 2012-09-07 15:24: >> >> Dan, >> >> I've cc'd compiler dev and removed hotspot dev as this looks like a >> compiler issue. Hope you don't mind. >> >> My hunch is that the Arrays.fill() is tripping this up - is it >> reproducable if fill() is removed? >> >> Sent from my phone >> On Sep 7, 2012 8:39 AM, "Dan Hicks" wrote: >> >>> This bug has come to my attention: >>> http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements >>> >>> Basically there is a reproducible (by several people) situation where a >>> new int array is not zeroed. The author reports the error is reproducible >>> on HotSpot 64-bit server VM, Java version from 1.7.0_04 to 1.7.0_10 on >>> Gentoo Linux, Debian Linux (both kernel 3.0 version) and MacOS Lion. (Not >>> tested on 32-bit or Windows.) >>> >>> Reportedly bug7196857 has been filed with Oracle. >>> >>> -- >>> Dan Hicks >>> Nothing makes us so lonely as our secrets. --Paul Tournier >>> >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/1aaef8c8/attachment.html From roland.westrelin at oracle.com Mon Sep 10 03:20:36 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 10 Sep 2012 12:20:36 +0200 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere Message-ID: http://cr.openjdk.java.net/~roland/7195816/webrev.00/ Some of the dtrace probes call the runtime passing a method pointer. This exposes the metadata type at the LIR level and breaks c1 because the LIR has little support for T_METADATA at this point. I also fixed a c1/dtrace bug on sparc that has nothing to do with NPG (G2 thread pointer not saved across runtime call). This bug may have gone unnoticed because at least one of the dtrace test passes when the VM crashes. For that I filed test bug: 7197250: dtrace test may report success when the VM crashes Roland. From aleksey.shipilev at oracle.com Mon Sep 10 04:08:32 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 10 Sep 2012 15:08:32 +0400 Subject: TraceTypeProfile as diagnostic option Message-ID: <504DCA30.9020102@oracle.com> Hi, First, let me describe the rationale. When I'm looking into the disassembly, I use this command line to dump the generated assembly: -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+TraceTypeProfile -XX:+PrintCompilation -XX:+PrintInlining -XX:CICompilerCount=1 This generates arguably human-readable output in the form: for [each method]; do [PrintCompilation prints single compile record] [PrintInlining prints inlining tree] [PrintAssembly dumps the disassembly] done Soon enough I realize that bimorphic calls in inlining tree have arguably counter-intuitive form: 81 13 TestInline::doWork (56 bytes) @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) Naively-looking that might mean the $DelegatingIterator::next calls both next() methods in the code, but that is confusing because there is a single virtual call in the user code. Enabling -XX:+TraceTypeProfile helps a lot: @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) \-> TypeProfile (128014/128014 counts) = TestInline$DelegatingIterator @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) \-> TypeProfile (29297/58595 counts) = TestInline$DelegatingIterator \-> TypeProfile (29298/58595 counts) = java/util/ArrayList$Itr ...albeit being a bit misplaced. But here's the kicker: -XX:+TraceTypeProfile is only available in fastdebug build, and so I need to make additional step to figure this out. For my taste, tracing type profiles should instead be unlocked with -XX:+UnlockDiagnosticVMOptions. Are there any benefits of hiding this? If not, I would be happy to provide the patch bringing it on par with other diagnostic options. -Aleksey. From nils.eliasson at oracle.com Mon Sep 10 04:23:59 2012 From: nils.eliasson at oracle.com (Nils Eliasson) Date: Mon, 10 Sep 2012 13:23:59 +0200 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504DCA30.9020102@oracle.com> References: <504DCA30.9020102@oracle.com> Message-ID: <504DCDCF.6010207@oracle.com> AFAIK, all verbose/trace/debug-print output should be available in product builds behind flag + diagnostic. It is such a time saver when you can use it directly, it simplifies the code, and can be very helpful when debugging in situations where product builds are required. //N Aleksey Shipilev skrev 2012-09-10 13:08: > Hi, > > First, let me describe the rationale. When I'm looking into the > disassembly, I use this command line to dump the generated assembly: > > -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+TraceTypeProfile > -XX:+PrintCompilation -XX:+PrintInlining -XX:CICompilerCount=1 > > This generates arguably human-readable output in the form: > > for [each method]; do > [PrintCompilation prints single compile record] > [PrintInlining prints inlining tree] > [PrintAssembly dumps the disassembly] > done > > Soon enough I realize that bimorphic calls in inlining tree have > arguably counter-intuitive form: > > 81 13 TestInline::doWork (56 bytes) > @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) > @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) > @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) > > Naively-looking that might mean the $DelegatingIterator::next calls both > next() methods in the code, but that is confusing because there is a > single virtual call in the user code. > > Enabling -XX:+TraceTypeProfile helps a lot: > > @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) > \-> TypeProfile (128014/128014 counts) = TestInline$DelegatingIterator > @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) > @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) > \-> TypeProfile (29297/58595 counts) = TestInline$DelegatingIterator > \-> TypeProfile (29298/58595 counts) = java/util/ArrayList$Itr > > ...albeit being a bit misplaced. > > But here's the kicker: -XX:+TraceTypeProfile is only available in > fastdebug build, and so I need to make additional step to figure this > out. For my taste, tracing type profiles should instead be unlocked with > -XX:+UnlockDiagnosticVMOptions. Are there any benefits of hiding this? > If not, I would be happy to provide the patch bringing it on par with > other diagnostic options. > > -Aleksey. From aleksey.shipilev at oracle.com Mon Sep 10 05:08:16 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 10 Sep 2012 16:08:16 +0400 Subject: type-recursive inlining oddity Message-ID: <504DD830.8030707@oracle.com> Hi there, We are in the middle of performance analysis for lambdas/bulk operations coming in JDK8, and stumbled across understandable, but weird oddity in our inlining policy. In short, there are cases when we delegate the method call to the same method of the same actual class. I.e.: public static class DelegatingIterator1 implements Iterator { private final Iterator i; public DelegatingIterator1(Iterator i) { this.i = i; } @Override public boolean hasNext() { return i.hasNext(); } @Override public T next() { return i.next(); } @Override public void remove() { i.remove(); } } This has somewhat surprising effect when you stack the delegates. Basically, if you have the exact copy of DelegatingIterator1 as DelegatingIterator2, then these three cases; empty = Collections.emptyIterator(); chain11 = new DelegatingIterator1<>(new DelegatingIterator1<>(empty)); chain12 = new DelegatingIterator1<>(new DelegatingIterator2<>(empty)); empty.hasNext(); // repeatedly call this, and measure chain11.hasNext(); // repeatedly call this, and measure chain12.hasNext(); // repeatedly call this, and measure ...have drastically different performance. With proper warmup, cpufreq, etc. etc. on my 2.0 Ghz i5-2520M, Linux x86, JDK 7u4: empty: 1.511 +- 0.003 nsec/op chain11: 4.055 +- 0.060 nsec/op chain12: 2.545 +- 0.135 nsec/op This difference could easily be explained by this inlining tree: GeneratedRecursiveBench::chain11 @ 6 @ 8 RecursiveBench::chain11 inline (hot) @ 4 RecursiveBench$DelegatingIterator1::hasNext inline (hot) @ 4 java.util.Collections$EmptyIterator::hasNext inline (hot) @ 4 RecursiveBench$DelegatingIterator1::hasNext inline (hot) @ 4 java.util.Collections$EmptyIterator::hasNext inline (hot) @ 4 RecursiveBench$DelegatingIterator1::hasNext recursively inlining too deep ...as compared with: GeneratedRecursiveBench::chain12 @ 6 @ 8 RecursiveBench::chain12 inline (hot) @ 4 RecursiveBench$DelegatingIterator1::hasNext inline (hot) @ 4 RecursiveBench$DelegatingIterator2::hasNext inline (hot) @ 4 java.util.Collections$EmptyIterator::hasNext inline (hot) What had happened in chain11? We compile the v-call in DelegatingIterator1.hasNext(); it appears that the receivers in i.hasNext() are either DelegatingIterator1 or EmptyIterator; so we devirtualize this bimorphic call, inline both; then, we proceed with processing v-calls in new inlined methods, and voila, there is the v-call for i.hasNext() in the same method again, so we devirtualize and inline further, until MaxRecursiveInlineLevel tells us to stop. Twiddling MaxRecursiveInlineLevel has no effect on performance (except for setting in to 0, when chain11 drops even further). Note that it is not the "true" "control" recursion, when I pass the control to the same instance method in the same _instance_; it is rather the "type" recursion when I call the same instance method in the same _class_. All this actually tells me, Hotspot does not account the position in the call tree when recording profiles. Should it do that, we could actually differentiate the v-calls made in first instance vs. v-calls made in second instance. Is there a known/existing explanation whether it is feasible to do? Or, is there another solution for this problem, except for splitting the types? -Aleksey. From coleen.phillimore at oracle.com Mon Sep 10 06:19:21 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Mon, 10 Sep 2012 09:19:21 -0400 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: References: Message-ID: <504DE8D9.6070503@oracle.com> Roland, Thank you for fixing c1. We didn't realize there was this much left out. In c1_LIRAssembler_x86.cpp, this is sort of confusing. I would prefer a separate case for C1_METADATA, because it would use UseCompressedKlassPointers rather than UseCompressedOops so even without the ifdef, part of this case doesn't make sense. Do you have fixes for this in your UseCompressedKlassPointer changes? @@ -1033,10 +1035,17 @@break; } case T_ARRAY: // fall through case T_OBJECT: // fall through +#ifndef _LP64+ // We get here to store a method pointer to the stack to pass to+ // a dtrace runtime call. This can't work on 64 bit with+ // compressed klass ptrs: T_METADATA can be a compressed klass+ // ptr or a 64 bit method pointer.+ case T_METADATA:+#endifif (UseCompressedOops && !wide) { __ movl(as_Address(to_addr), compressed_src); } else { __ movptr(as_Address(to_addr), src->as_register()); } Why isn't there the same sort of change from c1_LIRAssembler_sparc.cpp? These changes look good to me, but also have someone from the compiler group who knows c1 better review this. Thanks, Coleen On 9/10/2012 6:20 AM, Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7195816/webrev.00/ > > Some of the dtrace probes call the runtime passing a method pointer. This exposes the metadata type at the LIR level and breaks c1 because the LIR has little support for T_METADATA at this point. > > I also fixed a c1/dtrace bug on sparc that has nothing to do with NPG (G2 thread pointer not saved across runtime call). This bug may have gone unnoticed because at least one of the dtrace test passes when the VM crashes. For that I filed test bug: > 7197250: dtrace test may report success when the VM crashes > > Roland. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120910/64deced2/attachment-0001.html From roland.westrelin at oracle.com Mon Sep 10 06:45:42 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 10 Sep 2012 15:45:42 +0200 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: <504DE8D9.6070503@oracle.com> References: <504DE8D9.6070503@oracle.com> Message-ID: Thanks for taking a look at this. > Thank you for fixing c1. We didn't realize there was this much left out. I took the opportunity to clean things up a bit. The minimal fix for this particular problem could maybe have been smaller but I think the code is better that way and could help catch problems in the future. > In c1_LIRAssembler_x86.cpp, this is sort of confusing. I would prefer a separate case for C1_METADATA, because it would use UseCompressedKlassPointers rather than UseCompressedOops so even without the ifdef, part of this case doesn't make sense. Do you have fixes for this in your UseCompressedKlassPointer changes? A metadata ptr manipulated by c1 can be either a klass ptr or a method ptr. When the code is emitted in c1_LIRAssembler_*.cpp, we know something is a metadata ptr but the extra bit of information that tells whether it's a method or klass ptr is lost. The code below is the single place where the fact that we don't know whether the ptr is a klass or a method could be a problem: a metadata ptr is written to memory but on 64 bit with compressed klass ptrs it could be either a 32 bit store or a 64 bit store. Anyway, this code path is only taken on 32 bit because the code that C1 generates and the 32 bit x86 C calling convention are such that the only case where a metadata ptr is written to memory is to write it to the stack to pass as an argument to a dtrace runtime call. This code doesn't change with the UseCompressedKlassPointer changes. In short it's a corner case that only happens on x86/32 bit. > Why isn't there the same sort of change from c1_LIRAssembler_sparc.cpp? All arguments to dtrace runtime calls are passed in registers so we won't try to write one of them to memory. Roland. From coleen.phillimore at oracle.com Mon Sep 10 08:32:23 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Mon, 10 Sep 2012 11:32:23 -0400 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: References: <504DE8D9.6070503@oracle.com> Message-ID: <504E0807.60703@oracle.com> Roland, I think the cleanups are good. Additional question about my favorite snippet of code in this webrev: 1038 case T_ARRAY: // fall through 1039 case T_OBJECT: // fall through 1040 #ifndef _LP64 1041 // We get here to store a method pointer to the stack to pass to 1042 // a dtrace runtime call. This can't work on 64 bit with 1043 // compressed klass ptrs: T_METADATA can be a compressed klass 1044 // ptr or a 64 bit method pointer. 1045 case T_METADATA: 1046 #endif 1047 if (UseCompressedOops&& !wide) { 1048 __ movl(as_Address(to_addr), compressed_src); 1049 } else { 1050 __ movptr(as_Address(to_addr), src->as_register()); 1051 } 1052 break; So is this correct also? 1038 case T_ARRAY: // fall through 1039 case T_OBJECT: // fall through 1047 if (UseCompressedOops&& !wide) { 1048 __ movl(as_Address(to_addr), compressed_src); 1049 } else { 1050 __ movptr(as_Address(to_addr), src->as_register()); 1051 } 1052 break; case T_METADATA: 1041 // We get here to store a method pointer to the stack to pass to 1042 // a dtrace runtime call. This can't work on 64 bit with 1043 // compressed klass ptrs: T_METADATA can be a compressed klass 1044 // ptr or a 64 bit method pointer. 1045 LP64_ONLY(ShouldNotReachHere); 1050 __ movptr(as_Address(to_addr), src->as_register()); break; Thanks, Coleen On 9/10/2012 9:45 AM, Roland Westrelin wrote: > Thanks for taking a look at this. > >> Thank you for fixing c1. We didn't realize there was this much left out. > I took the opportunity to clean things up a bit. The minimal fix for this particular problem could maybe have been smaller but I think the code is better that way and could help catch problems in the future. > >> In c1_LIRAssembler_x86.cpp, this is sort of confusing. I would prefer a separate case for C1_METADATA, because it would use UseCompressedKlassPointers rather than UseCompressedOops so even without the ifdef, part of this case doesn't make sense. Do you have fixes for this in your UseCompressedKlassPointer changes? > A metadata ptr manipulated by c1 can be either a klass ptr or a method ptr. When the code is emitted in c1_LIRAssembler_*.cpp, we know something is a metadata ptr but the extra bit of information that tells whether it's a method or klass ptr is lost. The code below is the single place where the fact that we don't know whether the ptr is a klass or a method could be a problem: a metadata ptr is written to memory but on 64 bit with compressed klass ptrs it could be either a 32 bit store or a 64 bit store. Anyway, this code path is only taken on 32 bit because the code that C1 generates and the 32 bit x86 C calling convention are such that the only case where a metadata ptr is written to memory is to write it to the stack to pass as an argument to a dtrace runtime call. > > This code doesn't change with the UseCompressedKlassPointer changes. > > In short it's a corner case that only happens on x86/32 bit. > >> Why isn't there the same sort of change from c1_LIRAssembler_sparc.cpp? > All arguments to dtrace runtime calls are passed in registers so we won't try to write one of them to memory. > > Roland. From roland.westrelin at oracle.com Mon Sep 10 08:33:53 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 10 Sep 2012 17:33:53 +0200 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: <504E0807.60703@oracle.com> References: <504DE8D9.6070503@oracle.com> <504E0807.60703@oracle.com> Message-ID: > So is this correct also? > > 1038 case T_ARRAY: // fall through > 1039 case T_OBJECT: // fall through > 1047 if (UseCompressedOops&& !wide) { > 1048 __ movl(as_Address(to_addr), compressed_src); > 1049 } else { > 1050 __ movptr(as_Address(to_addr), src->as_register()); > 1051 } > 1052 break; > case T_METADATA: > 1041 // We get here to store a method pointer to the stack to pass to > 1042 // a dtrace runtime call. This can't work on 64 bit with > 1043 // compressed klass ptrs: T_METADATA can be a compressed klass > 1044 // ptr or a 64 bit method pointer. > 1045 LP64_ONLY(ShouldNotReachHere); > 1050 __ movptr(as_Address(to_addr), src->as_register()); > break; Yes, it's correct. Roland. From john.r.rose at oracle.com Mon Sep 10 09:20:13 2012 From: john.r.rose at oracle.com (John Rose) Date: Mon, 10 Sep 2012 09:20:13 -0700 Subject: type-recursive inlining oddity In-Reply-To: <504DD830.8030707@oracle.com> References: <504DD830.8030707@oracle.com> Message-ID: On Sep 10, 2012, at 5:08 AM, Aleksey Shipilev wrote: > What had happened in chain11? We compile the v-call in > DelegatingIterator1.hasNext(); it appears that the receivers in > i.hasNext() are either DelegatingIterator1 or EmptyIterator; Yes, I think that's the main factor. Dynamically monomorphic calls sites are cheapest, followed by dimorphic sites. There is a somewhat surprising bimorphic call in chain11. Meanwhile, chain12, though superficially more complex, is purely monomorphic. Let's lay the actual call graphs side by side: chain11: D1 -> D1 -> E chain12: D1 -> D2 -> E (I eliminated ::hasNext everywhere and abbreviated the class names.) But in terms of the profile-carrying bytecode we have to merge duplicate call graph nodes: chain11: D1 -> { E, D1 } chain12: D1 -> D2 -> E The edges D1->E and D1->D1 compete with each other, but each seems to happen 50% of the time, so the compiler will treat each edge as hot. > so we > devirtualize this bimorphic call, inline both; then, we proceed with > processing v-calls in new inlined methods, and voila, there is the > v-call for i.hasNext() in the same method again, so we devirtualize and > inline further, until MaxRecursiveInlineLevel tells us to stop. The node merging eliminates profile information, so that when the inline re-splits the nodes, we have to duplicate the profile: chain11: D1_0 -> { E_1, D1_1 -> { E_2, D1_2 -> ? } } chain12: D1 -> D2 -> E Dynamically, D1_0 -> E_1 does not happen, nor does D1_1 -> D1_2, but the compiler puts in tests for both, because it cannot prove that those edges will never happen, and the profile suggests that they in fact do happen, 50% of the time. The special heuristics for recursion (MaxRecursiveInlineLevel) help cut off the code expansion, which is useful here, since there is almost no recursion happening (D1_0 -> D1_1 is the only self edge). Basically, the inliner is trying to balance the possibility of a real recursion (requiring the equivalent of loop unrolling) with spurious profile-induced recursion (requiring a quick cutoff and hoping that the hardware prefetcher hides the compiler's shame). In this case, the real situation is somewhere between. So there's profiler inaccuracy, plus some odd heuristics triggered by self-calls. The result is "one size fits all" code, which in this case is not a good fit. We could fix this particular problem by cloning the node D1 *before* profiling: Basically, recognize that D1 is self-recursive, and then split out a copy of D1 to be called from itself. This is a call-graph equivalent of loop peeling, which is wonderfully effective in many use cases. (Loop peeling is more robust, since it works after inlining. To be more closely equivalent to loop peeling, the cloning of D1 should be triggered whenever a cycle back to D1 is found in the call graph reachable from D1.) We have experimented with splitting profiles (not the whole bytecode), but the results have not been promising yet. It's worth tinkering with, though. Bytecode (method) cloning might be worthwhile too, if we can tune the heuristics properly. One more comment: I think what we are seeing here is an early indication of the most important optimization challenge of lambdas, which I call loop customization. I will send a separate note about this. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120910/cea8746a/attachment.html From vladimir.kozlov at oracle.com Mon Sep 10 09:54:50 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 10 Sep 2012 09:54:50 -0700 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: References: Message-ID: <504E1B5A.2070303@oracle.com> Roland, This seems good to me. I like Coleen's suggestion for c1_LIRAssembler_x86.cpp and I assume you will use it. Thanks, Vladimir Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7195816/webrev.00/ > > Some of the dtrace probes call the runtime passing a method pointer. This exposes the metadata type at the LIR level and breaks c1 because the LIR has little support for T_METADATA at this point. > > I also fixed a c1/dtrace bug on sparc that has nothing to do with NPG (G2 thread pointer not saved across runtime call). This bug may have gone unnoticed because at least one of the dtrace test passes when the VM crashes. For that I filed test bug: > 7197250: dtrace test may report success when the VM crashes > > Roland. From forax at univ-mlv.fr Mon Sep 10 10:25:21 2012 From: forax at univ-mlv.fr (Remi Forax) Date: Mon, 10 Sep 2012 19:25:21 +0200 Subject: type-recursive inlining oddity In-Reply-To: References: <504DD830.8030707@oracle.com> Message-ID: <504E2281.7050509@univ-mlv.fr> On 09/10/2012 06:20 PM, John Rose wrote: > On Sep 10, 2012, at 5:08 AM, Aleksey Shipilev wrote: > >> What had happened in chain11? We compile the v-call in >> DelegatingIterator1.hasNext(); it appears that the receivers in >> i.hasNext() are either DelegatingIterator1 or EmptyIterator; > > Yes, I think that's the main factor. Dynamically monomorphic calls > sites are cheapest, followed by dimorphic sites. There is a somewhat > surprising bimorphic call in chain11. Meanwhile, chain12, though > superficially more complex, is purely monomorphic. > > Let's lay the actual call graphs side by side: > chain11: D1 -> D1 -> E > chain12: D1 -> D2 -> E > > (I eliminated ::hasNext everywhere and abbreviated the class names.) > > But in terms of the profile-carrying bytecode we have to merge > duplicate call graph nodes: > chain11: D1 -> { E, D1 } > chain12: D1 -> D2 -> E > > The edges D1->E and D1->D1 compete with each other, but each seems to > happen 50% of the time, so the compiler will treat each edge as hot. > >> so we >> devirtualize this bimorphic call, inline both; then, we proceed with >> processing v-calls in new inlined methods, and voila, there is the >> v-call for i.hasNext() in the same method again, so we devirtualize and >> inline further, until MaxRecursiveInlineLevel tells us to stop. > > The node merging eliminates profile information, so that when the > inline re-splits the nodes, we have to duplicate the profile: > chain11: D1_0 -> { E_1, D1_1 -> { E_2, D1_2 -> ? } } > chain12: D1 -> D2 -> E > > Dynamically, D1_0 -> E_1 does not happen, nor does D1_1 -> D1_2, but > the compiler puts in tests for both, because it cannot prove that > those edges will never happen, and the profile suggests that they in > fact do happen, 50% of the time. > > The special heuristics for recursion (MaxRecursiveInlineLevel) help > cut off the code expansion, which is useful here, since there is > almost no recursion happening (D1_0 -> D1_1 is the only self edge). > Basically, the inliner is trying to balance the possibility of a real > recursion (requiring the equivalent of loop unrolling) with spurious > profile-induced recursion (requiring a quick cutoff and hoping that > the hardware prefetcher hides the compiler's shame). In this case, > the real situation is somewhere between. > > So there's profiler inaccuracy, plus some odd heuristics triggered by > self-calls. The result is "one size fits all" code, which in this > case is not a good fit. > > We could fix this particular problem by cloning the node D1 *before* > profiling: Basically, recognize that D1 is self-recursive, and then > split out a copy of D1 to be called from itself. This is a call-graph > equivalent of loop peeling, which is wonderfully effective in many use > cases. (Loop peeling is more robust, since it works after inlining. > To be more closely equivalent to loop peeling, the cloning of D1 > should be triggered whenever a cycle back to D1 is found in the call > graph reachable from D1.) > > We have experimented with splitting profiles (not the whole bytecode), > but the results have not been promising yet. It's worth tinkering > with, though. Bytecode (method) cloning might be worthwhile too, if > we can tune the heuristics properly. You don't need bytecode cloning if you can have several metadata objects for one methods. BTW, I currently do bytecode cloning because there is no way to clear all mdos of one method. About the splitting profiles, we know where we need splitting profiles, it's when a callsite is said to be polymorphic by the interpreter. In that case, c1 should generate a code with a special entry point (a third one) that takes a metadata object as parameter from the callsite. With that we have a way to create a profile tree that can be used by c2 to generate a dedicated code specialized for a callpath. > > One more comment: I think what we are seeing here is an early > indication of the most important optimization challenge of lambdas, > which I call loop customization. I will send a separate note about this. I fully agree and I don't see a way to be able to do that without introducing a method handle combiner for loops. > > ? John R?mi From vladimir.kozlov at oracle.com Mon Sep 10 10:22:36 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 10 Sep 2012 10:22:36 -0700 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504DCDCF.6010207@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> Message-ID: <504E21DC.9000909@oracle.com> We need to be careful here. It will increase product VM size (currently that code is under #ifndef PRODUCT) and embedded group will kill us for that. I think we should look on this case by case. You still can figure out that it is bimorphic call since they have the same bci (@ 4). Vladimir Nils Eliasson wrote: > AFAIK, all verbose/trace/debug-print output should be available in > product builds behind flag + diagnostic. It is such a time saver when > you can use it directly, it simplifies the code, and can be very helpful > when debugging in situations where product builds are required. > > //N > > Aleksey Shipilev skrev 2012-09-10 13:08: >> Hi, >> >> First, let me describe the rationale. When I'm looking into the >> disassembly, I use this command line to dump the generated assembly: >> >> -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+TraceTypeProfile >> -XX:+PrintCompilation -XX:+PrintInlining -XX:CICompilerCount=1 >> >> This generates arguably human-readable output in the form: >> >> for [each method]; do >> [PrintCompilation prints single compile record] >> [PrintInlining prints inlining tree] >> [PrintAssembly dumps the disassembly] >> done >> >> Soon enough I realize that bimorphic calls in inlining tree have >> arguably counter-intuitive form: >> >> 81 13 TestInline::doWork (56 bytes) >> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >> >> Naively-looking that might mean the $DelegatingIterator::next calls both >> next() methods in the code, but that is confusing because there is a >> single virtual call in the user code. >> >> Enabling -XX:+TraceTypeProfile helps a lot: >> >> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >> \-> TypeProfile (128014/128014 counts) = TestInline$DelegatingIterator >> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >> \-> TypeProfile (29297/58595 counts) = TestInline$DelegatingIterator >> \-> TypeProfile (29298/58595 counts) = java/util/ArrayList$Itr >> >> ...albeit being a bit misplaced. >> >> But here's the kicker: -XX:+TraceTypeProfile is only available in >> fastdebug build, and so I need to make additional step to figure this >> out. For my taste, tracing type profiles should instead be unlocked with >> -XX:+UnlockDiagnosticVMOptions. Are there any benefits of hiding this? >> If not, I would be happy to provide the patch bringing it on par with >> other diagnostic options. >> >> -Aleksey. > From roland.westrelin at oracle.com Mon Sep 10 10:27:28 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 10 Sep 2012 19:27:28 +0200 Subject: RFR (S): 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere In-Reply-To: <504E1B5A.2070303@oracle.com> References: <504E1B5A.2070303@oracle.com> Message-ID: <62469E66-5D4B-4A32-B050-AA606AF09505@oracle.com> Thanks for the review. > I like Coleen's suggestion for c1_LIRAssembler_x86.cpp and I assume you will use it. I will. Roland. From john.r.rose at oracle.com Mon Sep 10 10:28:00 2012 From: john.r.rose at oracle.com (John Rose) Date: Mon, 10 Sep 2012 10:28:00 -0700 Subject: loop customization: a key challenge Message-ID: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> Aleksey's note about chain11 vs. chain12 jogged my memory about something that has been worrying me since 2005. There is an important optimization challenge coming up when lambdas are combined (as they are intended to be combined) with bulk data processing libraries. I call this optimization challenge "loop customization". (Can anyone propose a previously coined, commonly used term instead of loop customization? Please read on?) Most loop optimizations take a source code loop as a compiler work unit and optimize it for general use. Internally, the loop may be replicated and specialized, and the various specialized versions composed to implement the full contract of the original loop code. For example, iteration range splitting is used by HotSpot server compiler to divide a loop in to pre-loop, main loop, and post-loop, each with its own job to do. The main loop runs full speed and is unrolled and maybe vectorized. The other loop versions perform array index checking in such a way that the main loop does not have it. But with closures and iteration frameworks, loops need to be sensitive to their callers; a compiler may need to create loop versions which are adapted to individual callers. A "customizable loop" is one which it may be profitable to "customize" differently for distinct callers. More specifically, the inner actions of a customizable loop may vary greatly from caller to caller. Here is pseudocode for a customizable loop that performs a "for-each" traversal of some data set: L(input : Array(T), kernel : Function(T -> U), output : Array(U)) { for (element : T in input) output.collect(kernel(element)); } A() { L(data1, X, result1); } B() { L(data2, Y, result2); } C() { L(data3, Z, result3); } In terms of call graphs, a customizable loop looks like a pinch point L: A -> L -> X B -> L -> Y C -> L -> Z ? L will have some code shape that makes us want to compile and optimize L distinctly for each callee (X,Y,Z). Usually, L will call X (or Y or Z) many times. We will want to apply loop optimizations such as invariant hoisting, iteration range splitting, unrolling, and vectorization. In the typical case, L is a reusable loop superstructure, such as ArrayList::filter. (Or some lazy-buffered-blocked-array-stream::filter.) Each caller (A,B,C) is using a collection utility (or more generally a whole pipeline of them). Each caller (A,B,C) supplies a distinct loop kernel (X,Y,Z) potentially unique to that caller. After node merging (in the method/bytecode representation of the program), our attempts to profile L are spoiled: {A,B,C} -> L -> {X,Y,Z} It was wonderful that L was reusable software, but now we wish L had been copied once per call site. As it is, the call from L (to the loop kernel) is badly megamorphic. So the calls to X,Y,Z are not inlined properly, if L is not completely inlined. (Another hazard is that type information identifying X must get propagated through the customized copy of L in A, etc.) (The parallel with Aleksey's chain11 is that A->L->X inlines like D1->D1->E. Here, the middle instance of D1 is contextually monomorphic but appears polymorphic in the profile.) To avoid polymorphic (or bimorphic) calls, each separate call to L must get inlined, with fully customized copy of the loop L integrated with each kernel (X,Y,Z). We try to make this happen, and will probably succeed as long as L is simple enough in structure. Brian Goetz has proposed a closure-savvy generalization of AtomicIntegerFieldUpdater.getAndIncrement as a canonical test case. There's a very tiny CAS loop inside the combinator. Because pipelines can contain repeated calls to the same collection transform, there may also be apparent recursions from X to one of {A,B,C}, etc. This is a further parallel with chain11 (D1/D2/E), since the recursion heuristics may kick in and further obscure the static pipeline structure. The biggest challenge with loop customization happens when L is complex. We will soon enough confront the case where L is not just a for-loop but in fact is a large slice of a fork-join algorithm, concerned with the problem of distributing the loop across multiple CPUs with shared memory. The parts of L that require customization will be the loops L1 over sections of the partitioned input data, and they will be called on multiple threads, far away (in the compiler's view) from the entry point L0 of the fork-join library. {A,B,C} -> L0 -> ?(thread stuff)? -> L1 -> {X,Y,Z} Inlining will not even get close to customizing those inner loops L1. In essence, the logically simple loop L has been split into a nested loop L0/L1, where the outer loop L0 might be very complex (a task scheduler) and difficult to analyze statically. (We may assume that L1 can be kept simple, a visit to a slice of an input array or two. If that is the case, it is here that we want to concentrate our code optimization work.) What is needed here (in my opinion) is a way for L0 to participate, explicitly, under expert programmer control, in the instantiation or customization of L1 for various X,Y,X. We want the benefits of C++ templates (copy outer loop and inline like you mean it) without the deficits (premature optimization due to exhaustive inlining, followed by I-cache heat death). Luckily, closures (and/or method handles) will give us a natural notation for such selective inlining. In the "old days" (before closures), the only workable option for L0 to combine L1 with X,Y,Z was to call L1 with X,Y,Z as a parameter, triggering inlining and constant folding. In other words, code customization is triggered only at call sites (with the help of inlining and profiling). With closures, there is another option for triggering customization, and that is partial application. [1] L0 should create a customized inner loop L1+X, not by eventually calling X from L1 inside each worker thread, but by partially applying L1 to X at top level, before splitting the workload. Then the call chain looks like this: {A,B,C} -> L0 -> {L1_X = L1->X, L1_Y = L1->Y, ?} -> ?(thread stuff)? L2 -> {L1_X, L1_Y, L1_Z} In pseudo-code: L0(input : Array(T), kernel : Function(T -> U), output : Array(U)) { L1_k = L1.bindTo(kernel); distributeAcrossWorkersCallingL2(input, L1_k, output); } L1(kernel : Function(T -> U), input : SubArray(T), output : SubArray(U)) { for (element : T in input) output.collect(kernel(element)); } L2(input : SubArray(T), loop_plus_kernel : Function(SubArray(T) -> SubArray(U)), output : SubArray(U)) { loop_plus_kernel(input, output); } L0, L1, L2 are private components of a library which presents itself as a simple bulk data operator L. Given this program structure (which requires some conspiracy with library implementors), the JVM can inline the first two levels of calls, and note the creation of the customized loop. The customized loop can then be distributed to worker threads and executed at full (customized) performance. Instances of a customized loop, although not explicit in the source code, would look something like this: L1_X(input : SubArray(T), output : SubArray(U)) { for (element : T in input) output.collect(X(element)); } // generated by L1.bindTo(X) L1_Y(...) { for (?) ...(Y(...)); } // generated by L1.bindTo(Y) L1_Z(...) { for (?) ?(Z(...)); } // generated by L1.bindTo(Z) ... This will require just-in-time generation of L1_X, L1_Y, etc., as they are successively created by L0. (Global static analysis might work, if the program is well behaved enough. But it is better to aim at the on-line solution first.) There are two major variations to point out here. In the simple variation, A,B,C are in 1-1 correspondence with X,Y,Z. Customizing the various L1_X could be driven by inlining decisions at A,B,C. In the second variation, a very simple loop kernel X might be used many times, by many A1, A2, A3, ?. (This might happen with List::sum; the loop kernel is a closure that adds two numbers together.) Customizing L1_X may profit from a dynamic registry that somehow recognizes and reuses L1_X from many places (A1,A2,A3,?). ? John P.S. The method-handle (JSR 292) way of expressing partial application is MH::bindTo. With closures, a little more pattern matching is required, but in essence you look for the programmer wrapping a call to a non-constant but hoistable SAM object X inside a closure L1. Profiling is required in all cases to concentrate optimization effort where it counts. [1] http://en.wikipedia.org/wiki/Partial_application From aleksey.shipilev at oracle.com Mon Sep 10 10:44:51 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 10 Sep 2012 21:44:51 +0400 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E21DC.9000909@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> Message-ID: <504E2713.5060000@oracle.com> On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: > We need to be careful here. It will increase product VM size (currently > that code is under #ifndef PRODUCT) and embedded group will kill us for > that. I think we should look on this case by case. You still can figure > out that it is bimorphic call since they have the same bci (@ 4). What is the reasonable increase in VM size we (they) could tolerate? I can make the prototype change and figure out the actual increase. Looks like there is a single small printing subroutine and two calls. -Aleksey. From vladimir.kozlov at oracle.com Mon Sep 10 11:28:52 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 10 Sep 2012 11:28:52 -0700 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E2713.5060000@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> Message-ID: <504E3164.8000608@oracle.com> Aleksey Shipilev wrote: > On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: >> We need to be careful here. It will increase product VM size (currently >> that code is under #ifndef PRODUCT) and embedded group will kill us for >> that. I think we should look on this case by case. You still can figure >> out that it is bimorphic call since they have the same bci (@ 4). > > What is the reasonable increase in VM size we (they) could tolerate? I None :) Seriously, they pushed several changes just to save few bytes in our internal data structures. > can make the prototype change and figure out the actual increase. Looks > like there is a single small printing subroutine and two calls. The subroutine will be inlined in call sites so total size increase will be bigger than one method. But increase may be disappear during linking due to alignment, merge and other staff. So, please, do the experiment. Also we need to consider how often it will be used outside VM development work by customers. If customers are not using it we need to avoid including it into product. You always can build VM (fastdebug or optimized) where such flags work. Vladimir > > -Aleksey. > > From aleksey.shipilev at oracle.com Mon Sep 10 11:50:38 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 10 Sep 2012 22:50:38 +0400 Subject: loop customization: a key challenge In-Reply-To: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> References: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> Message-ID: <504E367E.4010103@oracle.com> On 09/10/2012 09:28 PM, John Rose wrote: > There is an important optimization challenge coming up when lambdas > are combined (as they are intended to be combined) with bulk data > processing libraries. I call this optimization challenge "loop > customization". Thanks for a nice writeup! Actually, we thought about this as well in the context of lambda-accepting methods, the prime example being bulk operations. This is something bugging us as well. > (Can anyone propose a previously coined, commonly used term instead > of loop customization? Please read on?) I think this is not about the loops per se, albeit the impact is mostly visible in the loops, where you bang yourself of this issue over and over and over again. But this applies to any other (linear) optimization. > With closures, there is another option for triggering customization, and that is partial application. [1] L0 should create a customized inner loop L1+X, not by eventually calling X from L1 inside each worker thread, but by partially applying L1 to X at top level, before splitting the workload. This looks like to attempt to translate the argument type dispatch [*] to receiver type dispatch which we are able to optimize well already. Do we have other options for syntax/semantic convention to tell VM "see this argument? You better specialize on it's type"? Given John's conversion is probably forced by the user, I think syntactical brevity is the significant concern even for hard-core library developers. -Aleksey. [*] Granted, the dispatch for the copies of the same method, but each with specialized type constraints. From john.r.rose at oracle.com Mon Sep 10 12:13:58 2012 From: john.r.rose at oracle.com (John Rose) Date: Mon, 10 Sep 2012 12:13:58 -0700 Subject: loop customization: a key challenge In-Reply-To: <504E367E.4010103@oracle.com> References: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> <504E367E.4010103@oracle.com> Message-ID: <6DB21119-33CF-449A-B05C-04F15F473E96@oracle.com> On Sep 10, 2012, at 11:50 AM, Aleksey Shipilev wrote: > "see this argument? You better specialize on it's type" That's why the JSR 292 EG put MH.bindTo and Lookup.bind into the API, even though MHs.insertArguments is more general. The methods strongly hint to implementors and users that bind and findVirtual + bindTo perform the obvious devirtualization. It would be reasonable to agree to focus such specialization optimizations around leading arguments. (Outside of Java, functional languages also use the leading argument convention for partial application, and use such partial application to express specialization.) Of course, loop customization does not really appear to be a case of devirtualization? unless perhaps you treat each loop superstructure as a defender method on the loop kernel interface. Then L1_X is really X.L1, and the JVM optimization framework can swing into action, cloning L1 into each receiver type X. So that's a MH-free way to think about it. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120910/199ecd56/attachment.html From aleksey.shipilev at oracle.com Mon Sep 10 12:38:19 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 10 Sep 2012 23:38:19 +0400 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E3164.8000608@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> <504E3164.8000608@oracle.com> Message-ID: <504E41AB.6010900@oracle.com> On 09/10/2012 10:28 PM, Vladimir Kozlov wrote: > Aleksey Shipilev wrote: >> On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: >>> We need to be careful here. It will increase product VM size (currently >>> that code is under #ifndef PRODUCT) and embedded group will kill us for >>> that. I think we should look on this case by case. You still can figure >>> out that it is bimorphic call since they have the same bci (@ 4). >> >> What is the reasonable increase in VM size we (they) could tolerate? I > > None :) Seriously, they pushed several changes just to save few bytes in > our internal data structures. > >> can make the prototype change and figure out the actual increase. Looks >> like there is a single small printing subroutine and two calls. > > The subroutine will be inlined in call sites so total size increase will > be bigger than one method. But increase may be disappear during linking > due to alignment, merge and other staff. So, please, do the experiment. There is unexpected trouble: PrintOpto and PrintOptoInlining symbols are not available in product scope, so I had to go an extra mile and stop referencing them (hence, the patch [1] is little dirty). Now, this is surprising: $ du -sk ... 108924 linux-baseline/j2re-image/ 108916 linux-tracetype/j2re-image/ 174476 linux-baseline/j2sdk-image/ 174472 linux-tracetype/j2sdk-image/ Hence, this seem to trim down the JDK size :) -Aleksey. [1] > diff -r cf0013b9698c src/share/vm/opto/doCall.cpp > --- a/src/share/vm/opto/doCall.cpp Wed Sep 05 15:19:35 2012 -0700 > +++ b/src/share/vm/opto/doCall.cpp Mon Sep 10 23:37:25 2012 +0400 > @@ -41,11 +41,10 @@ > #include "prims/nativeLookup.hpp" > #include "runtime/sharedRuntime.hpp" > > -#ifndef PRODUCT > void trace_type_profile(ciMethod *method, int depth, int bci, ciMethod *prof_method, ciKlass *prof_klass, int site_count, int receiver_count) { > - if (TraceTypeProfile || PrintInlining || PrintOptoInlining) { > + if (TraceTypeProfile || PrintInlining) { > if (!PrintInlining) { > - if (!PrintOpto && !PrintCompilation) { > + if (!PrintCompilation) { > method->print_short_name(); > tty->cr(); > } > @@ -57,7 +56,6 @@ > tty->cr(); > } > } > -#endif > > CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, > JVMState* jvms, bool allow_inline, > @@ -233,13 +231,13 @@ > } > if (miss_cg != NULL) { > if (next_hit_cg != NULL) { > - NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), next_receiver_method, profile.receiver(1), site_count, profile.receiver_count(1))); > + trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), next_receiver_method, profile.receiver(1), site_count, profile.receiver_count(1)); > // We don't need to record dependency on a receiver here and below. > // Whenever we inline, the dependency is added by Parse::Parse(). > miss_cg = CallGenerator::for_predicted_call(profile.receiver(1), miss_cg, next_hit_cg, PROB_MAX); > } > if (miss_cg != NULL) { > - NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), site_count, receiver_count)); > + trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), site_count, receiver_count); > CallGenerator* cg = CallGenerator::for_predicted_call(profile.receiver(0), miss_cg, hit_cg, profile.receiver_prob(0)); > if (cg != NULL) return cg; > } > diff -r cf0013b9698c src/share/vm/runtime/globals.hpp > --- a/src/share/vm/runtime/globals.hpp Wed Sep 05 15:19:35 2012 -0700 > +++ b/src/share/vm/runtime/globals.hpp Mon Sep 10 23:37:25 2012 +0400 > @@ -2894,7 +2894,7 @@ > develop(bool, TraceFrequencyInlining, false, \ > "Trace frequency based inlining") \ > \ > - notproduct(bool, TraceTypeProfile, false, \ > + diagnostic(bool, TraceTypeProfile, false, \ > "Trace type profile") \ > \ > develop_pd(bool, InlineIntrinsics, \ From vladimir.kozlov at oracle.com Mon Sep 10 12:52:48 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 10 Sep 2012 12:52:48 -0700 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E41AB.6010900@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> <504E3164.8000608@oracle.com> <504E41AB.6010900@oracle.com> Message-ID: <504E4510.7050902@oracle.com> The problem is not size on disk (yes it is also important) but memory used by VM during execution. Also what VM sizes you got? Vladimir Aleksey Shipilev wrote: > On 09/10/2012 10:28 PM, Vladimir Kozlov wrote: >> Aleksey Shipilev wrote: >>> On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: >>>> We need to be careful here. It will increase product VM size (currently >>>> that code is under #ifndef PRODUCT) and embedded group will kill us for >>>> that. I think we should look on this case by case. You still can figure >>>> out that it is bimorphic call since they have the same bci (@ 4). >>> What is the reasonable increase in VM size we (they) could tolerate? I >> None :) Seriously, they pushed several changes just to save few bytes in >> our internal data structures. >> >>> can make the prototype change and figure out the actual increase. Looks >>> like there is a single small printing subroutine and two calls. >> The subroutine will be inlined in call sites so total size increase will >> be bigger than one method. But increase may be disappear during linking >> due to alignment, merge and other staff. So, please, do the experiment. > > There is unexpected trouble: PrintOpto and PrintOptoInlining symbols are > not available in product scope, so I had to go an extra mile and stop > referencing them (hence, the patch [1] is little dirty). > > Now, this is surprising: > > $ du -sk ... > 108924 linux-baseline/j2re-image/ > 108916 linux-tracetype/j2re-image/ > 174476 linux-baseline/j2sdk-image/ > 174472 linux-tracetype/j2sdk-image/ > > Hence, this seem to trim down the JDK size :) > > -Aleksey. > > [1] >> diff -r cf0013b9698c src/share/vm/opto/doCall.cpp >> --- a/src/share/vm/opto/doCall.cpp Wed Sep 05 15:19:35 2012 -0700 >> +++ b/src/share/vm/opto/doCall.cpp Mon Sep 10 23:37:25 2012 +0400 >> @@ -41,11 +41,10 @@ >> #include "prims/nativeLookup.hpp" >> #include "runtime/sharedRuntime.hpp" >> >> -#ifndef PRODUCT >> void trace_type_profile(ciMethod *method, int depth, int bci, ciMethod *prof_method, ciKlass *prof_klass, int site_count, int receiver_count) { >> - if (TraceTypeProfile || PrintInlining || PrintOptoInlining) { >> + if (TraceTypeProfile || PrintInlining) { >> if (!PrintInlining) { >> - if (!PrintOpto && !PrintCompilation) { >> + if (!PrintCompilation) { >> method->print_short_name(); >> tty->cr(); >> } >> @@ -57,7 +56,6 @@ >> tty->cr(); >> } >> } >> -#endif >> >> CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, >> JVMState* jvms, bool allow_inline, >> @@ -233,13 +231,13 @@ >> } >> if (miss_cg != NULL) { >> if (next_hit_cg != NULL) { >> - NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), next_receiver_method, profile.receiver(1), site_count, profile.receiver_count(1))); >> + trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), next_receiver_method, profile.receiver(1), site_count, profile.receiver_count(1)); >> // We don't need to record dependency on a receiver here and below. >> // Whenever we inline, the dependency is added by Parse::Parse(). >> miss_cg = CallGenerator::for_predicted_call(profile.receiver(1), miss_cg, next_hit_cg, PROB_MAX); >> } >> if (miss_cg != NULL) { >> - NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), site_count, receiver_count)); >> + trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), site_count, receiver_count); >> CallGenerator* cg = CallGenerator::for_predicted_call(profile.receiver(0), miss_cg, hit_cg, profile.receiver_prob(0)); >> if (cg != NULL) return cg; >> } >> diff -r cf0013b9698c src/share/vm/runtime/globals.hpp >> --- a/src/share/vm/runtime/globals.hpp Wed Sep 05 15:19:35 2012 -0700 >> +++ b/src/share/vm/runtime/globals.hpp Mon Sep 10 23:37:25 2012 +0400 >> @@ -2894,7 +2894,7 @@ >> develop(bool, TraceFrequencyInlining, false, \ >> "Trace frequency based inlining") \ >> \ >> - notproduct(bool, TraceTypeProfile, false, \ >> + diagnostic(bool, TraceTypeProfile, false, \ >> "Trace type profile") \ >> \ >> develop_pd(bool, InlineIntrinsics, \ > > From aleksey.shipilev at oracle.com Mon Sep 10 13:03:05 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Tue, 11 Sep 2012 00:03:05 +0400 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E4510.7050902@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> <504E3164.8000608@oracle.com> <504E41AB.6010900@oracle.com> <504E4510.7050902@oracle.com> Message-ID: <504E4779.6020500@oracle.com> Aha, are you suggesting this can jitter the memory footprint? Even if it does, then you have the problem with memory footprint jitter, not with the changes knocking you out of the beloved equilibrium. I think you want these (in bytes)? 7418024 linux-baseline/j2re-image/lib/i386/client/libjvm.so 7418057 linux-tracetype/j2re-image/lib/i386/client/libjvm.so 11706683 linux-baseline/j2re-image/lib/i386/server/libjvm.so 11706781 linux-tracetype/j2re-image/lib/i386/server/libjvm.so -Aleksey. On 09/10/2012 11:52 PM, Vladimir Kozlov wrote: > The problem is not size on disk (yes it is also important) but memory > used by VM during execution. Also what VM sizes you got? > > Vladimir > > Aleksey Shipilev wrote: >> On 09/10/2012 10:28 PM, Vladimir Kozlov wrote: >>> Aleksey Shipilev wrote: >>>> On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: >>>>> We need to be careful here. It will increase product VM size >>>>> (currently >>>>> that code is under #ifndef PRODUCT) and embedded group will kill us >>>>> for >>>>> that. I think we should look on this case by case. You still can >>>>> figure >>>>> out that it is bimorphic call since they have the same bci (@ 4). >>>> What is the reasonable increase in VM size we (they) could tolerate? I >>> None :) Seriously, they pushed several changes just to save few bytes in >>> our internal data structures. >>> >>>> can make the prototype change and figure out the actual increase. Looks >>>> like there is a single small printing subroutine and two calls. >>> The subroutine will be inlined in call sites so total size increase will >>> be bigger than one method. But increase may be disappear during linking >>> due to alignment, merge and other staff. So, please, do the experiment. >> >> There is unexpected trouble: PrintOpto and PrintOptoInlining symbols are >> not available in product scope, so I had to go an extra mile and stop >> referencing them (hence, the patch [1] is little dirty). >> >> Now, this is surprising: >> >> $ du -sk ... >> 108924 linux-baseline/j2re-image/ >> 108916 linux-tracetype/j2re-image/ >> 174476 linux-baseline/j2sdk-image/ >> 174472 linux-tracetype/j2sdk-image/ >> >> Hence, this seem to trim down the JDK size :) >> >> -Aleksey. >> >> [1] >>> diff -r cf0013b9698c src/share/vm/opto/doCall.cpp >>> --- a/src/share/vm/opto/doCall.cpp Wed Sep 05 15:19:35 2012 -0700 >>> +++ b/src/share/vm/opto/doCall.cpp Mon Sep 10 23:37:25 2012 +0400 >>> @@ -41,11 +41,10 @@ >>> #include "prims/nativeLookup.hpp" >>> #include "runtime/sharedRuntime.hpp" >>> >>> -#ifndef PRODUCT >>> void trace_type_profile(ciMethod *method, int depth, int bci, >>> ciMethod *prof_method, ciKlass *prof_klass, int site_count, int >>> receiver_count) { >>> - if (TraceTypeProfile || PrintInlining || PrintOptoInlining) { >>> + if (TraceTypeProfile || PrintInlining) { >>> if (!PrintInlining) { >>> - if (!PrintOpto && !PrintCompilation) { >>> + if (!PrintCompilation) { >>> method->print_short_name(); >>> tty->cr(); >>> } >>> @@ -57,7 +56,6 @@ >>> tty->cr(); >>> } >>> } >>> -#endif >>> >>> CallGenerator* Compile::call_generator(ciMethod* call_method, int >>> vtable_index, bool call_is_virtual, >>> JVMState* jvms, bool >>> allow_inline, >>> @@ -233,13 +231,13 @@ >>> } >>> if (miss_cg != NULL) { >>> if (next_hit_cg != NULL) { >>> - NOT_PRODUCT(trace_type_profile(jvms->method(), >>> jvms->depth() - 1, jvms->bci(), next_receiver_method, >>> profile.receiver(1), site_count, profile.receiver_count(1))); >>> + trace_type_profile(jvms->method(), jvms->depth() - 1, >>> jvms->bci(), next_receiver_method, profile.receiver(1), site_count, >>> profile.receiver_count(1)); >>> // We don't need to record dependency on a receiver >>> here and below. >>> // Whenever we inline, the dependency is added by >>> Parse::Parse(). >>> miss_cg = >>> CallGenerator::for_predicted_call(profile.receiver(1), miss_cg, >>> next_hit_cg, PROB_MAX); >>> } >>> if (miss_cg != NULL) { >>> - NOT_PRODUCT(trace_type_profile(jvms->method(), >>> jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), >>> site_count, receiver_count)); >>> + trace_type_profile(jvms->method(), jvms->depth() - 1, >>> jvms->bci(), receiver_method, profile.receiver(0), site_count, >>> receiver_count); >>> CallGenerator* cg = >>> CallGenerator::for_predicted_call(profile.receiver(0), miss_cg, >>> hit_cg, profile.receiver_prob(0)); >>> if (cg != NULL) return cg; >>> } >>> diff -r cf0013b9698c src/share/vm/runtime/globals.hpp >>> --- a/src/share/vm/runtime/globals.hpp Wed Sep 05 15:19:35 2012 -0700 >>> +++ b/src/share/vm/runtime/globals.hpp Mon Sep 10 23:37:25 2012 +0400 >>> @@ -2894,7 +2894,7 @@ >>> develop(bool, TraceFrequencyInlining, >>> false, \ >>> "Trace frequency based >>> inlining") \ >>> >>> \ >>> - notproduct(bool, TraceTypeProfile, >>> false, \ >>> + diagnostic(bool, TraceTypeProfile, >>> false, \ >>> "Trace type >>> profile") \ >>> >>> \ >>> develop_pd(bool, >>> InlineIntrinsics, \ >> >> From vladimir.kozlov at oracle.com Mon Sep 10 14:21:29 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 10 Sep 2012 14:21:29 -0700 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E4779.6020500@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> <504E3164.8000608@oracle.com> <504E41AB.6010900@oracle.com> <504E4510.7050902@oracle.com> <504E4779.6020500@oracle.com> Message-ID: <504E59D9.7010103@oracle.com> Aleksey Shipilev wrote: > Aha, are you suggesting this can jitter the memory footprint? Even if it > does, then you have the problem with memory footprint jitter, not with > the changes knocking you out of the beloved equilibrium. > > I think you want these (in bytes)? > 7418024 linux-baseline/j2re-image/lib/i386/client/libjvm.so > 7418057 linux-tracetype/j2re-image/lib/i386/client/libjvm.so You changed only C2 code which is only in Server VM. Different size could be caused by different length of build path ("linux-tracetype" vs "linux-baseline"). > 11706683 linux-baseline/j2re-image/lib/i386/server/libjvm.so > 11706781 linux-tracetype/j2re-image/lib/i386/server/libjvm.so Yes, this is what I would expect, about 100 bytes increase. But, please, try with the same build path length. Vladimir > > -Aleksey. > > On 09/10/2012 11:52 PM, Vladimir Kozlov wrote: >> The problem is not size on disk (yes it is also important) but memory >> used by VM during execution. Also what VM sizes you got? >> >> Vladimir >> >> Aleksey Shipilev wrote: >>> On 09/10/2012 10:28 PM, Vladimir Kozlov wrote: >>>> Aleksey Shipilev wrote: >>>>> On 09/10/2012 09:22 PM, Vladimir Kozlov wrote: >>>>>> We need to be careful here. It will increase product VM size >>>>>> (currently >>>>>> that code is under #ifndef PRODUCT) and embedded group will kill us >>>>>> for >>>>>> that. I think we should look on this case by case. You still can >>>>>> figure >>>>>> out that it is bimorphic call since they have the same bci (@ 4). >>>>> What is the reasonable increase in VM size we (they) could tolerate? I >>>> None :) Seriously, they pushed several changes just to save few bytes in >>>> our internal data structures. >>>> >>>>> can make the prototype change and figure out the actual increase. Looks >>>>> like there is a single small printing subroutine and two calls. >>>> The subroutine will be inlined in call sites so total size increase will >>>> be bigger than one method. But increase may be disappear during linking >>>> due to alignment, merge and other staff. So, please, do the experiment. >>> There is unexpected trouble: PrintOpto and PrintOptoInlining symbols are >>> not available in product scope, so I had to go an extra mile and stop >>> referencing them (hence, the patch [1] is little dirty). >>> >>> Now, this is surprising: >>> >>> $ du -sk ... >>> 108924 linux-baseline/j2re-image/ >>> 108916 linux-tracetype/j2re-image/ >>> 174476 linux-baseline/j2sdk-image/ >>> 174472 linux-tracetype/j2sdk-image/ >>> >>> Hence, this seem to trim down the JDK size :) >>> >>> -Aleksey. >>> >>> [1] >>>> diff -r cf0013b9698c src/share/vm/opto/doCall.cpp >>>> --- a/src/share/vm/opto/doCall.cpp Wed Sep 05 15:19:35 2012 -0700 >>>> +++ b/src/share/vm/opto/doCall.cpp Mon Sep 10 23:37:25 2012 +0400 >>>> @@ -41,11 +41,10 @@ >>>> #include "prims/nativeLookup.hpp" >>>> #include "runtime/sharedRuntime.hpp" >>>> >>>> -#ifndef PRODUCT >>>> void trace_type_profile(ciMethod *method, int depth, int bci, >>>> ciMethod *prof_method, ciKlass *prof_klass, int site_count, int >>>> receiver_count) { >>>> - if (TraceTypeProfile || PrintInlining || PrintOptoInlining) { >>>> + if (TraceTypeProfile || PrintInlining) { >>>> if (!PrintInlining) { >>>> - if (!PrintOpto && !PrintCompilation) { >>>> + if (!PrintCompilation) { >>>> method->print_short_name(); >>>> tty->cr(); >>>> } >>>> @@ -57,7 +56,6 @@ >>>> tty->cr(); >>>> } >>>> } >>>> -#endif >>>> >>>> CallGenerator* Compile::call_generator(ciMethod* call_method, int >>>> vtable_index, bool call_is_virtual, >>>> JVMState* jvms, bool >>>> allow_inline, >>>> @@ -233,13 +231,13 @@ >>>> } >>>> if (miss_cg != NULL) { >>>> if (next_hit_cg != NULL) { >>>> - NOT_PRODUCT(trace_type_profile(jvms->method(), >>>> jvms->depth() - 1, jvms->bci(), next_receiver_method, >>>> profile.receiver(1), site_count, profile.receiver_count(1))); >>>> + trace_type_profile(jvms->method(), jvms->depth() - 1, >>>> jvms->bci(), next_receiver_method, profile.receiver(1), site_count, >>>> profile.receiver_count(1)); >>>> // We don't need to record dependency on a receiver >>>> here and below. >>>> // Whenever we inline, the dependency is added by >>>> Parse::Parse(). >>>> miss_cg = >>>> CallGenerator::for_predicted_call(profile.receiver(1), miss_cg, >>>> next_hit_cg, PROB_MAX); >>>> } >>>> if (miss_cg != NULL) { >>>> - NOT_PRODUCT(trace_type_profile(jvms->method(), >>>> jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), >>>> site_count, receiver_count)); >>>> + trace_type_profile(jvms->method(), jvms->depth() - 1, >>>> jvms->bci(), receiver_method, profile.receiver(0), site_count, >>>> receiver_count); >>>> CallGenerator* cg = >>>> CallGenerator::for_predicted_call(profile.receiver(0), miss_cg, >>>> hit_cg, profile.receiver_prob(0)); >>>> if (cg != NULL) return cg; >>>> } >>>> diff -r cf0013b9698c src/share/vm/runtime/globals.hpp >>>> --- a/src/share/vm/runtime/globals.hpp Wed Sep 05 15:19:35 2012 -0700 >>>> +++ b/src/share/vm/runtime/globals.hpp Mon Sep 10 23:37:25 2012 +0400 >>>> @@ -2894,7 +2894,7 @@ >>>> develop(bool, TraceFrequencyInlining, >>>> false, \ >>>> "Trace frequency based >>>> inlining") \ >>>> >>>> \ >>>> - notproduct(bool, TraceTypeProfile, >>>> false, \ >>>> + diagnostic(bool, TraceTypeProfile, >>>> false, \ >>>> "Trace type >>>> profile") \ >>>> >>>> \ >>>> develop_pd(bool, >>>> InlineIntrinsics, \ >>> > From aleksey.shipilev at oracle.com Mon Sep 10 22:29:15 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Tue, 11 Sep 2012 09:29:15 +0400 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E59D9.7010103@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504E2713.5060000@oracle.com> <504E3164.8000608@oracle.com> <504E41AB.6010900@oracle.com> <504E4510.7050902@oracle.com> <504E4779.6020500@oracle.com> <504E59D9.7010103@oracle.com> Message-ID: <504ECC2B.5000102@oracle.com> On 09/11/2012 01:21 AM, Vladimir Kozlov wrote: > Aleksey Shipilev wrote: >> Aha, are you suggesting this can jitter the memory footprint? Even if it >> does, then you have the problem with memory footprint jitter, not with >> the changes knocking you out of the beloved equilibrium. >> >> I think you want these (in bytes)? >> 7418024 linux-baseline/j2re-image/lib/i386/client/libjvm.so >> 7418057 linux-tracetype/j2re-image/lib/i386/client/libjvm.so > > You changed only C2 code which is only in Server VM. Different size > could be caused by different length of build path ("linux-tracetype" vs > "linux-baseline"). > >> 11706683 linux-baseline/j2re-image/lib/i386/server/libjvm.so >> 11706781 linux-tracetype/j2re-image/lib/i386/server/libjvm.so > > Yes, this is what I would expect, about 100 bytes increase. But, please, > try with the same build path length. Actually, I had renamed the build *after* the build completes. So, these two guys should have similar build paths (i.e. build/linux-i586/...). -Aleksey. From aleksey.shipilev at oracle.com Tue Sep 11 02:09:01 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Tue, 11 Sep 2012 13:09:01 +0400 Subject: loop customization: a key challenge In-Reply-To: <6DB21119-33CF-449A-B05C-04F15F473E96@oracle.com> References: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> <504E367E.4010103@oracle.com> <6DB21119-33CF-449A-B05C-04F15F473E96@oracle.com> Message-ID: <504EFFAD.7080708@oracle.com> On 09/10/2012 11:13 PM, John Rose wrote: > On Sep 10, 2012, at 11:50 AM, Aleksey Shipilev wrote: > >> "see this argument? You better specialize on it's type" > > That's why the JSR 292 EG put MH.bindTo and Lookup.bind into the API, > even though MHs.insertArguments is more general. > > The methods strongly hint to implementors and users that bind and > findVirtual + bindTo perform the obvious devirtualization. I haven't been following jsr292 development recently. Is that kind of hint already favored by Hotspot? I would like to try to do this conversion by hand and see if it helps some of our benchmarks here. > Of course, loop customization does not really appear to be a case of > devirtualization? unless perhaps you treat each loop superstructure as a > defender method on the loop kernel interface. Then L1_X is really X.L1, > and the JVM optimization framework can swing into action, cloning L1 > into each receiver type X. So that's a MH-free way to think about it. Yes, it appears that your suggestion applies to whatever "superstructure" there is in the code. I would like to highlight that the obvious demarcation point for such the superstructure is the method call, and we can probably spare some of the syntactical pain and hard-core conspiracy from the library developers. I.e. if there is a way to say class Arrays { void apply(T[] array, @PleaseSpecialize UnaryOperator op) { // blah-blah, apply } ... } ...albeit being more limiting in "superstructure" sense, it is more clear than explicitly writing up jsr292 magics. Of course, in this sense, we can even try to desugar this to jsr292 with the conversion outlined by John, e.g. into: class Arrays { void apply(T[] array, @PleaseSpecialize UnaryOperator op) { MH superOp = #apply$$Internal.bindTo(op); superOp.invoke(array); } void apply$$Internal(UnaryOperator op, T[] array) { // blah-blah, apply } } -Aleksey. From nils.eliasson at oracle.com Tue Sep 11 12:36:32 2012 From: nils.eliasson at oracle.com (Nils Eliasson) Date: Tue, 11 Sep 2012 21:36:32 +0200 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504E21DC.9000909@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> Message-ID: <504F92C0.6070509@oracle.com> What about changing it to an #ifndef EMBEDDED then? (or what the name may be...) //N Vladimir Kozlov skrev 2012-09-10 19:22: > We need to be careful here. It will increase product VM size > (currently that code is under #ifndef PRODUCT) and embedded group will > kill us for that. I think we should look on this case by case. You > still can figure out that it is bimorphic call since they have the > same bci (@ 4). > > Vladimir > > Nils Eliasson wrote: >> AFAIK, all verbose/trace/debug-print output should be available in >> product builds behind flag + diagnostic. It is such a time saver when >> you can use it directly, it simplifies the code, and can be very >> helpful when debugging in situations where product builds are required. >> >> //N >> >> Aleksey Shipilev skrev 2012-09-10 13:08: >>> Hi, >>> >>> First, let me describe the rationale. When I'm looking into the >>> disassembly, I use this command line to dump the generated assembly: >>> >>> -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+TraceTypeProfile >>> -XX:+PrintCompilation -XX:+PrintInlining -XX:CICompilerCount=1 >>> >>> This generates arguably human-readable output in the form: >>> >>> for [each method]; do >>> [PrintCompilation prints single compile record] >>> [PrintInlining prints inlining tree] >>> [PrintAssembly dumps the disassembly] >>> done >>> >>> Soon enough I realize that bimorphic calls in inlining tree have >>> arguably counter-intuitive form: >>> >>> 81 13 TestInline::doWork (56 bytes) >>> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >>> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>> >>> Naively-looking that might mean the $DelegatingIterator::next calls >>> both >>> next() methods in the code, but that is confusing because there is a >>> single virtual call in the user code. >>> >>> Enabling -XX:+TraceTypeProfile helps a lot: >>> >>> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>> \-> TypeProfile (128014/128014 counts) = >>> TestInline$DelegatingIterator >>> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >>> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>> \-> TypeProfile (29297/58595 counts) = >>> TestInline$DelegatingIterator >>> \-> TypeProfile (29298/58595 counts) = java/util/ArrayList$Itr >>> >>> ...albeit being a bit misplaced. >>> >>> But here's the kicker: -XX:+TraceTypeProfile is only available in >>> fastdebug build, and so I need to make additional step to figure this >>> out. For my taste, tracing type profiles should instead be unlocked >>> with >>> -XX:+UnlockDiagnosticVMOptions. Are there any benefits of hiding this? >>> If not, I would be happy to provide the patch bringing it on par with >>> other diagnostic options. >>> >>> -Aleksey. >> From vladimir.kozlov at oracle.com Tue Sep 11 14:59:48 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 11 Sep 2012 14:59:48 -0700 Subject: TraceTypeProfile as diagnostic option In-Reply-To: <504F92C0.6070509@oracle.com> References: <504DCA30.9020102@oracle.com> <504DCDCF.6010207@oracle.com> <504E21DC.9000909@oracle.com> <504F92C0.6070509@oracle.com> Message-ID: <504FB454.4060605@oracle.com> As Aleksey found, it is only about 100 bytes size increase. So I am fine if you convert it into diagnostic flag. I said we need to be careful in general case when the size increase could be much larger. Vladimir Nils Eliasson wrote: > What about changing it to an #ifndef EMBEDDED then? (or what the name > may be...) > > //N > > Vladimir Kozlov skrev 2012-09-10 19:22: >> We need to be careful here. It will increase product VM size >> (currently that code is under #ifndef PRODUCT) and embedded group will >> kill us for that. I think we should look on this case by case. You >> still can figure out that it is bimorphic call since they have the >> same bci (@ 4). >> >> Vladimir >> >> Nils Eliasson wrote: >>> AFAIK, all verbose/trace/debug-print output should be available in >>> product builds behind flag + diagnostic. It is such a time saver when >>> you can use it directly, it simplifies the code, and can be very >>> helpful when debugging in situations where product builds are required. >>> >>> //N >>> >>> Aleksey Shipilev skrev 2012-09-10 13:08: >>>> Hi, >>>> >>>> First, let me describe the rationale. When I'm looking into the >>>> disassembly, I use this command line to dump the generated assembly: >>>> >>>> -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+TraceTypeProfile >>>> -XX:+PrintCompilation -XX:+PrintInlining -XX:CICompilerCount=1 >>>> >>>> This generates arguably human-readable output in the form: >>>> >>>> for [each method]; do >>>> [PrintCompilation prints single compile record] >>>> [PrintInlining prints inlining tree] >>>> [PrintAssembly dumps the disassembly] >>>> done >>>> >>>> Soon enough I realize that bimorphic calls in inlining tree have >>>> arguably counter-intuitive form: >>>> >>>> 81 13 TestInline::doWork (56 bytes) >>>> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>>> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >>>> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>>> >>>> Naively-looking that might mean the $DelegatingIterator::next calls >>>> both >>>> next() methods in the code, but that is confusing because there is a >>>> single virtual call in the user code. >>>> >>>> Enabling -XX:+TraceTypeProfile helps a lot: >>>> >>>> @ 35 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>>> \-> TypeProfile (128014/128014 counts) = >>>> TestInline$DelegatingIterator >>>> @ 4 java.util.ArrayList$Itr::next (66 bytes) inline (hot) >>>> @ 4 TestInline$DelegatingIterator::next (10 bytes) inline (hot) >>>> \-> TypeProfile (29297/58595 counts) = >>>> TestInline$DelegatingIterator >>>> \-> TypeProfile (29298/58595 counts) = java/util/ArrayList$Itr >>>> >>>> ...albeit being a bit misplaced. >>>> >>>> But here's the kicker: -XX:+TraceTypeProfile is only available in >>>> fastdebug build, and so I need to make additional step to figure this >>>> out. For my taste, tracing type profiles should instead be unlocked >>>> with >>>> -XX:+UnlockDiagnosticVMOptions. Are there any benefits of hiding this? >>>> If not, I would be happy to provide the patch bringing it on par with >>>> other diagnostic options. >>>> >>>> -Aleksey. >>> > From aleksey.shipilev at oracle.com Thu Sep 13 04:43:38 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Thu, 13 Sep 2012 15:43:38 +0400 Subject: RFR (S): TraceTypeProfile as diagnostic option Message-ID: <5051C6EA.5000605@oracle.com> http://shipilev.net/pub/jdk/hotspot/typeprofile/webrev-1/ As per Vladimir request, I did the experiment what are the increases in binary sizes with this change, these are below 100 bytes in either client or server VM. Is there something else I need to take care of to get this patch in (e.g. submit the CR?) Thanks, Aleksey. From roland.westrelin at oracle.com Thu Sep 13 07:41:56 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 13 Sep 2012 16:41:56 +0200 Subject: RFR(XS): 7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid Message-ID: <79F0ECEE-D387-4FBE-BD9C-2ED589E0FC5E@oracle.com> http://cr.openjdk.java.net/~roland/7198074/webrev.00/ The C1 register allocator allocates O7 to a piece of tiered compilation profiling code due to a missing test for T_METADATA in LinearScanWalker::pd_init_regs_for_alloc() following changes for 7195816. O7 should never be allocated by the register allocator. O7 is used to contain a Method pointer. A counter overflows, the profiling code calls the runtime, it moves O7 to another register in the shadow of the call and because O7 is used to keep the return address of the call, the Method pointer is overwritten with an address in the code. So when the runtime code tries to manipulate the Method pointer, something bad happens. Roland. From vladimir.kozlov at oracle.com Thu Sep 13 08:28:19 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 13 Sep 2012 08:28:19 -0700 Subject: RFR(XS): 7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid In-Reply-To: <79F0ECEE-D387-4FBE-BD9C-2ED589E0FC5E@oracle.com> References: <79F0ECEE-D387-4FBE-BD9C-2ED589E0FC5E@oracle.com> Message-ID: <5051FB93.3020304@oracle.com> Good. Vladimir Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7198074/webrev.00/ > > The C1 register allocator allocates O7 to a piece of tiered compilation profiling code due to a missing test for T_METADATA in LinearScanWalker::pd_init_regs_for_alloc() following changes for 7195816. O7 should never be allocated by the register allocator. O7 is used to contain a Method pointer. A counter overflows, the profiling code calls the runtime, it moves O7 to another register in the shadow of the call and because O7 is used to keep the return address of the call, the Method pointer is overwritten with an address in the code. So when the runtime code tries to manipulate the Method pointer, something bad happens. > > Roland. From roland.westrelin at oracle.com Thu Sep 13 08:29:14 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 13 Sep 2012 17:29:14 +0200 Subject: RFR(XS): 7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid In-Reply-To: <5051FB93.3020304@oracle.com> References: <79F0ECEE-D387-4FBE-BD9C-2ED589E0FC5E@oracle.com> <5051FB93.3020304@oracle.com> Message-ID: <1177B6CB-EF74-4BF3-A132-7732A66A8B5E@oracle.com> Thanks for the review. Roland. From vladimir.kozlov at oracle.com Thu Sep 13 09:21:11 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 13 Sep 2012 09:21:11 -0700 Subject: RFR (S): TraceTypeProfile as diagnostic option In-Reply-To: <5051C6EA.5000605@oracle.com> References: <5051C6EA.5000605@oracle.com> Message-ID: <505207F7.8050009@oracle.com> File RFE and I will "sponsor" this changes. It may take time since currently our repos are prepared for NoPermGen changes so we are only pushing bug fixes. Thanks, Vladimir Aleksey Shipilev wrote: > http://shipilev.net/pub/jdk/hotspot/typeprofile/webrev-1/ > > As per Vladimir request, I did the experiment what are the increases in > binary sizes with this change, these are below 100 bytes in either > client or server VM. > > Is there something else I need to take care of to get this patch in > (e.g. submit the CR?) > > Thanks, > Aleksey. From christian.thalinger at oracle.com Thu Sep 13 15:45:25 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 13 Sep 2012 15:45:25 -0700 Subject: Request for reviews (L): 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc Message-ID: http://cr.openjdk.java.net/~twisti/7196262/ 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc Reviewed-by: We are using G1 and G4 in MethodHandles::generate_method_handle_dispatch as temporary registers but the calling convention on 32-bit SPARC uses G1 and G4 to pass the first two long arguments. While investigating possible fixes it turned out that there is another bug. The appendix argument of the new JSR 292 implementation might end up in the wrong register or stack slot on SPARC. To fix that issue I had to change the Java calling convention on SPARC. While changing that code I also removed the special usage of G1 and G4 to pass long arguments on 32-bit SPARC. In doing this I could remove a lot of complicated code. The calling convention bug could potentially happen on other architectures as well. I added assertion code that checks that the Java calling convention can deal with the appendix argument on all architectures. Additionally I removed some unused code I came across. Here are refworkload runs to make sure that the changed calling convention does not affect performance. 32-bit SPARC: ============================================================================ logs.hotspot-sparc: reference_server Benchmark Samples Mean Stdev Geomean Weight jetstream 20 173.86 4.09 0.10 scimark 20 400.22 2.73 0.15 specjbb2000 20 128767.32 417.38 0.15 specjbb2005 20 59437.83 237.98 0.25 specjvm98 20 363.66 1.39 0.15 volano25 20 79479.00 1652.97 0.20 -------------------------------------------------------------------------- Weighted Geomean 8679.73 ============================================================================ logs.7196262-sparc: reference_server Benchmark Samples Mean Stdev %Diff P Significant jetstream 20 169.95 7.96 -2.25 0.060 * scimark 20 401.49 1.70 0.32 0.087 * specjbb2000 20 128592.62 524.44 -0.14 0.251 * specjbb2005 20 59438.10 208.12 0.00 0.997 * specjvm98 20 363.23 1.28 -0.12 0.310 * volano25 20 79675.70 949.88 0.25 0.648 * -------------------------------------------------------------------------- Weighted Geomean 8665.10 -0.17 ============================================================================ 64-bit SPARC: ============================================================================ logs.hotspot-sparcv9/: reference_server Benchmark Samples Mean Stdev Geomean Weight jetstream 20 155.65 0.99 0.10 scimark 20 371.01 5.29 0.15 specjbb2000 20 121447.56 167.26 0.15 specjbb2005 20 55700.69 281.70 0.25 specjvm98 20 306.40 0.93 0.15 volano25 20 70283.25 1468.01 0.20 -------------------------------------------------------------------------- Weighted Geomean 7871.54 ============================================================================ logs.7196262-sparcv9/: reference_server Benchmark Samples Mean Stdev %Diff P Significant jetstream 20 155.00 3.08 -0.42 0.375 * scimark 20 373.26 7.16 0.61 0.265 * specjbb2000 20 121482.24 178.23 0.02 0.529 * specjbb2005 20 55806.41 174.44 0.19 0.163 * specjvm98 20 306.16 1.07 -0.07 0.454 * volano25 20 69820.90 1221.87 -0.66 0.286 * -------------------------------------------------------------------------- Weighted Geomean 7868.14 -0.04 ============================================================================ src/cpu/sparc/vm/assembler_sparc.cpp src/cpu/sparc/vm/assembler_sparc.hpp src/cpu/sparc/vm/methodHandles_sparc.cpp src/cpu/sparc/vm/sharedRuntime_sparc.cpp src/cpu/x86/vm/methodHandles_x86.cpp src/cpu/x86/vm/sharedRuntime_x86_32.cpp src/cpu/x86/vm/sharedRuntime_x86_64.cpp src/share/vm/asm/register.hpp src/share/vm/code/nmethod.cpp src/share/vm/runtime/sharedRuntime.cpp src/share/vm/runtime/sharedRuntime.hpp From vladimir.kozlov at oracle.com Thu Sep 13 16:16:50 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 13 Sep 2012 16:16:50 -0700 Subject: Request for reviews (L): 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc In-Reply-To: References: Message-ID: <50526962.7040907@oracle.com> Looks good. Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7196262/ > > 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc > Reviewed-by: > > We are using G1 and G4 in MethodHandles::generate_method_handle_dispatch > as temporary registers but the calling convention on 32-bit SPARC uses G1 > and G4 to pass the first two long arguments. > > While investigating possible fixes it turned out that there is another bug. > The appendix argument of the new JSR 292 implementation might end up in the > wrong register or stack slot on SPARC. > > To fix that issue I had to change the Java calling convention on SPARC. > While changing that code I also removed the special usage of G1 and G4 to > pass long arguments on 32-bit SPARC. In doing this I could remove a lot > of complicated code. > > The calling convention bug could potentially happen on other architectures > as well. I added assertion code that checks that the Java calling > convention can deal with the appendix argument on all architectures. > > Additionally I removed some unused code I came across. > > Here are refworkload runs to make sure that the changed calling convention > does not affect performance. > > 32-bit SPARC: > > ============================================================================ > logs.hotspot-sparc: reference_server > Benchmark Samples Mean Stdev Geomean Weight > jetstream 20 173.86 4.09 0.10 > scimark 20 400.22 2.73 0.15 > specjbb2000 20 128767.32 417.38 0.15 > specjbb2005 20 59437.83 237.98 0.25 > specjvm98 20 363.66 1.39 0.15 > volano25 20 79479.00 1652.97 0.20 > -------------------------------------------------------------------------- > Weighted Geomean 8679.73 > ============================================================================ > logs.7196262-sparc: reference_server > Benchmark Samples Mean Stdev %Diff P Significant > jetstream 20 169.95 7.96 -2.25 0.060 * > scimark 20 401.49 1.70 0.32 0.087 * > specjbb2000 20 128592.62 524.44 -0.14 0.251 * > specjbb2005 20 59438.10 208.12 0.00 0.997 * > specjvm98 20 363.23 1.28 -0.12 0.310 * > volano25 20 79675.70 949.88 0.25 0.648 * > -------------------------------------------------------------------------- > Weighted Geomean 8665.10 -0.17 > ============================================================================ > > 64-bit SPARC: > > ============================================================================ > logs.hotspot-sparcv9/: reference_server > Benchmark Samples Mean Stdev Geomean Weight > jetstream 20 155.65 0.99 0.10 > scimark 20 371.01 5.29 0.15 > specjbb2000 20 121447.56 167.26 0.15 > specjbb2005 20 55700.69 281.70 0.25 > specjvm98 20 306.40 0.93 0.15 > volano25 20 70283.25 1468.01 0.20 > -------------------------------------------------------------------------- > Weighted Geomean 7871.54 > ============================================================================ > logs.7196262-sparcv9/: reference_server > Benchmark Samples Mean Stdev %Diff P Significant > jetstream 20 155.00 3.08 -0.42 0.375 * > scimark 20 373.26 7.16 0.61 0.265 * > specjbb2000 20 121482.24 178.23 0.02 0.529 * > specjbb2005 20 55806.41 174.44 0.19 0.163 * > specjvm98 20 306.16 1.07 -0.07 0.454 * > volano25 20 69820.90 1221.87 -0.66 0.286 * > -------------------------------------------------------------------------- > Weighted Geomean 7868.14 -0.04 > ============================================================================ > > src/cpu/sparc/vm/assembler_sparc.cpp > src/cpu/sparc/vm/assembler_sparc.hpp > src/cpu/sparc/vm/methodHandles_sparc.cpp > src/cpu/sparc/vm/sharedRuntime_sparc.cpp > src/cpu/x86/vm/methodHandles_x86.cpp > src/cpu/x86/vm/sharedRuntime_x86_32.cpp > src/cpu/x86/vm/sharedRuntime_x86_64.cpp > src/share/vm/asm/register.hpp > src/share/vm/code/nmethod.cpp > src/share/vm/runtime/sharedRuntime.cpp > src/share/vm/runtime/sharedRuntime.hpp > From christian.thalinger at oracle.com Thu Sep 13 18:17:11 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 13 Sep 2012 18:17:11 -0700 Subject: Request for reviews (L): 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc In-Reply-To: <50526962.7040907@oracle.com> References: <50526962.7040907@oracle.com> Message-ID: Thank you, Vladimir. -- Chris On Sep 13, 2012, at 4:16 PM, Vladimir Kozlov wrote: > Looks good. > > Vladimir > > Christian Thalinger wrote: >> http://cr.openjdk.java.net/~twisti/7196262/ >> 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc >> Reviewed-by: >> We are using G1 and G4 in MethodHandles::generate_method_handle_dispatch as temporary registers but the calling convention on 32-bit SPARC uses G1 and G4 to pass the first two long arguments. >> While investigating possible fixes it turned out that there is another bug. >> The appendix argument of the new JSR 292 implementation might end up in the wrong register or stack slot on SPARC. >> To fix that issue I had to change the Java calling convention on SPARC. >> While changing that code I also removed the special usage of G1 and G4 to pass long arguments on 32-bit SPARC. In doing this I could remove a lot of complicated code. >> The calling convention bug could potentially happen on other architectures as well. I added assertion code that checks that the Java calling convention can deal with the appendix argument on all architectures. >> Additionally I removed some unused code I came across. >> Here are refworkload runs to make sure that the changed calling convention does not affect performance. >> 32-bit SPARC: >> ============================================================================ >> logs.hotspot-sparc: reference_server >> Benchmark Samples Mean Stdev Geomean Weight >> jetstream 20 173.86 4.09 0.10 >> scimark 20 400.22 2.73 0.15 >> specjbb2000 20 128767.32 417.38 0.15 >> specjbb2005 20 59437.83 237.98 0.25 >> specjvm98 20 363.66 1.39 0.15 >> volano25 20 79479.00 1652.97 0.20 >> -------------------------------------------------------------------------- >> Weighted Geomean 8679.73 >> ============================================================================ >> logs.7196262-sparc: reference_server >> Benchmark Samples Mean Stdev %Diff P Significant >> jetstream 20 169.95 7.96 -2.25 0.060 * >> scimark 20 401.49 1.70 0.32 0.087 * >> specjbb2000 20 128592.62 524.44 -0.14 0.251 * >> specjbb2005 20 59438.10 208.12 0.00 0.997 * >> specjvm98 20 363.23 1.28 -0.12 0.310 * >> volano25 20 79675.70 949.88 0.25 0.648 * >> -------------------------------------------------------------------------- >> Weighted Geomean 8665.10 -0.17 >> ============================================================================ >> 64-bit SPARC: >> ============================================================================ >> logs.hotspot-sparcv9/: reference_server >> Benchmark Samples Mean Stdev Geomean Weight >> jetstream 20 155.65 0.99 0.10 >> scimark 20 371.01 5.29 0.15 >> specjbb2000 20 121447.56 167.26 0.15 >> specjbb2005 20 55700.69 281.70 0.25 >> specjvm98 20 306.40 0.93 0.15 >> volano25 20 70283.25 1468.01 0.20 >> -------------------------------------------------------------------------- >> Weighted Geomean 7871.54 >> ============================================================================ >> logs.7196262-sparcv9/: reference_server >> Benchmark Samples Mean Stdev %Diff P Significant >> jetstream 20 155.00 3.08 -0.42 0.375 * >> scimark 20 373.26 7.16 0.61 0.265 * >> specjbb2000 20 121482.24 178.23 0.02 0.529 * >> specjbb2005 20 55806.41 174.44 0.19 0.163 * >> specjvm98 20 306.16 1.07 -0.07 0.454 * >> volano25 20 69820.90 1221.87 -0.66 0.286 * >> -------------------------------------------------------------------------- >> Weighted Geomean 7868.14 -0.04 >> ============================================================================ >> src/cpu/sparc/vm/assembler_sparc.cpp >> src/cpu/sparc/vm/assembler_sparc.hpp >> src/cpu/sparc/vm/methodHandles_sparc.cpp >> src/cpu/sparc/vm/sharedRuntime_sparc.cpp >> src/cpu/x86/vm/methodHandles_x86.cpp >> src/cpu/x86/vm/sharedRuntime_x86_32.cpp >> src/cpu/x86/vm/sharedRuntime_x86_64.cpp >> src/share/vm/asm/register.hpp >> src/share/vm/code/nmethod.cpp >> src/share/vm/runtime/sharedRuntime.cpp >> src/share/vm/runtime/sharedRuntime.hpp From john.r.rose at oracle.com Thu Sep 13 18:21:00 2012 From: john.r.rose at oracle.com (John Rose) Date: Thu, 13 Sep 2012 18:21:00 -0700 Subject: Request for reviews (L): 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc In-Reply-To: References: Message-ID: <414CF382-FBD5-458C-AFAC-CB177BD363CB@oracle.com> On Sep 13, 2012, at 3:45 PM, Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7196262/ That's a nice group of cleanups. Thanks for killing 'method_is_live'. Reviewed. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120913/db5da1aa/attachment.html From john.r.rose at oracle.com Thu Sep 13 21:22:57 2012 From: john.r.rose at oracle.com (John Rose) Date: Thu, 13 Sep 2012 21:22:57 -0700 Subject: loop customization: a key challenge In-Reply-To: <504EFFAD.7080708@oracle.com> References: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> <504E367E.4010103@oracle.com> <6DB21119-33CF-449A-B05C-04F15F473E96@oracle.com> <504EFFAD.7080708@oracle.com> Message-ID: <17620024-6449-4D4E-B588-8E268E6F699A@oracle.com> On Sep 11, 2012, at 2:09 AM, Aleksey Shipilev wrote: > On 09/10/2012 11:13 PM, John Rose wrote: >> The methods strongly hint to implementors and users that bind and >> findVirtual + bindTo perform the obvious devirtualization. > > I haven't been following jsr292 development recently. Is that kind of > hint already favored by Hotspot? I would like to try to do this > conversion by hand and see if it helps some of our benchmarks here. Yes, findVirtual followed by bindTo routinely devirtualizes the handle. The JDK 8 version of this logic is DirectMethodHandle.maybeRebind, a private method that replaces a "virtual" or "interface" reference by a "special" one. >> Of course, loop customization does not really appear to be a case of >> devirtualization? unless perhaps you treat each loop superstructure as a >> defender method on the loop kernel interface. Then L1_X is really X.L1, >> and the JVM optimization framework can swing into action, cloning L1 >> into each receiver type X. So that's a MH-free way to think about it. > > Yes, it appears that your suggestion applies to whatever > "superstructure" there is in the code. I would like to highlight that > the obvious demarcation point for such the superstructure is the method > call, and we can probably spare some of the syntactical pain and > hard-core conspiracy from the library developers. I.e. if there is a way > to say > > class Arrays { > void apply(T[] array, @PleaseSpecialize UnaryOperator op) { > // blah-blah, apply > } > ... > } > > ...albeit being more limiting in "superstructure" sense, it is more > clear than explicitly writing up jsr292 magics. Of course, in this > sense, we can even try to desugar this to jsr292 with the conversion > outlined by John, e.g. into: > > class Arrays { > void apply(T[] array, @PleaseSpecialize UnaryOperator op) { > MH superOp = #apply$$Internal.bindTo(op); > superOp.invoke(array); > } > void apply$$Internal(UnaryOperator op, T[] array) { > // blah-blah, apply > } > } Method calling is *not* the natural place to do this specialization, and this is true even though (in a different sense) almost everything is done with method calls. In the example, putting the bindTo operation next to the invoke operation forces it to happen just before each bulk request. This is OK for a one-shot API, but is probably not general enough to build up big frameworks like fork-join. The reason for this is that combining a superstructure with a kernel is logically distinct from executing the combined result, and in general needs to be specified separately from the execution. So we need a notation for a "combination request" which is distinct from and prior to the "invocation request". Representing this combination request via an annotation on a named method obliges designers to give a name to every point where the combination is requested. This is unnatural in about the same way as requiring every "break" or "continue" to have a label. (Or, every closure.) The *action* of combining a superstructure (I want a better name here!) with a kernel (this is a standard name) should of course be expressed as an operator or method. This operator or method must be kept distinct from the action of executing the combination. It could be MH::bindTo, or (probably better) it should be something more explicit. Alternatively, instead of an operator, it could be some kind of closure expression, one which makes it clear what are the roles of superstructure and kernel. The compiler and runtime would manage the caching of combined forms, at the point where the closure expression was implemented. (As an alternative, the combination can be made automagic, as an implicit preparation to invocation. That's basically what an inlining JIT compiler does. But my big point in all of this is that the user and/or library writer probably needs to help the system with hints about the various aspects of combination.) I hope this helps. I realize it is fairly vague. The problem is completely real, though. ? John From forax at univ-mlv.fr Fri Sep 14 00:05:24 2012 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 14 Sep 2012 09:05:24 +0200 Subject: loop customization: a key challenge In-Reply-To: <17620024-6449-4D4E-B588-8E268E6F699A@oracle.com> References: <3FB1D375-2757-47BA-8D54-13F8A266A6E6@oracle.com> <504E367E.4010103@oracle.com> <6DB21119-33CF-449A-B05C-04F15F473E96@oracle.com> <504EFFAD.7080708@oracle.com> <17620024-6449-4D4E-B588-8E268E6F699A@oracle.com> Message-ID: <5052D734.1010908@univ-mlv.fr> On 09/14/2012 06:22 AM, John Rose wrote: > On Sep 11, 2012, at 2:09 AM, Aleksey Shipilev wrote: > >> On 09/10/2012 11:13 PM, John Rose wrote: >>> The methods strongly hint to implementors and users that bind and >>> findVirtual + bindTo perform the obvious devirtualization. >> I haven't been following jsr292 development recently. Is that kind of >> hint already favored by Hotspot? I would like to try to do this >> conversion by hand and see if it helps some of our benchmarks here. > Yes, findVirtual followed by bindTo routinely devirtualizes the handle. > The JDK 8 version of this logic is DirectMethodHandle.maybeRebind, > a private method that replaces a "virtual" or "interface" reference by a "special" one. > >>> Of course, loop customization does not really appear to be a case of >>> devirtualization? unless perhaps you treat each loop superstructure as a >>> defender method on the loop kernel interface. Then L1_X is really X.L1, >>> and the JVM optimization framework can swing into action, cloning L1 >>> into each receiver type X. So that's a MH-free way to think about it. >> Yes, it appears that your suggestion applies to whatever >> "superstructure" there is in the code. I would like to highlight that >> the obvious demarcation point for such the superstructure is the method >> call, and we can probably spare some of the syntactical pain and >> hard-core conspiracy from the library developers. I.e. if there is a way >> to say >> >> class Arrays { >> void apply(T[] array, @PleaseSpecialize UnaryOperator op) { >> // blah-blah, apply >> } >> ... >> } >> >> ...albeit being more limiting in "superstructure" sense, it is more >> clear than explicitly writing up jsr292 magics. Of course, in this >> sense, we can even try to desugar this to jsr292 with the conversion >> outlined by John, e.g. into: >> >> class Arrays { >> void apply(T[] array, @PleaseSpecialize UnaryOperator op) { >> MH superOp = #apply$$Internal.bindTo(op); >> superOp.invoke(array); >> } >> void apply$$Internal(UnaryOperator op, T[] array) { >> // blah-blah, apply >> } >> } > Method calling is *not* the natural place to do this specialization, > and this is true even though (in a different sense) almost everything > is done with method calls. In the example, putting the bindTo > operation next to the invoke operation forces it to happen > just before each bulk request. This is OK for a one-shot API, > but is probably not general enough to build up big frameworks > like fork-join. > > The reason for this is that combining a superstructure with a kernel > is logically distinct from executing the combined result, and in general > needs to be specified separately from the execution. > > So we need a notation for a "combination request" which is distinct > from and prior to the "invocation request". > > Representing this combination request via an annotation on a named > method obliges designers to give a name to every point where > the combination is requested. This is unnatural in about the same > way as requiring every "break" or "continue" to have a label. > (Or, every closure.) > > The *action* of combining a superstructure (I want a better name here!) > with a kernel (this is a standard name) should of course be expressed as > an operator or method. This operator or method must be kept distinct > from the action of executing the combination. It could be MH::bindTo, > or (probably better) it should be something more explicit. > > Alternatively, instead of an operator, it could be some kind of closure > expression, one which makes it clear what are the roles of superstructure > and kernel. The compiler and runtime would manage the caching of > combined forms, at the point where the closure expression was implemented. > > (As an alternative, the combination can be made automagic, as an implicit > preparation to invocation. That's basically what an inlining JIT compiler does. > But my big point in all of this is that the user and/or library writer probably needs > to help the system with hints about the various aspects of combination.) > > I hope this helps. I realize it is fairly vague. The problem is completely real, though. > > ? John Here is a modest benchmark of different ways to implement combination of map/reduce/forEach etc for lambdas using iterators, Brian's pipeline, Rich Hickey's combiners and method handles. https://github.com/forax/lambda-perf I'm not a pro of writing benchmark so this one is may be flawed and there is no point to try to use it with jdk7 or jdk8 before b56 because the method handles tests will fall into the well know perf hole that was fixed recently. As John said, the combination is fully explicit and there is no caching at all, a to to reduce or forEach in a loop will create the method handle blob again and again. John, Christian, when asking for the assembly code, I was not able to find a version that combine the whole method handle blob as a single method as this is done when invokedynamic is used, is it the way it's supposed to work or did it miss something ? cheers, R?mi From aleksey.shipilev at oracle.com Fri Sep 14 01:48:47 2012 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Fri, 14 Sep 2012 12:48:47 +0400 Subject: RFR (S): TraceTypeProfile as diagnostic option In-Reply-To: <505207F7.8050009@oracle.com> References: <5051C6EA.5000605@oracle.com> <505207F7.8050009@oracle.com> Message-ID: <5052EF6F.60901@oracle.com> Thanks, CR 7198499. -Aleksey. On 09/13/2012 08:21 PM, Vladimir Kozlov wrote: > File RFE and I will "sponsor" this changes. It may take time since > currently our repos are prepared for NoPermGen changes so we are only > pushing bug fixes. > > Thanks, > Vladimir > > Aleksey Shipilev wrote: >> http://shipilev.net/pub/jdk/hotspot/typeprofile/webrev-1/ >> >> As per Vladimir request, I did the experiment what are the increases in >> binary sizes with this change, these are below 100 bytes in either >> client or server VM. >> >> Is there something else I need to take care of to get this patch in >> (e.g. submit the CR?) >> >> Thanks, >> Aleksey. From john.coomes at oracle.com Fri Sep 14 01:49:45 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 08:49:45 +0000 Subject: hg: hsx/hotspot-comp: Added tag jdk8-b56 for changeset 76844579fa4b Message-ID: <20120914084945.8654047ABE@hg.openjdk.java.net> Changeset: 56264ff5e1d5 Author: katleman Date: 2012-09-13 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/56264ff5e1d5 Added tag jdk8-b56 for changeset 76844579fa4b ! .hgtags From john.coomes at oracle.com Fri Sep 14 01:49:52 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 08:49:52 +0000 Subject: hg: hsx/hotspot-comp/corba: Added tag jdk8-b56 for changeset bf1bb47414e1 Message-ID: <20120914084954.96ECD47ABF@hg.openjdk.java.net> Changeset: 1500fe4849e8 Author: katleman Date: 2012-09-13 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/1500fe4849e8 Added tag jdk8-b56 for changeset bf1bb47414e1 ! .hgtags From john.coomes at oracle.com Fri Sep 14 01:50:00 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 08:50:00 +0000 Subject: hg: hsx/hotspot-comp/jaxp: Added tag jdk8-b56 for changeset f19d63b2119a Message-ID: <20120914085012.E18BB47AC0@hg.openjdk.java.net> Changeset: 40bbed6d2173 Author: katleman Date: 2012-09-13 13:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/40bbed6d2173 Added tag jdk8-b56 for changeset f19d63b2119a ! .hgtags From john.coomes at oracle.com Fri Sep 14 01:50:22 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 08:50:22 +0000 Subject: hg: hsx/hotspot-comp/jaxws: Added tag jdk8-b56 for changeset 7813455ccdb0 Message-ID: <20120914085028.6796F47AC1@hg.openjdk.java.net> Changeset: e099c1eea1ed Author: katleman Date: 2012-09-13 13:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/e099c1eea1ed Added tag jdk8-b56 for changeset 7813455ccdb0 ! .hgtags From john.coomes at oracle.com Fri Sep 14 02:01:24 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 09:01:24 +0000 Subject: hg: hsx/hotspot-comp/langtools: 5 new changesets Message-ID: <20120914090138.D9DDE47AC3@hg.openjdk.java.net> Changeset: 873ddd9f4900 Author: jfranck Date: 2012-08-31 10:37 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/873ddd9f4900 7151010: Add compiler support for repeating annotations Reviewed-by: jjg, mcimadamore + src/share/classes/com/sun/tools/javac/code/Annotations.java ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java ! src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java + test/tools/javac/annotations/repeatingAnnotations/BasicRepeatingAnnotations.java + test/tools/javac/annotations/repeatingAnnotations/CheckTargets.java + test/tools/javac/annotations/repeatingAnnotations/ContainerHasRepeatedContained.java + test/tools/javac/annotations/repeatingAnnotations/DelayRepeatedContainer.java + test/tools/javac/annotations/repeatingAnnotations/InvalidTarget.java + test/tools/javac/annotations/repeatingAnnotations/MissingContainedBy.java + test/tools/javac/annotations/repeatingAnnotations/MissingContainerFor.java + test/tools/javac/annotations/repeatingAnnotations/NestedContainers.java + test/tools/javac/annotations/repeatingAnnotations/RepMemberAnno.java + test/tools/javac/annotations/repeatingAnnotations/RepSelfMemberAnno.java + test/tools/javac/annotations/repeatingAnnotations/RepeatingAndContainerPresent.java + test/tools/javac/annotations/repeatingAnnotations/SelfRepeatingAnnotations.java + test/tools/javac/annotations/repeatingAnnotations/SingleRepeatingAndContainer.java + test/tools/javac/annotations/repeatingAnnotations/UseWrongContainedBy.java + test/tools/javac/annotations/repeatingAnnotations/UseWrongContainerFor.java + test/tools/javac/annotations/repeatingAnnotations/WrongContainedBy.java + test/tools/javac/annotations/repeatingAnnotations/WrongContainerFor.java ! test/tools/javac/diags/examples.not-yet.txt + test/tools/javac/diags/examples/ContainedByDocumentedMismatch.java + test/tools/javac/diags/examples/ContainedByInheritedMismatch.java + test/tools/javac/diags/examples/ContainedByNoValue.java + test/tools/javac/diags/examples/ContainedByNonDefault.java + test/tools/javac/diags/examples/ContainedByRetentionMismatch.java + test/tools/javac/diags/examples/ContainedByTargetMismatch.java + test/tools/javac/diags/examples/ContainedByWrongValueType.java ! test/tools/javac/diags/examples/DuplicateAnnotation.java + test/tools/javac/diags/examples/DuplicateAnnotationJava8.java + test/tools/javac/diags/examples/RepeatingAnnotationAndContainer.java + test/tools/javac/diags/examples/WrongContainedBy.java + test/tools/javac/diags/examples/WrongContainerFor.java Changeset: 3673c811be1c Author: jjh Date: 2012-09-05 08:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/3673c811be1c 7185778: javah error "Not a valid class name" on class names with dollar signs Reviewed-by: jjg ! src/share/classes/com/sun/tools/javah/JavahTask.java + test/tools/javah/T7185778.java Changeset: 3f36e22c8c39 Author: lana Date: 2012-09-05 12:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/3f36e22c8c39 Merge Changeset: 363e9198b9de Author: lana Date: 2012-09-10 17:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/363e9198b9de Merge Changeset: 27ba086a9b60 Author: katleman Date: 2012-09-13 13:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/27ba086a9b60 Added tag jdk8-b56 for changeset 363e9198b9de ! .hgtags From john.coomes at oracle.com Fri Sep 14 01:52:09 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 14 Sep 2012 08:52:09 +0000 Subject: hg: hsx/hotspot-comp/jdk: 37 new changesets Message-ID: <20120914085917.8D6A547AC2@hg.openjdk.java.net> Changeset: b4f7ef73dfe8 Author: skovatch Date: 2012-09-05 09:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b4f7ef73dfe8 7187834: [macosx] Usage of private API in macosx 2D implementation causes Apple Store rejection Reviewed-by: prr, igor ! src/macosx/native/sun/awt/ImageSurfaceData.h ! src/macosx/native/sun/awt/ImageSurfaceData.m ! src/macosx/native/sun/awt/QuartzRenderer.m ! src/macosx/native/sun/awt/QuartzSurfaceData.m Changeset: 2f0385880af9 Author: lana Date: 2012-09-05 13:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2f0385880af9 Merge - make/sun/beans/Makefile - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java - test/java/lang/invoke/MaxTest.java - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: e23311e924b1 Author: alexsch Date: 2012-08-29 15:54 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e23311e924b1 7171045: [macosx] There are no enter or exit events reported against 8b39 for MouseEventsDuringDrag. Reviewed-by: anthony, serb ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/PlatformWindow.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/native/sun/awt/AWTView.h ! src/macosx/native/sun/awt/AWTView.m ! src/macosx/native/sun/awt/AWTWindow.m Changeset: 9201b1df64e6 Author: leonidr Date: 2012-08-29 19:53 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9201b1df64e6 7124375: [macosx] Focus isn't transfered as expected between components Reviewed-by: art, ant, serb ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWKeyboardFocusManagerPeer.java ! src/macosx/classes/sun/lwawt/LWToolkit.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java ! src/share/classes/sun/awt/HToolkit.java ! src/share/classes/sun/awt/HeadlessToolkit.java ! src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java ! src/share/classes/sun/awt/KeyboardFocusManagerPeerProvider.java ! src/share/classes/sun/awt/SunToolkit.java ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java ! src/solaris/classes/sun/awt/X11/XDialogPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java ! src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java ! src/windows/classes/sun/awt/windows/WKeyboardFocusManagerPeer.java ! src/windows/classes/sun/awt/windows/WToolkit.java Changeset: 63d52eb20ce2 Author: denis Date: 2012-08-30 01:17 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/63d52eb20ce2 7192887: java/awt/Window/Grab/GrabTest.java still failed (fix failed for CR 7149068) Reviewed-by: ant, serb ! src/solaris/classes/sun/awt/X11/XWindowPeer.java Changeset: 973693566c46 Author: malenkov Date: 2012-08-31 14:32 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/973693566c46 7192955: Introspector overide PropertyDescriptor for generic type field defined in super class Reviewed-by: rupashka ! src/share/classes/java/beans/PropertyDescriptor.java + test/java/beans/Introspector/Test7192955.java Changeset: b291b6d220c7 Author: malenkov Date: 2012-08-31 14:49 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b291b6d220c7 7186794: Setter not found. PropertyDescriptor(PropertyDescriptor,PropertyDescriptor) Reviewed-by: rupashka ! src/share/classes/java/beans/PropertyDescriptor.java + test/java/beans/Introspector/Test7186794.java ! test/java/beans/Introspector/Test7189112.java Changeset: 0e007aa6f9db Author: ant Date: 2012-08-31 16:31 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0e007aa6f9db 6981400: Tabbing between textfield do not work properly when ALT+TAB 7157015: [macosx] Situation when KeyEventDispatcher doesn't work on AWT but does on Swing. 7121442: Regression : Reopen CR 6458497 still reproducible using JDK 7. Reviewed-by: art, leonidr ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/Dialog.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/SequencedEvent.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java ! src/share/classes/sun/awt/SunToolkit.java + src/share/classes/sun/awt/TimedWindowEvent.java ! src/solaris/classes/sun/awt/X11/XBaseWindow.java ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/windows/native/sun/windows/awt_Window.cpp + test/java/awt/Focus/6981400/Test1.java + test/java/awt/Focus/6981400/Test2.java + test/java/awt/Focus/6981400/Test3.java Changeset: 2e21ec4be419 Author: malenkov Date: 2012-09-04 13:12 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2e21ec4be419 7169395: Exception throws due to the changes in JDK 7 object tranversal and break backward compatibility Reviewed-by: art ! src/share/classes/java/beans/XMLEncoder.java + test/java/beans/XMLEncoder/Test7169395.java Changeset: 8cd13c3a78e6 Author: malenkov Date: 2012-09-04 20:50 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8cd13c3a78e6 7195106: REGRESSION : There is no way to get Icon inf, once Softreference is released Reviewed-by: rupashka ! src/share/classes/java/beans/Introspector.java ! test/java/beans/Introspector/6380849/TestBeanInfo.java + test/java/beans/Introspector/Test7195106.java Changeset: 8ce89b1bc0a1 Author: serb Date: 2012-09-05 21:40 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8ce89b1bc0a1 7124523: [macosx] b216: Mising part of applet UI Reviewed-by: denis, alexsch ! src/share/demo/applets/CardTest/example1.html ! src/share/demo/applets/DitherTest/example1.html Changeset: 7cbbaf670b57 Author: lana Date: 2012-09-05 17:33 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7cbbaf670b57 Merge - make/sun/beans/Makefile ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/KeyboardFocusManager.java - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/SunToolkit.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java ! src/solaris/classes/sun/awt/X11/XToolkit.java - test/java/lang/invoke/MaxTest.java Changeset: 640e8e1eb0d8 Author: lana Date: 2012-09-05 20:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/640e8e1eb0d8 Merge Changeset: c4c69b4d9ace Author: weijun Date: 2012-08-29 11:03 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c4c69b4d9ace 7184815: [macosx] Need to read Kerberos config in files Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/Config.java Changeset: cf492d1199dc Author: dxu Date: 2012-08-30 12:55 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cf492d1199dc 7193710: ByteArrayOutputStream Javadoc contains unclosed element Reviewed-by: dholmes, alanb, ulfzibis ! src/share/classes/java/io/ByteArrayOutputStream.java ! src/share/classes/java/io/InputStreamReader.java Changeset: 11bfec75d333 Author: lancea Date: 2012-08-30 13:38 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/11bfec75d333 7193683: DriverManager Iterator Warning cleanup Reviewed-by: lancea Contributed-by: Dan Xu ! src/share/classes/java/sql/DriverManager.java Changeset: 0a2565113920 Author: mullan Date: 2012-08-30 14:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0a2565113920 6995421: Eliminate the static dependency to sun.security.ec.ECKeyFactory Reviewed-by: mullan, vinnie Contributed-by: stephen.flores at oracle.com ! make/sun/security/ec/Makefile ! make/sun/security/other/Makefile ! src/share/classes/sun/security/ec/ECKeyFactory.java ! src/share/classes/sun/security/ec/ECParameters.java ! src/share/classes/sun/security/ec/ECPublicKeyImpl.java ! src/share/classes/sun/security/ec/SunECEntries.java ! src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java ! src/share/classes/sun/security/x509/AlgorithmId.java ! test/sun/security/ec/TestEC.java ! test/sun/security/pkcs11/ec/ReadCertificates.java ! test/sun/security/pkcs11/ec/ReadPKCS12.java ! test/sun/security/pkcs11/ec/TestECDH.java ! test/sun/security/pkcs11/ec/TestECDSA.java Changeset: 47f8ba39265c Author: mullan Date: 2012-08-30 14:42 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/47f8ba39265c Merge Changeset: 334b6f0c547f Author: lana Date: 2012-08-30 16:51 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/334b6f0c547f Merge Changeset: f9b11772c4b2 Author: smarks Date: 2012-08-30 18:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f9b11772c4b2 7195099: update problem list with RMI test failures Reviewed-by: alanb ! test/ProblemList.txt Changeset: bdfcc13ddeb4 Author: jfranck Date: 2012-08-31 10:52 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bdfcc13ddeb4 7151010: Add compiler support for repeating annotations Reviewed-by: darcy, jjg + src/share/classes/java/lang/annotation/ContainerFor.java Changeset: da1436b21bc2 Author: coffeys Date: 2012-08-31 12:25 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/da1436b21bc2 7195063: [TEST] jtreg flags com/sun/corba/cachedSocket/7056731.sh with Error failure. Reviewed-by: chegar ! test/com/sun/corba/cachedSocket/7056731.sh Changeset: 33f8ca2b4ba3 Author: alanb Date: 2012-08-31 12:25 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/33f8ca2b4ba3 7033824: TEST_BUG: java/nio/file/Files/CopyAndMove.java fails intermittently Reviewed-by: chegar ! test/java/nio/file/Files/CopyAndMove.java Changeset: 3338019fda8a Author: sla Date: 2009-06-19 16:50 +0300 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3338019fda8a 6853676: OperatingSystemMXBean.TotalPhysicalMemorySize has incorrect value Reviewed-by: alanb, dholmes, sla Contributed-by: Dmytro Sheyko ! src/windows/native/com/sun/management/OperatingSystem_md.c + test/com/sun/management/OperatingSystemMXBean/MemoryStatusOverflow.java Changeset: b7b33a3c9df0 Author: xuelei Date: 2012-09-04 02:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b7b33a3c9df0 7195733: TEST_BUG: sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java failing Reviewed-by: chegar, alanb, xuelei Contributed-by: Eric Wang ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java Changeset: 7dda50fe8e1c Author: jjg Date: 2012-09-04 12:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7dda50fe8e1c 7195519: OutOfMemoryError in docs build after 7151010 Reviewed-by: darcy ! make/docs/Makefile Changeset: 5ca450af2a9e Author: sla Date: 2012-09-05 14:42 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5ca450af2a9e 6963102: Testcase failures sun/tools/jstatd/jstatdExternalRegistry.sh and sun/tools/jstatd/jstatdDefaults.sh Summary: Make tests more resilient by allowing for more error messages from jps Reviewed-by: alanb, rbackman, dsamersoff ! test/sun/tools/jstatd/jpsOutput1.awk Changeset: e129833555f6 Author: valeriep Date: 2012-09-04 18:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e129833555f6 7044060: Need to support NSA Suite B Cryptography algorithms Summary: Add support for DSA parameter generation and OIDs for NSA Suite B algorithms. Reviewed-by: vinnie ! src/share/classes/com/sun/crypto/provider/AESCipher.java ! src/share/classes/com/sun/crypto/provider/AESWrapCipher.java ! src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java ! src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java ! src/share/classes/com/sun/crypto/provider/SunJCE.java ! src/share/classes/java/security/interfaces/DSAKeyPairGenerator.java + src/share/classes/java/security/spec/DSAGenParameterSpec.java ! src/share/classes/sun/security/ec/SunECEntries.java ! src/share/classes/sun/security/pkcs11/P11Cipher.java ! src/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/share/classes/sun/security/provider/DSA.java ! src/share/classes/sun/security/provider/DSAKeyPairGenerator.java ! src/share/classes/sun/security/provider/DSAParameterGenerator.java ! src/share/classes/sun/security/provider/ParameterCache.java ! src/share/classes/sun/security/provider/SunEntries.java ! src/share/classes/sun/security/x509/AlgorithmId.java ! test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java + test/sun/security/pkcs11/ec/TestECDH2.java + test/sun/security/pkcs11/ec/TestECDSA2.java + test/sun/security/provider/DSA/TestAlgParameterGenerator.java + test/sun/security/provider/DSA/TestDSA2.java ! test/sun/security/provider/DSA/TestKeyPairGenerator.java Changeset: cc5a6c4d600e Author: valeriep Date: 2012-09-05 10:26 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cc5a6c4d600e Merge Changeset: c39370c75d63 Author: lana Date: 2012-09-05 11:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c39370c75d63 Merge - make/sun/beans/Makefile - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: f1838d040cc7 Author: ksrini Date: 2012-09-05 11:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f1838d040cc7 7194005: (launcher) needs to be enhanced for 64-bit jar file handling Reviewed-by: darcy, sherman ! src/share/bin/jli_util.h ! src/share/bin/manifest_info.h ! src/share/bin/parse_manifest.c ! src/solaris/bin/jexec.c + test/tools/launcher/BigJar.java ! test/tools/launcher/TestHelper.java Changeset: 6b7d23a2ba72 Author: lana Date: 2012-09-05 20:03 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6b7d23a2ba72 Merge Changeset: 06094fdc1f4d Author: lana Date: 2012-09-10 17:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/06094fdc1f4d Merge Changeset: 9c434431d013 Author: ohair Date: 2012-09-11 13:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9c434431d013 7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__ 7180608: Sort the order of object files when building shared libraries Reviewed-by: ohrstrom, erikj, tbell ! make/common/Defs.gmk ! make/common/Demo.gmk ! make/common/Library.gmk ! make/common/Program.gmk ! src/macosx/native/com/apple/laf/ScreenMenu.m ! src/macosx/native/com/sun/media/sound/PLATFORM_API_MacOSX_MidiOut.c ! src/macosx/native/com/sun/media/sound/PLATFORM_API_MacOSX_MidiUtils.c ! src/macosx/native/sun/awt/CSystemColors.m ! src/macosx/native/sun/awt/CTextPipe.m ! src/macosx/native/sun/font/AWTStrike.m ! src/share/back/error_messages.h ! src/share/back/log_messages.h ! src/share/demo/jvmti/hprof/debug_malloc.h ! src/share/demo/jvmti/hprof/hprof_error.h ! src/share/demo/jvmti/hprof/hprof_util.h ! src/share/demo/jvmti/java_crw_demo/java_crw_demo.c ! src/share/instrument/JPLISAssert.h ! src/share/native/sun/awt/debug/debug_assert.h ! src/share/native/sun/awt/debug/debug_mem.c ! src/share/native/sun/awt/debug/debug_trace.h ! src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h ! src/share/npt/utf.h ! src/share/transport/shmem/shmemBase.h ! src/solaris/instrument/EncodingSupport_md.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiIn.cpp ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiOut.c ! src/windows/native/sun/java2d/d3d/D3DPipeline.h ! src/windows/native/sun/windows/alloc.h ! src/windows/native/sun/windows/awt_Debug.h ! src/windows/native/sun/windows/awt_Toolkit.h ! src/windows/transport/shmem/shmem_md.c Changeset: 7ecc3a7cbe36 Author: ohair Date: 2012-09-11 14:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7ecc3a7cbe36 Merge ! make/common/Program.gmk - make/sun/beans/Makefile - src/share/classes/java/lang/annotation/ContainerAnnotation.java - src/share/classes/java/text/BreakDictionary.java - src/share/classes/java/text/CollationRules.java - src/share/classes/java/text/DictionaryBasedBreakIterator.java - src/share/classes/java/text/RuleBasedBreakIterator.java - src/share/classes/sun/beans/editors/BooleanEditor.java - src/share/classes/sun/beans/editors/ByteEditor.java - src/share/classes/sun/beans/editors/ColorEditor.java - src/share/classes/sun/beans/editors/DoubleEditor.java - src/share/classes/sun/beans/editors/EnumEditor.java - src/share/classes/sun/beans/editors/FloatEditor.java - src/share/classes/sun/beans/editors/FontEditor.java - src/share/classes/sun/beans/editors/IntegerEditor.java - src/share/classes/sun/beans/editors/LongEditor.java - src/share/classes/sun/beans/editors/NumberEditor.java - src/share/classes/sun/beans/editors/ShortEditor.java - src/share/classes/sun/beans/editors/StringEditor.java - src/share/classes/sun/beans/infos/ComponentBeanInfo.java - src/share/classes/sun/text/resources/BreakIteratorInfo_th.java - src/share/classes/sun/text/resources/BreakIteratorRules_th.java - src/share/classes/sun/text/resources/CollationData_ar.java - src/share/classes/sun/text/resources/CollationData_be.java - src/share/classes/sun/text/resources/CollationData_bg.java - src/share/classes/sun/text/resources/CollationData_ca.java - src/share/classes/sun/text/resources/CollationData_cs.java - src/share/classes/sun/text/resources/CollationData_da.java - src/share/classes/sun/text/resources/CollationData_de.java - src/share/classes/sun/text/resources/CollationData_el.java - src/share/classes/sun/text/resources/CollationData_en.java - src/share/classes/sun/text/resources/CollationData_es.java - src/share/classes/sun/text/resources/CollationData_et.java - src/share/classes/sun/text/resources/CollationData_fi.java - src/share/classes/sun/text/resources/CollationData_fr.java - src/share/classes/sun/text/resources/CollationData_hi.java - src/share/classes/sun/text/resources/CollationData_hr.java - src/share/classes/sun/text/resources/CollationData_hu.java - src/share/classes/sun/text/resources/CollationData_is.java - src/share/classes/sun/text/resources/CollationData_it.java - src/share/classes/sun/text/resources/CollationData_iw.java - src/share/classes/sun/text/resources/CollationData_ja.java - src/share/classes/sun/text/resources/CollationData_ko.java - src/share/classes/sun/text/resources/CollationData_lt.java - src/share/classes/sun/text/resources/CollationData_lv.java - src/share/classes/sun/text/resources/CollationData_mk.java - src/share/classes/sun/text/resources/CollationData_nl.java - src/share/classes/sun/text/resources/CollationData_no.java - src/share/classes/sun/text/resources/CollationData_pl.java - src/share/classes/sun/text/resources/CollationData_pt.java - src/share/classes/sun/text/resources/CollationData_ro.java - src/share/classes/sun/text/resources/CollationData_ru.java - src/share/classes/sun/text/resources/CollationData_sk.java - src/share/classes/sun/text/resources/CollationData_sl.java - src/share/classes/sun/text/resources/CollationData_sq.java - src/share/classes/sun/text/resources/CollationData_sr.java - src/share/classes/sun/text/resources/CollationData_sr_Latn.java - src/share/classes/sun/text/resources/CollationData_sv.java - src/share/classes/sun/text/resources/CollationData_th.java - src/share/classes/sun/text/resources/CollationData_tr.java - src/share/classes/sun/text/resources/CollationData_uk.java - src/share/classes/sun/text/resources/CollationData_vi.java - src/share/classes/sun/text/resources/CollationData_zh.java - src/share/classes/sun/text/resources/CollationData_zh_HK.java - src/share/classes/sun/text/resources/CollationData_zh_TW.java - src/share/classes/sun/text/resources/FormatData_ar.java - src/share/classes/sun/text/resources/FormatData_ar_AE.java - src/share/classes/sun/text/resources/FormatData_ar_BH.java - src/share/classes/sun/text/resources/FormatData_ar_DZ.java - src/share/classes/sun/text/resources/FormatData_ar_EG.java - src/share/classes/sun/text/resources/FormatData_ar_IQ.java - src/share/classes/sun/text/resources/FormatData_ar_JO.java - src/share/classes/sun/text/resources/FormatData_ar_KW.java - src/share/classes/sun/text/resources/FormatData_ar_LB.java - src/share/classes/sun/text/resources/FormatData_ar_LY.java - src/share/classes/sun/text/resources/FormatData_ar_MA.java - src/share/classes/sun/text/resources/FormatData_ar_OM.java - src/share/classes/sun/text/resources/FormatData_ar_QA.java - src/share/classes/sun/text/resources/FormatData_ar_SA.java - src/share/classes/sun/text/resources/FormatData_ar_SD.java - src/share/classes/sun/text/resources/FormatData_ar_SY.java - src/share/classes/sun/text/resources/FormatData_ar_TN.java - src/share/classes/sun/text/resources/FormatData_ar_YE.java - src/share/classes/sun/text/resources/FormatData_be.java - src/share/classes/sun/text/resources/FormatData_be_BY.java - src/share/classes/sun/text/resources/FormatData_bg.java - src/share/classes/sun/text/resources/FormatData_bg_BG.java - src/share/classes/sun/text/resources/FormatData_ca.java - src/share/classes/sun/text/resources/FormatData_ca_ES.java - src/share/classes/sun/text/resources/FormatData_cs.java - src/share/classes/sun/text/resources/FormatData_cs_CZ.java - src/share/classes/sun/text/resources/FormatData_da.java - src/share/classes/sun/text/resources/FormatData_da_DK.java - src/share/classes/sun/text/resources/FormatData_de.java - src/share/classes/sun/text/resources/FormatData_de_AT.java - src/share/classes/sun/text/resources/FormatData_de_CH.java - src/share/classes/sun/text/resources/FormatData_de_DE.java - src/share/classes/sun/text/resources/FormatData_de_LU.java - src/share/classes/sun/text/resources/FormatData_el.java - src/share/classes/sun/text/resources/FormatData_el_CY.java - src/share/classes/sun/text/resources/FormatData_el_GR.java - src/share/classes/sun/text/resources/FormatData_en.java - src/share/classes/sun/text/resources/FormatData_en_AU.java - src/share/classes/sun/text/resources/FormatData_en_CA.java - src/share/classes/sun/text/resources/FormatData_en_GB.java - src/share/classes/sun/text/resources/FormatData_en_IE.java - src/share/classes/sun/text/resources/FormatData_en_IN.java - src/share/classes/sun/text/resources/FormatData_en_MT.java - src/share/classes/sun/text/resources/FormatData_en_NZ.java - src/share/classes/sun/text/resources/FormatData_en_PH.java - src/share/classes/sun/text/resources/FormatData_en_SG.java - src/share/classes/sun/text/resources/FormatData_en_US.java - src/share/classes/sun/text/resources/FormatData_en_ZA.java - src/share/classes/sun/text/resources/FormatData_es.java - src/share/classes/sun/text/resources/FormatData_es_AR.java - src/share/classes/sun/text/resources/FormatData_es_BO.java - src/share/classes/sun/text/resources/FormatData_es_CL.java - src/share/classes/sun/text/resources/FormatData_es_CO.java - src/share/classes/sun/text/resources/FormatData_es_CR.java - src/share/classes/sun/text/resources/FormatData_es_DO.java - src/share/classes/sun/text/resources/FormatData_es_EC.java - src/share/classes/sun/text/resources/FormatData_es_ES.java - src/share/classes/sun/text/resources/FormatData_es_GT.java - src/share/classes/sun/text/resources/FormatData_es_HN.java - src/share/classes/sun/text/resources/FormatData_es_MX.java - src/share/classes/sun/text/resources/FormatData_es_NI.java - src/share/classes/sun/text/resources/FormatData_es_PA.java - src/share/classes/sun/text/resources/FormatData_es_PE.java - src/share/classes/sun/text/resources/FormatData_es_PR.java - src/share/classes/sun/text/resources/FormatData_es_PY.java - src/share/classes/sun/text/resources/FormatData_es_SV.java - src/share/classes/sun/text/resources/FormatData_es_US.java - src/share/classes/sun/text/resources/FormatData_es_UY.java - src/share/classes/sun/text/resources/FormatData_es_VE.java - src/share/classes/sun/text/resources/FormatData_et.java - src/share/classes/sun/text/resources/FormatData_et_EE.java - src/share/classes/sun/text/resources/FormatData_fi.java - src/share/classes/sun/text/resources/FormatData_fi_FI.java - src/share/classes/sun/text/resources/FormatData_fr.java - src/share/classes/sun/text/resources/FormatData_fr_BE.java - src/share/classes/sun/text/resources/FormatData_fr_CA.java - src/share/classes/sun/text/resources/FormatData_fr_CH.java - src/share/classes/sun/text/resources/FormatData_fr_FR.java - src/share/classes/sun/text/resources/FormatData_fr_LU.java - src/share/classes/sun/text/resources/FormatData_ga.java - src/share/classes/sun/text/resources/FormatData_ga_IE.java - src/share/classes/sun/text/resources/FormatData_hi_IN.java - src/share/classes/sun/text/resources/FormatData_hr.java - src/share/classes/sun/text/resources/FormatData_hr_HR.java - src/share/classes/sun/text/resources/FormatData_hu.java - src/share/classes/sun/text/resources/FormatData_hu_HU.java - src/share/classes/sun/text/resources/FormatData_in.java - src/share/classes/sun/text/resources/FormatData_in_ID.java - src/share/classes/sun/text/resources/FormatData_is.java - src/share/classes/sun/text/resources/FormatData_is_IS.java - src/share/classes/sun/text/resources/FormatData_it.java - src/share/classes/sun/text/resources/FormatData_it_CH.java - src/share/classes/sun/text/resources/FormatData_it_IT.java - src/share/classes/sun/text/resources/FormatData_iw.java - src/share/classes/sun/text/resources/FormatData_iw_IL.java - src/share/classes/sun/text/resources/FormatData_ja.java - src/share/classes/sun/text/resources/FormatData_ja_JP.java - src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java - src/share/classes/sun/text/resources/FormatData_ko.java - src/share/classes/sun/text/resources/FormatData_ko_KR.java - src/share/classes/sun/text/resources/FormatData_lt.java - src/share/classes/sun/text/resources/FormatData_lt_LT.java - src/share/classes/sun/text/resources/FormatData_lv.java - src/share/classes/sun/text/resources/FormatData_lv_LV.java - src/share/classes/sun/text/resources/FormatData_mk.java - src/share/classes/sun/text/resources/FormatData_mk_MK.java - src/share/classes/sun/text/resources/FormatData_ms.java - src/share/classes/sun/text/resources/FormatData_ms_MY.java - src/share/classes/sun/text/resources/FormatData_mt.java - src/share/classes/sun/text/resources/FormatData_mt_MT.java - src/share/classes/sun/text/resources/FormatData_nl.java - src/share/classes/sun/text/resources/FormatData_nl_BE.java - src/share/classes/sun/text/resources/FormatData_nl_NL.java - src/share/classes/sun/text/resources/FormatData_no.java - src/share/classes/sun/text/resources/FormatData_no_NO.java - src/share/classes/sun/text/resources/FormatData_no_NO_NY.java - src/share/classes/sun/text/resources/FormatData_pl.java - src/share/classes/sun/text/resources/FormatData_pl_PL.java - src/share/classes/sun/text/resources/FormatData_pt.java - src/share/classes/sun/text/resources/FormatData_pt_BR.java - src/share/classes/sun/text/resources/FormatData_pt_PT.java - src/share/classes/sun/text/resources/FormatData_ro.java - src/share/classes/sun/text/resources/FormatData_ro_RO.java - src/share/classes/sun/text/resources/FormatData_ru.java - src/share/classes/sun/text/resources/FormatData_ru_RU.java - src/share/classes/sun/text/resources/FormatData_sk.java - src/share/classes/sun/text/resources/FormatData_sk_SK.java - src/share/classes/sun/text/resources/FormatData_sl.java - src/share/classes/sun/text/resources/FormatData_sl_SI.java - src/share/classes/sun/text/resources/FormatData_sq.java - src/share/classes/sun/text/resources/FormatData_sq_AL.java - src/share/classes/sun/text/resources/FormatData_sr.java - src/share/classes/sun/text/resources/FormatData_sr_BA.java - src/share/classes/sun/text/resources/FormatData_sr_CS.java - src/share/classes/sun/text/resources/FormatData_sr_Latn.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java - src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java - src/share/classes/sun/text/resources/FormatData_sr_ME.java - src/share/classes/sun/text/resources/FormatData_sr_RS.java - src/share/classes/sun/text/resources/FormatData_sv.java - src/share/classes/sun/text/resources/FormatData_sv_SE.java - src/share/classes/sun/text/resources/FormatData_th.java - src/share/classes/sun/text/resources/FormatData_th_TH.java - src/share/classes/sun/text/resources/FormatData_th_TH_TH.java - src/share/classes/sun/text/resources/FormatData_tr.java - src/share/classes/sun/text/resources/FormatData_tr_TR.java - src/share/classes/sun/text/resources/FormatData_uk.java - src/share/classes/sun/text/resources/FormatData_uk_UA.java - src/share/classes/sun/text/resources/FormatData_vi.java - src/share/classes/sun/text/resources/FormatData_vi_VN.java - src/share/classes/sun/text/resources/FormatData_zh.java - src/share/classes/sun/text/resources/FormatData_zh_CN.java - src/share/classes/sun/text/resources/FormatData_zh_HK.java - src/share/classes/sun/text/resources/FormatData_zh_SG.java - src/share/classes/sun/text/resources/FormatData_zh_TW.java - src/share/classes/sun/text/resources/thai_dict - src/share/classes/sun/util/EmptyListResourceBundle.java - src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template - src/share/classes/sun/util/LocaleServiceProviderPool.java - src/share/classes/sun/util/TimeZoneNameUtility.java - src/share/classes/sun/util/resources/CalendarData_ar.properties - src/share/classes/sun/util/resources/CalendarData_be.properties - src/share/classes/sun/util/resources/CalendarData_bg.properties - src/share/classes/sun/util/resources/CalendarData_ca.properties - src/share/classes/sun/util/resources/CalendarData_cs.properties - src/share/classes/sun/util/resources/CalendarData_da.properties - src/share/classes/sun/util/resources/CalendarData_de.properties - src/share/classes/sun/util/resources/CalendarData_el.properties - src/share/classes/sun/util/resources/CalendarData_el_CY.properties - src/share/classes/sun/util/resources/CalendarData_en.properties - src/share/classes/sun/util/resources/CalendarData_en_GB.properties - src/share/classes/sun/util/resources/CalendarData_en_IE.properties - src/share/classes/sun/util/resources/CalendarData_en_MT.properties - src/share/classes/sun/util/resources/CalendarData_es.properties - src/share/classes/sun/util/resources/CalendarData_es_ES.properties - src/share/classes/sun/util/resources/CalendarData_es_US.properties - src/share/classes/sun/util/resources/CalendarData_et.properties - src/share/classes/sun/util/resources/CalendarData_fi.properties - src/share/classes/sun/util/resources/CalendarData_fr.properties - src/share/classes/sun/util/resources/CalendarData_fr_CA.properties - src/share/classes/sun/util/resources/CalendarData_hi.properties - src/share/classes/sun/util/resources/CalendarData_hr.properties - src/share/classes/sun/util/resources/CalendarData_hu.properties - src/share/classes/sun/util/resources/CalendarData_in_ID.properties - src/share/classes/sun/util/resources/CalendarData_is.properties - src/share/classes/sun/util/resources/CalendarData_it.properties - src/share/classes/sun/util/resources/CalendarData_iw.properties - src/share/classes/sun/util/resources/CalendarData_ja.properties - src/share/classes/sun/util/resources/CalendarData_ko.properties - src/share/classes/sun/util/resources/CalendarData_lt.properties - src/share/classes/sun/util/resources/CalendarData_lv.properties - src/share/classes/sun/util/resources/CalendarData_mk.properties - src/share/classes/sun/util/resources/CalendarData_ms_MY.properties - src/share/classes/sun/util/resources/CalendarData_mt.properties - src/share/classes/sun/util/resources/CalendarData_mt_MT.properties - src/share/classes/sun/util/resources/CalendarData_nl.properties - src/share/classes/sun/util/resources/CalendarData_no.properties - src/share/classes/sun/util/resources/CalendarData_pl.properties - src/share/classes/sun/util/resources/CalendarData_pt.properties - src/share/classes/sun/util/resources/CalendarData_pt_PT.properties - src/share/classes/sun/util/resources/CalendarData_ro.properties - src/share/classes/sun/util/resources/CalendarData_ru.properties - src/share/classes/sun/util/resources/CalendarData_sk.properties - src/share/classes/sun/util/resources/CalendarData_sl.properties - src/share/classes/sun/util/resources/CalendarData_sq.properties - src/share/classes/sun/util/resources/CalendarData_sr.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CalendarData_sv.properties - src/share/classes/sun/util/resources/CalendarData_th.properties - src/share/classes/sun/util/resources/CalendarData_tr.properties - src/share/classes/sun/util/resources/CalendarData_uk.properties - src/share/classes/sun/util/resources/CalendarData_vi.properties - src/share/classes/sun/util/resources/CalendarData_zh.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties - src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties - src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties - src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties - src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties - src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties - src/share/classes/sun/util/resources/CurrencyNames_de.properties - src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties - src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties - src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties - src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties - src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties - src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties - src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties - src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties - src/share/classes/sun/util/resources/CurrencyNames_en_US.properties - src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties - src/share/classes/sun/util/resources/CurrencyNames_es.properties - src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties - src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties - src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties - src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties - src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties - src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties - src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties - src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties - src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties - src/share/classes/sun/util/resources/CurrencyNames_es_US.properties - src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties - src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties - src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties - src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties - src/share/classes/sun/util/resources/CurrencyNames_fr.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties - src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties - src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties - src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties - src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties - src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties - src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties - src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties - src/share/classes/sun/util/resources/CurrencyNames_it.properties - src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties - src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties - src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties - src/share/classes/sun/util/resources/CurrencyNames_ja.properties - src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties - src/share/classes/sun/util/resources/CurrencyNames_ko.properties - src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties - src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties - src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties - src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties - src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties - src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties - src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties - src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties - src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties - src/share/classes/sun/util/resources/CurrencyNames_pt.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties - src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties - src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties - src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties - src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties - src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties - src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties - src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties - src/share/classes/sun/util/resources/CurrencyNames_sv.properties - src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties - src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties - src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties - src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties - src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties - src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java - src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java - src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties - src/share/classes/sun/util/resources/LocaleNames_ar.properties - src/share/classes/sun/util/resources/LocaleNames_be.properties - src/share/classes/sun/util/resources/LocaleNames_bg.properties - src/share/classes/sun/util/resources/LocaleNames_ca.properties - src/share/classes/sun/util/resources/LocaleNames_cs.properties - src/share/classes/sun/util/resources/LocaleNames_da.properties - src/share/classes/sun/util/resources/LocaleNames_de.properties - src/share/classes/sun/util/resources/LocaleNames_el.properties - src/share/classes/sun/util/resources/LocaleNames_el_CY.properties - src/share/classes/sun/util/resources/LocaleNames_en.properties - src/share/classes/sun/util/resources/LocaleNames_en_MT.properties - src/share/classes/sun/util/resources/LocaleNames_en_PH.properties - src/share/classes/sun/util/resources/LocaleNames_en_SG.properties - src/share/classes/sun/util/resources/LocaleNames_es.properties - src/share/classes/sun/util/resources/LocaleNames_es_US.properties - src/share/classes/sun/util/resources/LocaleNames_et.properties - src/share/classes/sun/util/resources/LocaleNames_fi.properties - src/share/classes/sun/util/resources/LocaleNames_fr.properties - src/share/classes/sun/util/resources/LocaleNames_ga.properties - src/share/classes/sun/util/resources/LocaleNames_hi.properties - src/share/classes/sun/util/resources/LocaleNames_hr.properties - src/share/classes/sun/util/resources/LocaleNames_hu.properties - src/share/classes/sun/util/resources/LocaleNames_in.properties - src/share/classes/sun/util/resources/LocaleNames_is.properties - src/share/classes/sun/util/resources/LocaleNames_it.properties - src/share/classes/sun/util/resources/LocaleNames_iw.properties - src/share/classes/sun/util/resources/LocaleNames_ja.properties - src/share/classes/sun/util/resources/LocaleNames_ko.properties - src/share/classes/sun/util/resources/LocaleNames_lt.properties - src/share/classes/sun/util/resources/LocaleNames_lv.properties - src/share/classes/sun/util/resources/LocaleNames_mk.properties - src/share/classes/sun/util/resources/LocaleNames_ms.properties - src/share/classes/sun/util/resources/LocaleNames_mt.properties - src/share/classes/sun/util/resources/LocaleNames_nl.properties - src/share/classes/sun/util/resources/LocaleNames_no.properties - src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties - src/share/classes/sun/util/resources/LocaleNames_pl.properties - src/share/classes/sun/util/resources/LocaleNames_pt.properties - src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties - src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties - src/share/classes/sun/util/resources/LocaleNames_ro.properties - src/share/classes/sun/util/resources/LocaleNames_ru.properties - src/share/classes/sun/util/resources/LocaleNames_sk.properties - src/share/classes/sun/util/resources/LocaleNames_sl.properties - src/share/classes/sun/util/resources/LocaleNames_sq.properties - src/share/classes/sun/util/resources/LocaleNames_sr.properties - src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties - src/share/classes/sun/util/resources/LocaleNames_sv.properties - src/share/classes/sun/util/resources/LocaleNames_th.properties - src/share/classes/sun/util/resources/LocaleNames_tr.properties - src/share/classes/sun/util/resources/LocaleNames_uk.properties - src/share/classes/sun/util/resources/LocaleNames_vi.properties - src/share/classes/sun/util/resources/LocaleNames_zh.properties - src/share/classes/sun/util/resources/LocaleNames_zh_HK.java - src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties - src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties - src/share/classes/sun/util/resources/TimeZoneNames_de.java - src/share/classes/sun/util/resources/TimeZoneNames_en.java - src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java - src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java - src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java - src/share/classes/sun/util/resources/TimeZoneNames_es.java - src/share/classes/sun/util/resources/TimeZoneNames_fr.java - src/share/classes/sun/util/resources/TimeZoneNames_hi.java - src/share/classes/sun/util/resources/TimeZoneNames_it.java - src/share/classes/sun/util/resources/TimeZoneNames_ja.java - src/share/classes/sun/util/resources/TimeZoneNames_ko.java - src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java - src/share/classes/sun/util/resources/TimeZoneNames_sv.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java - src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java - src/solaris/classes/sun/awt/X11/XTextTransferHelper.java - test/java/lang/invoke/MaxTest.java - test/javax/swing/JColorChooser/Test4380468.html - test/javax/swing/JColorChooser/Test4380468.java Changeset: 2e9eeef2909b Author: katleman Date: 2012-09-12 15:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2e9eeef2909b Merge Changeset: 472145010fcc Author: katleman Date: 2012-09-13 13:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/472145010fcc Added tag jdk8-b56 for changeset 2e9eeef2909b ! .hgtags From vladimir.kozlov at oracle.com Fri Sep 14 09:17:37 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 14 Sep 2012 09:17:37 -0700 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect Message-ID: <505358A1.8050407@oracle.com> http://cr.openjdk.java.net/~kvn/7196199/webrev Upper bits (64-255) of XMM (YMM) registers (used for vectors in compiled code) are destroyed in 32 bit VM because movsd instructions are used to saved/restored xmm registers in safepoint interrupt handler. Also in 64-bit VM upper half of YMM registers are not saved in safepoint interrupt handler. Always save full (128 bit) XMM registers in 32-bit VM if UseSSE >= 2. Save upper half of YMM registers during loop safepoint if a compiled method has 256bit vectors. Thanks, Vladimir From roland.westrelin at oracle.com Fri Sep 14 10:12:43 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 14 Sep 2012 19:12:43 +0200 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: <505358A1.8050407@oracle.com> References: <505358A1.8050407@oracle.com> Message-ID: Isn't fp_runtime_fallback in assembler_x86.cpp only called from c1/interpreter. In that case does it need to be changed? sharedRuntime_x86_32.cpp: there's a typo line 72 // to aligh Otherwise, it looks good to me. Roland. From vladimir.kozlov at oracle.com Fri Sep 14 10:19:29 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 14 Sep 2012 10:19:29 -0700 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: References: <505358A1.8050407@oracle.com> Message-ID: <50536721.2070800@oracle.com> Roland Westrelin wrote: > Isn't fp_runtime_fallback in assembler_x86.cpp only called from c1/interpreter. In that case does it need to be changed? I can't find the way to assert there to make sure it is NOT called from C2 code generation (which may happen in a future). Any suggestions are welcome. > > sharedRuntime_x86_32.cpp: there's a typo line 72 // to aligh Fixed. > > Otherwise, it looks good to me. Thanks, Vladimir > > Roland. > From roland.westrelin at oracle.com Fri Sep 14 10:23:55 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 14 Sep 2012 19:23:55 +0200 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: <50536721.2070800@oracle.com> References: <505358A1.8050407@oracle.com> <50536721.2070800@oracle.com> Message-ID: <75FDA722-B5B0-49F3-A340-E09BEE122785@oracle.com> >> Isn't fp_runtime_fallback in assembler_x86.cpp only called from c1/interpreter. In that case does it need to be changed? > > I can't find the way to assert there to make sure it is NOT called from C2 code generation (which may happen in a future). Any suggestions are welcome. Yes, you're right. And the extra register save/restore instructions are not a big deal anyway. Roland. From vladimir.kozlov at oracle.com Fri Sep 14 10:33:05 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 14 Sep 2012 10:33:05 -0700 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: <75FDA722-B5B0-49F3-A340-E09BEE122785@oracle.com> References: <505358A1.8050407@oracle.com> <50536721.2070800@oracle.com> <75FDA722-B5B0-49F3-A340-E09BEE122785@oracle.com> Message-ID: <50536A51.3080905@oracle.com> Roland Westrelin wrote: >>> Isn't fp_runtime_fallback in assembler_x86.cpp only called from c1/interpreter. In that case does it need to be changed? >> I can't find the way to assert there to make sure it is NOT called from C2 code generation (which may happen in a future). Any suggestions are welcome. > > Yes, you're right. And the extra register save/restore instructions are not a big deal anyway. > > Roland. Thanks, Vladimir From christian.thalinger at oracle.com Fri Sep 14 16:04:59 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 14 Sep 2012 16:04:59 -0700 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: <505358A1.8050407@oracle.com> References: <505358A1.8050407@oracle.com> Message-ID: <1045A5AD-F72D-43F2-A0F0-9B53ADF28EFF@oracle.com> Looks good. -- Chris On Sep 14, 2012, at 9:17 AM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7196199/webrev > > Upper bits (64-255) of XMM (YMM) registers (used for vectors in compiled code) are destroyed in 32 bit VM because movsd instructions are used to saved/restored xmm registers in safepoint interrupt handler. Also in 64-bit VM upper half of YMM registers are not saved in safepoint interrupt handler. > > Always save full (128 bit) XMM registers in 32-bit VM if UseSSE >= 2. > Save upper half of YMM registers during loop safepoint if a compiled method has 256bit vectors. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Fri Sep 14 16:29:30 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 14 Sep 2012 16:29:30 -0700 Subject: Request for reviews (L): 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect In-Reply-To: <1045A5AD-F72D-43F2-A0F0-9B53ADF28EFF@oracle.com> References: <505358A1.8050407@oracle.com> <1045A5AD-F72D-43F2-A0F0-9B53ADF28EFF@oracle.com> Message-ID: <5053BDDA.2080506@oracle.com> Thanks, Christian Vladimir Christian Thalinger wrote: > Looks good. -- Chris > > On Sep 14, 2012, at 9:17 AM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7196199/webrev >> >> Upper bits (64-255) of XMM (YMM) registers (used for vectors in compiled code) are destroyed in 32 bit VM because movsd instructions are used to saved/restored xmm registers in safepoint interrupt handler. Also in 64-bit VM upper half of YMM registers are not saved in safepoint interrupt handler. >> >> Always save full (128 bit) XMM registers in 32-bit VM if UseSSE >= 2. >> Save upper half of YMM registers during loop safepoint if a compiled method has 256bit vectors. >> >> Thanks, >> Vladimir > From john.coomes at oracle.com Sat Sep 15 02:00:50 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Sat, 15 Sep 2012 09:00:50 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 26 new changesets Message-ID: <20120915090217.85CC947B0B@hg.openjdk.java.net> Changeset: 6124ff421829 Author: katleman Date: 2012-09-06 17:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6124ff421829 Added tag jdk8-b55 for changeset af0c8a080851 ! .hgtags Changeset: d70102c4cb73 Author: katleman Date: 2012-09-13 13:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d70102c4cb73 Added tag jdk8-b56 for changeset 6124ff421829 ! .hgtags Changeset: da91efe96a93 Author: coleenp Date: 2012-09-01 13:25 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/da91efe96a93 6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa , stefank , mgerdin , never ! agent/doc/clhsdb.html ! agent/src/os/bsd/ps_core.c ! agent/src/os/linux/ps_core.c ! agent/src/os/solaris/proc/saproc.cpp ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/HSDB.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciBaseObject.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMetadata.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java + agent/src/share/classes/sun/jvm/hotspot/classfile/ClassLoaderData.java ! agent/src/share/classes/sun/jvm/hotspot/code/DebugInfoReadStream.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java - agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSPermGen.java ! agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/ParallelScavengeHeap.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeDisassembler.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithKlass.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGenGen.java ! agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGenGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/ContigPermSpace.java ! agent/src/share/classes/sun/jvm/hotspot/memory/Dictionary.java ! agent/src/share/classes/sun/jvm/hotspot/memory/DictionaryEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java ! agent/src/share/classes/sun/jvm/hotspot/memory/Generation.java ! agent/src/share/classes/sun/jvm/hotspot/memory/GenerationFactory.java - agent/src/share/classes/sun/jvm/hotspot/memory/PermGen.java ! agent/src/share/classes/sun/jvm/hotspot/memory/PlaceholderEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SharedHeap.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java ! agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java ! agent/src/share/classes/sun/jvm/hotspot/oops/AccessFlags.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Array.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/BooleanField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ByteField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CharField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CheckedExceptionElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolder.java - agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolderKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethodKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java + agent/src/share/classes/sun/jvm/hotspot/oops/DefaultMetadataVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/DoubleField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ExceptionTableElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Field.java + agent/src/share/classes/sun/jvm/hotspot/oops/FieldVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/FloatField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java + agent/src/share/classes/sun/jvm/hotspot/oops/InstanceClassLoaderKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceMirrorKlass.java + agent/src/share/classes/sun/jvm/hotspot/oops/InstanceRefKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/IntField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java - agent/src/share/classes/sun/jvm/hotspot/oops/KlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/LocalVariableTableElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/LongField.java + agent/src/share/classes/sun/jvm/hotspot/oops/Metadata.java + agent/src/share/classes/sun/jvm/hotspot/oops/MetadataField.java + agent/src/share/classes/sun/jvm/hotspot/oops/MetadataVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodDataKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ShortField.java ! agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java ! agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlassKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java ! agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java ! agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java ! agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java ! agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java ! agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/JNIid.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VMObjectFactory.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java ! agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java ! agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java ! agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java ! agent/src/share/classes/sun/jvm/hotspot/tools/StackTrace.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/CodeViewerPanel.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadAddressTreeNodeAdapter.java - agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadOopTreeNodeAdapter.java ! agent/src/share/classes/sun/jvm/hotspot/ui/tree/CTypeTreeNodeAdapter.java + agent/src/share/classes/sun/jvm/hotspot/ui/tree/MetadataTreeNodeAdapter.java ! agent/src/share/classes/sun/jvm/hotspot/ui/tree/OopTreeNodeAdapter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java + agent/src/share/classes/sun/jvm/hotspot/utilities/GenericArray.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java + agent/src/share/classes/sun/jvm/hotspot/utilities/IntArray.java + agent/src/share/classes/sun/jvm/hotspot/utilities/KlassArray.java + agent/src/share/classes/sun/jvm/hotspot/utilities/MethodArray.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PointerFinder.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PointerLocation.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java + agent/src/share/classes/sun/jvm/hotspot/utilities/U1Array.java + agent/src/share/classes/sun/jvm/hotspot/utilities/U2Array.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactory.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFrame.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaMethod.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaScriptEngine.java + agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSMetadata.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/launcher.make ! make/solaris/makefiles/mapfile-vers-COMPILER1 ! make/solaris/makefiles/mapfile-vers-COMPILER2 ! make/solaris/makefiles/mapfile-vers-TIERED ! make/solaris/makefiles/product.make ! make/solaris/makefiles/profiled.make - make/solaris/makefiles/reorder_COMPILER1_amd64 - make/solaris/makefiles/reorder_COMPILER1_i486 - make/solaris/makefiles/reorder_COMPILER1_sparc - make/solaris/makefiles/reorder_COMPILER1_sparcv9 - make/solaris/makefiles/reorder_COMPILER2_amd64 - make/solaris/makefiles/reorder_COMPILER2_i486 - make/solaris/makefiles/reorder_COMPILER2_sparc - make/solaris/makefiles/reorder_COMPILER2_sparcv9 - make/solaris/makefiles/reorder_CORE_i486 - make/solaris/makefiles/reorder_CORE_sparc - make/solaris/makefiles/reorder_CORE_sparcv9 - make/solaris/makefiles/reorder_TIERED_amd64 - make/solaris/makefiles/reorder_TIERED_i486 - make/solaris/makefiles/reorder_TIERED_sparc - make/solaris/makefiles/reorder_TIERED_sparcv9 ! make/solaris/makefiles/sparc.make ! make/solaris/makefiles/sparcWorks.make ! make/solaris/makefiles/vm.make - make/solaris/reorder.sh ! make/windows/create_obj_files.sh ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/assembler_sparc.inline.hpp ! src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/c1_globals_sparc.hpp ! src/cpu/sparc/vm/c2_globals_sparc.hpp ! src/cpu/sparc/vm/cppInterpreter_sparc.cpp ! src/cpu/sparc/vm/debug_sparc.cpp - src/cpu/sparc/vm/dump_sparc.cpp ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/sparc/vm/frame_sparc.hpp ! src/cpu/sparc/vm/frame_sparc.inline.hpp ! src/cpu/sparc/vm/icBuffer_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/interpreterRT_sparc.cpp ! src/cpu/sparc/vm/interpreter_sparc.cpp + src/cpu/sparc/vm/metaspaceShared_sparc.cpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/sparc/vm/methodHandles_sparc.hpp ! src/cpu/sparc/vm/nativeInst_sparc.cpp ! src/cpu/sparc/vm/nativeInst_sparc.hpp ! src/cpu/sparc/vm/relocInfo_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.hpp ! src/cpu/sparc/vm/vtableStubs_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/bytecodeInterpreter_x86.cpp ! src/cpu/x86/vm/c1_CodeStubs_x86.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/c1_MacroAssembler_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/c1_globals_x86.hpp ! src/cpu/x86/vm/c2_globals_x86.hpp ! src/cpu/x86/vm/cppInterpreter_x86.cpp - src/cpu/x86/vm/dump_x86_32.cpp - src/cpu/x86/vm/dump_x86_64.cpp ! src/cpu/x86/vm/frame_x86.cpp ! src/cpu/x86/vm/frame_x86.hpp ! src/cpu/x86/vm/frame_x86.inline.hpp ! src/cpu/x86/vm/icBuffer_x86.cpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/interpreterRT_x86_32.cpp ! src/cpu/x86/vm/interpreterRT_x86_64.cpp ! src/cpu/x86/vm/interpreter_x86_32.cpp ! src/cpu/x86/vm/interpreter_x86_64.cpp + src/cpu/x86/vm/metaspaceShared_x86_32.cpp + src/cpu/x86/vm/metaspaceShared_x86_64.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.hpp ! src/cpu/x86/vm/relocInfo_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/cpu/x86/vm/vtableStubs_x86_32.cpp ! src/cpu/x86/vm/vtableStubs_x86_64.cpp ! src/cpu/x86/vm/x86.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/cpu/zero/vm/bytecodeInterpreter_zero.cpp ! src/cpu/zero/vm/bytecodeInterpreter_zero.hpp ! src/cpu/zero/vm/cppInterpreter_zero.cpp ! src/cpu/zero/vm/cppInterpreter_zero.hpp - src/cpu/zero/vm/dump_zero.cpp ! src/cpu/zero/vm/entry_zero.hpp ! src/cpu/zero/vm/frame_zero.cpp ! src/cpu/zero/vm/frame_zero.inline.hpp ! src/cpu/zero/vm/icBuffer_zero.cpp ! src/cpu/zero/vm/interp_masm_zero.cpp ! src/cpu/zero/vm/interpreterFrame_zero.hpp ! src/cpu/zero/vm/interpreterRT_zero.cpp ! src/cpu/zero/vm/interpreter_zero.cpp ! src/cpu/zero/vm/interpreter_zero.hpp + src/cpu/zero/vm/metaspaceShared_zero.cpp ! src/cpu/zero/vm/sharedRuntime_zero.cpp ! src/cpu/zero/vm/sharkFrame_zero.hpp ! src/cpu/zero/vm/shark_globals_zero.hpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/cpu/zero/vm/templateInterpreter_zero.cpp ! src/cpu/zero/vm/templateTable_zero.cpp ! src/os/bsd/dtrace/generateJvmOffsets.cpp ! src/os/bsd/dtrace/jhelper.d ! src/os/bsd/dtrace/libjvm_db.c ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/jhelper.d ! src/os/solaris/dtrace/libjvm_db.c ! src/os/solaris/vm/dtraceJSDT_solaris.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp ! src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp ! src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp ! src/os_cpu/linux_x86/vm/globals_linux_x86.hpp ! src/os_cpu/linux_zero/vm/globals_linux_zero.hpp ! src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp ! src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp ! src/os_cpu/windows_x86/vm/globals_windows_x86.hpp ! src/share/tools/whitebox/sun/hotspot/WhiteBox.java ! src/share/vm/adlc/formssel.cpp ! src/share/vm/adlc/main.cpp ! src/share/vm/adlc/output_c.cpp ! src/share/vm/adlc/output_h.cpp ! src/share/vm/asm/codeBuffer.cpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/c1/c1_CodeStubs.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_InstructionPrinter.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_MacroAssembler.hpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp ! src/share/vm/c1/c1_ValueType.cpp ! src/share/vm/c1/c1_ValueType.hpp ! src/share/vm/c1/c1_globals.hpp ! src/share/vm/ci/bcEscapeAnalyzer.cpp ! src/share/vm/ci/bcEscapeAnalyzer.hpp ! src/share/vm/ci/ciArrayKlass.cpp ! src/share/vm/ci/ciArrayKlass.hpp - src/share/vm/ci/ciArrayKlassKlass.hpp + src/share/vm/ci/ciBaseObject.cpp + src/share/vm/ci/ciBaseObject.hpp - src/share/vm/ci/ciCPCache.cpp - src/share/vm/ci/ciCPCache.hpp ! src/share/vm/ci/ciClassList.hpp ! src/share/vm/ci/ciConstantPoolCache.hpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciField.cpp ! src/share/vm/ci/ciInstance.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/ci/ciInstanceKlass.hpp - src/share/vm/ci/ciInstanceKlassKlass.cpp - src/share/vm/ci/ciInstanceKlassKlass.hpp ! src/share/vm/ci/ciKlass.cpp ! src/share/vm/ci/ciKlass.hpp - src/share/vm/ci/ciKlassKlass.cpp - src/share/vm/ci/ciKlassKlass.hpp ! src/share/vm/ci/ciMemberName.cpp + src/share/vm/ci/ciMetadata.cpp + src/share/vm/ci/ciMetadata.hpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/ci/ciMethodData.hpp ! src/share/vm/ci/ciMethodHandle.cpp - src/share/vm/ci/ciMethodKlass.cpp - src/share/vm/ci/ciMethodKlass.hpp ! src/share/vm/ci/ciObjArrayKlass.cpp ! src/share/vm/ci/ciObjArrayKlass.hpp - src/share/vm/ci/ciObjArrayKlassKlass.cpp - src/share/vm/ci/ciObjArrayKlassKlass.hpp ! src/share/vm/ci/ciObject.cpp ! src/share/vm/ci/ciObject.hpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/ci/ciObjectFactory.hpp ! src/share/vm/ci/ciStreams.cpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/ci/ciSymbol.hpp ! src/share/vm/ci/ciType.cpp ! src/share/vm/ci/ciType.hpp ! src/share/vm/ci/ciTypeArrayKlass.cpp ! src/share/vm/ci/ciTypeArrayKlass.hpp - src/share/vm/ci/ciTypeArrayKlassKlass.cpp - src/share/vm/ci/ciTypeArrayKlassKlass.hpp ! src/share/vm/ci/ciTypeFlow.cpp ! src/share/vm/ci/compilerInterface.hpp ! src/share/vm/classfile/altHashing.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/classLoader.cpp + src/share/vm/classfile/classLoaderData.cpp + src/share/vm/classfile/classLoaderData.hpp + src/share/vm/classfile/classLoaderData.inline.hpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/javaAssertions.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/placeholders.cpp ! src/share/vm/classfile/placeholders.hpp ! src/share/vm/classfile/resolutionErrors.cpp ! src/share/vm/classfile/resolutionErrors.hpp ! src/share/vm/classfile/stackMapFrame.hpp ! src/share/vm/classfile/stackMapTable.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/verificationType.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/verifier.hpp ! src/share/vm/classfile/vmSymbols.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/code/compiledIC.cpp ! src/share/vm/code/compiledIC.hpp ! src/share/vm/code/debugInfo.cpp ! src/share/vm/code/debugInfo.hpp ! src/share/vm/code/debugInfoRec.cpp ! src/share/vm/code/debugInfoRec.hpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/code/dependencies.hpp ! src/share/vm/code/exceptionHandlerTable.hpp ! src/share/vm/code/icBuffer.cpp ! src/share/vm/code/icBuffer.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/oopRecorder.cpp ! src/share/vm/code/oopRecorder.hpp ! src/share/vm/code/relocInfo.cpp ! src/share/vm/code/relocInfo.hpp ! src/share/vm/code/scopeDesc.cpp ! src/share/vm/code/scopeDesc.hpp ! src/share/vm/code/vtableStubs.cpp ! src/share/vm/code/vtableStubs.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/compiler/compileLog.cpp ! src/share/vm/compiler/compileLog.hpp ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.hpp ! src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parNew/parOopClosures.hpp ! src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp ! src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp ! src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp ! src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp ! src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp ! src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/concurrentGCThread.cpp ! src/share/vm/gc_implementation/shared/immutableSpace.cpp ! src/share/vm/gc_implementation/shared/immutableSpace.hpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/gc_implementation/shared/markSweep.hpp ! src/share/vm/gc_implementation/shared/markSweep.inline.hpp ! src/share/vm/gc_implementation/shared/mutableSpace.cpp ! src/share/vm/gc_implementation/shared/mutableSpace.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/gc_interface/gcCause.cpp ! src/share/vm/gc_interface/gcCause.hpp ! src/share/vm/interpreter/abstractInterpreter.hpp ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/bytecode.hpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/interpreter/bytecodeInterpreter.hpp ! src/share/vm/interpreter/bytecodeStream.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/bytecodes.cpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/interpreter/linkResolver.hpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/oopMapCache.hpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/interpreter/rewriter.hpp ! src/share/vm/interpreter/templateInterpreter.cpp ! src/share/vm/interpreter/templateInterpreter.hpp ! src/share/vm/interpreter/templateTable.cpp ! src/share/vm/interpreter/templateTable.hpp ! src/share/vm/memory/allocation.cpp ! src/share/vm/memory/allocation.hpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/binaryTreeDictionary.hpp ! src/share/vm/memory/blockOffsetTable.cpp ! src/share/vm/memory/blockOffsetTable.hpp ! src/share/vm/memory/blockOffsetTable.inline.hpp ! src/share/vm/memory/cardTableModRefBS.hpp ! src/share/vm/memory/cardTableRS.cpp ! src/share/vm/memory/cardTableRS.hpp - src/share/vm/memory/classify.cpp - src/share/vm/memory/classify.hpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp - src/share/vm/memory/compactPermGen.hpp - src/share/vm/memory/compactingPermGenGen.cpp - src/share/vm/memory/compactingPermGenGen.hpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/defNewGeneration.hpp - src/share/vm/memory/dump.cpp ! src/share/vm/memory/filemap.cpp ! src/share/vm/memory/filemap.hpp ! src/share/vm/memory/freeBlockDictionary.hpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/genCollectedHeap.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/memory/genOopClosures.inline.hpp ! src/share/vm/memory/genRemSet.cpp ! src/share/vm/memory/genRemSet.hpp ! src/share/vm/memory/generation.cpp ! src/share/vm/memory/generation.hpp ! src/share/vm/memory/generationSpec.cpp ! src/share/vm/memory/generationSpec.hpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/iterator.cpp ! src/share/vm/memory/iterator.hpp ! src/share/vm/memory/memRegion.hpp + src/share/vm/memory/metadataFactory.hpp + src/share/vm/memory/metaspace.cpp + src/share/vm/memory/metaspace.hpp + src/share/vm/memory/metaspaceCounters.cpp + src/share/vm/memory/metaspaceCounters.hpp + src/share/vm/memory/metaspaceShared.cpp + src/share/vm/memory/metaspaceShared.hpp ! src/share/vm/memory/modRefBarrierSet.hpp ! src/share/vm/memory/oopFactory.cpp ! src/share/vm/memory/oopFactory.hpp - src/share/vm/memory/permGen.cpp - src/share/vm/memory/permGen.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp - src/share/vm/memory/restore.cpp - src/share/vm/memory/serialize.cpp ! src/share/vm/memory/sharedHeap.cpp ! src/share/vm/memory/sharedHeap.hpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/specialized_oop_closures.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp + src/share/vm/oops/annotations.cpp + src/share/vm/oops/annotations.hpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp - src/share/vm/oops/arrayKlassKlass.cpp - src/share/vm/oops/arrayKlassKlass.hpp ! src/share/vm/oops/arrayOop.hpp + src/share/vm/oops/compiledICHolder.cpp + src/share/vm/oops/compiledICHolder.hpp - src/share/vm/oops/compiledICHolderKlass.cpp - src/share/vm/oops/compiledICHolderKlass.hpp - src/share/vm/oops/compiledICHolderOop.cpp - src/share/vm/oops/compiledICHolderOop.hpp + src/share/vm/oops/constMethod.cpp + src/share/vm/oops/constMethod.hpp - src/share/vm/oops/constMethodKlass.cpp - src/share/vm/oops/constMethodKlass.hpp - src/share/vm/oops/constMethodOop.cpp - src/share/vm/oops/constMethodOop.hpp + src/share/vm/oops/constantPool.cpp + src/share/vm/oops/constantPool.hpp - src/share/vm/oops/constantPoolKlass.cpp - src/share/vm/oops/constantPoolKlass.hpp - src/share/vm/oops/constantPoolOop.cpp - src/share/vm/oops/constantPoolOop.hpp + src/share/vm/oops/cpCache.cpp + src/share/vm/oops/cpCache.hpp - src/share/vm/oops/cpCacheKlass.cpp - src/share/vm/oops/cpCacheKlass.hpp - src/share/vm/oops/cpCacheOop.cpp - src/share/vm/oops/cpCacheOop.hpp ! src/share/vm/oops/fieldInfo.hpp ! src/share/vm/oops/fieldStreams.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/generateOopMap.hpp + src/share/vm/oops/instanceClassLoaderKlass.cpp + src/share/vm/oops/instanceClassLoaderKlass.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp - src/share/vm/oops/instanceKlassKlass.cpp - src/share/vm/oops/instanceKlassKlass.hpp ! src/share/vm/oops/instanceMirrorKlass.cpp ! src/share/vm/oops/instanceMirrorKlass.hpp ! src/share/vm/oops/instanceOop.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/instanceRefKlass.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp - src/share/vm/oops/klassKlass.cpp - src/share/vm/oops/klassKlass.hpp - src/share/vm/oops/klassOop.cpp - src/share/vm/oops/klassOop.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/markOop.cpp ! src/share/vm/oops/markOop.hpp ! src/share/vm/oops/markOop.inline.hpp + src/share/vm/oops/metadata.cpp + src/share/vm/oops/metadata.hpp + src/share/vm/oops/method.cpp + src/share/vm/oops/method.hpp + src/share/vm/oops/methodData.cpp + src/share/vm/oops/methodData.hpp - src/share/vm/oops/methodDataKlass.cpp - src/share/vm/oops/methodDataKlass.hpp - src/share/vm/oops/methodDataOop.cpp - src/share/vm/oops/methodDataOop.hpp - src/share/vm/oops/methodKlass.cpp - src/share/vm/oops/methodKlass.hpp - src/share/vm/oops/methodOop.cpp - src/share/vm/oops/methodOop.hpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayKlass.hpp ! src/share/vm/oops/objArrayKlass.inline.hpp - src/share/vm/oops/objArrayKlassKlass.cpp - src/share/vm/oops/objArrayKlassKlass.hpp ! src/share/vm/oops/objArrayOop.cpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oop.inline2.hpp ! src/share/vm/oops/oop.pcgc.inline.hpp ! src/share/vm/oops/oop.psgc.inline.hpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/oops/symbol.cpp ! src/share/vm/oops/symbol.hpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/oops/typeArrayKlass.hpp - src/share/vm/oops/typeArrayKlassKlass.cpp - src/share/vm/oops/typeArrayKlassKlass.hpp ! src/share/vm/oops/typeArrayOop.hpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/callnode.cpp ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/graphKit.hpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/machnode.cpp ! src/share/vm/opto/machnode.hpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/matcher.hpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/multnode.cpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/output.cpp ! src/share/vm/opto/parse1.cpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/parseHelper.cpp ! src/share/vm/opto/reg_split.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/opto/runtime.hpp ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/type.cpp ! src/share/vm/opto/type.hpp ! src/share/vm/precompiled/precompiled.hpp ! src/share/vm/prims/forte.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp ! src/share/vm/prims/jniCheck.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/jvm_misc.hpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.hpp ! src/share/vm/prims/jvmtiEnter.xsl ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnv.xsl ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiEnvThreadState.cpp ! src/share/vm/prims/jvmtiEnvThreadState.hpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiGetLoadedClasses.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/prims/jvmtiLib.xsl ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/jvmtiThreadState.cpp ! src/share/vm/prims/jvmtiThreadState.hpp ! src/share/vm/prims/jvmtiTrace.cpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/prims/methodComparator.hpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/prims/nativeLookup.cpp ! src/share/vm/prims/privilegedStack.cpp ! src/share/vm/prims/privilegedStack.hpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/prims/wbtestmethods/parserTests.cpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/runtime/advancedThresholdPolicy.cpp ! src/share/vm/runtime/advancedThresholdPolicy.hpp ! src/share/vm/runtime/aprofiler.cpp ! src/share/vm/runtime/aprofiler.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/biasedLocking.cpp ! src/share/vm/runtime/compilationPolicy.cpp ! src/share/vm/runtime/compilationPolicy.hpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/dtraceJSDT.cpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/fprofiler.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/frame.hpp ! src/share/vm/runtime/frame.inline.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/handles.inline.hpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/javaCalls.hpp ! src/share/vm/runtime/jfieldIDWorkaround.hpp ! src/share/vm/runtime/jniHandles.cpp ! src/share/vm/runtime/jniHandles.hpp ! src/share/vm/runtime/memprofiler.cpp ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/objectMonitor.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/perfData.cpp ! src/share/vm/runtime/perfData.hpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/reflection.hpp ! src/share/vm/runtime/reflectionUtils.cpp ! src/share/vm/runtime/reflectionUtils.hpp ! src/share/vm/runtime/relocator.cpp ! src/share/vm/runtime/relocator.hpp ! src/share/vm/runtime/rframe.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/signature.cpp ! src/share/vm/runtime/signature.hpp ! src/share/vm/runtime/simpleThresholdPolicy.cpp ! src/share/vm/runtime/simpleThresholdPolicy.hpp ! src/share/vm/runtime/simpleThresholdPolicy.inline.hpp ! src/share/vm/runtime/stackValue.cpp ! src/share/vm/runtime/stubRoutines.hpp ! src/share/vm/runtime/sweeper.cpp ! src/share/vm/runtime/sweeper.hpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/unhandledOops.cpp ! src/share/vm/runtime/vframe.cpp ! src/share/vm/runtime/vframe.hpp ! src/share/vm/runtime/vframeArray.cpp ! src/share/vm/runtime/vframeArray.hpp ! src/share/vm/runtime/vframe_hp.cpp ! src/share/vm/runtime/vframe_hp.hpp ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/virtualspace.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmStructs.hpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/classLoadingService.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/gcNotifier.cpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/heapDumper.hpp ! src/share/vm/services/lowMemoryDetector.cpp ! src/share/vm/services/management.cpp ! src/share/vm/services/management.hpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/memoryPool.cpp ! src/share/vm/services/memoryPool.hpp ! src/share/vm/services/memoryService.cpp ! src/share/vm/services/memoryService.hpp ! src/share/vm/services/psMemoryPool.cpp ! src/share/vm/services/psMemoryPool.hpp ! src/share/vm/services/serviceUtil.hpp ! src/share/vm/services/threadService.cpp ! src/share/vm/services/threadService.hpp ! src/share/vm/shark/sharkBuilder.cpp ! src/share/vm/shark/sharkCacheDecache.cpp ! src/share/vm/shark/sharkContext.cpp ! src/share/vm/shark/sharkContext.hpp ! src/share/vm/shark/sharkRuntime.cpp ! src/share/vm/shark/sharkRuntime.hpp ! src/share/vm/shark/sharkStack.cpp ! src/share/vm/shark/sharkState.cpp ! src/share/vm/shark/sharkTopLevelBlock.cpp ! src/share/vm/shark/sharkType.hpp ! src/share/vm/utilities/accessFlags.cpp ! src/share/vm/utilities/accessFlags.hpp ! src/share/vm/utilities/array.hpp ! src/share/vm/utilities/constantTag.cpp ! src/share/vm/utilities/constantTag.hpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/debug.hpp ! src/share/vm/utilities/exceptions.cpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/globalDefinitions.cpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/growableArray.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp ! src/share/vm/utilities/xmlstream.cpp ! src/share/vm/utilities/xmlstream.hpp ! test/compiler/6859338/Test6859338.java Changeset: 03049e0e8544 Author: coleenp Date: 2012-09-03 18:37 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/03049e0e8544 7195823: NPG: CMS reserved() doesn't match _rs.base(). Summary: If the commit fails, the size isn't set so the assert fails. Reviewed-by: kamg ! src/share/vm/memory/metaspace.cpp Changeset: 46c017102631 Author: stefank Date: 2012-09-04 13:01 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/46c017102631 7195968: NPG: oopDesc::list_ptr_from_klass is broken Summary: Remove incorrect cast Reviewed-by: brutisso, coleenp ! src/share/vm/oops/oop.inline.hpp Changeset: ca11db66f9de Author: roland Date: 2012-09-04 23:27 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/ca11db66f9de 7184649: NPG: Implement another MetdataPtr case Summary: xmeet when both inputs are MetadataPtr. Reviewed-by: kvn ! src/share/vm/opto/type.cpp Changeset: d17383603741 Author: twisti Date: 2012-09-04 18:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d17383603741 7196120: NPG: JSR 2292 test fails because missing fix for 7188911 Reviewed-by: kvn, coleenp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/utilities/exceptions.hpp Changeset: 5d2156bcb78b Author: jmasa Date: 2012-09-04 16:20 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5d2156bcb78b 7195789: NPG: assert(used + free == capacity) failed: Accounting is wrong Reviewed-by: coleenp, jcoomes ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/memory/metaspaceCounters.cpp Changeset: 044a77cd0c8b Author: stefank Date: 2012-09-05 10:39 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/044a77cd0c8b 7195935: NPG: Some issues with compressed oops Summary: Don't decompress the klass pointer in the G1 pre-barrier code when !UseCompressedKlassPointers Reviewed-by: coleenp, brutisso ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: 78b56e53050e Author: kvn Date: 2012-09-05 10:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/78b56e53050e 7196167: NPG: mismerge in make/solaris/makefiles/fastdebug.make Summary: Remove the workaround of 7187454 problem which was restored incorrectly during NPG merge. Reviewed-by: coleenp, dholmes ! make/solaris/makefiles/fastdebug.make Changeset: fa6e618671d7 Author: coleenp Date: 2012-09-05 20:08 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/fa6e618671d7 7195867: NPG: SAJDI tests fail with sun.jvm.hotspot.types.WrongTypeException: No suitable match for type Summary: Need to restore the vtable in metadata when we restore the type from the shared archive. Reviewed-by: acorn, jcoomes, jmasa, jrose ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/memory/metaspaceShared.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/method.hpp Changeset: 942bb29b20b0 Author: jmasa Date: 2012-09-06 07:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/942bb29b20b0 7196298: Better fix for 7195789 Reviewed-by: jcoomes, brutisso ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/memory/metaspaceCounters.cpp Changeset: aed758eda82a Author: coleenp Date: 2012-09-07 12:04 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/aed758eda82a 7195833: NPG: Rename instanceClassLoaderKlass, instanceRefKlass and instanceMirrorKlass Summary: Simple renaming to be consistent with instanceKlass->InstanceKlass renaming Reviewed-by: stefank, jmasa ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceClassLoaderKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceMirrorKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceRefKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Metadata.java ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp ! src/share/vm/gc_implementation/shared/concurrentGCThread.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/specialized_oop_closures.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/instanceClassLoaderKlass.cpp ! src/share/vm/oops/instanceClassLoaderKlass.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceMirrorKlass.cpp ! src/share/vm/oops/instanceMirrorKlass.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/instanceRefKlass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 11fb740ce98f Author: coleenp Date: 2012-09-07 16:42 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/11fb740ce98f 7196103: NPG: Unable to allocate bit map for parallel garbage collection for the requested heap size Summary: Don't allocate huge class metaspace size by default on x64 Reviewed-by: stefank, jmasa, kvn ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: 4bfe8b33cf66 Author: twisti Date: 2012-09-10 16:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/4bfe8b33cf66 7196242: vm/mlvm/indy/stress/java/loopsAndThreads crashed Reviewed-by: jrose, coleenp, jmasa, kvn ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp Changeset: ec98e58952b2 Author: stefank Date: 2012-09-11 14:59 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/ec98e58952b2 7197350: NPG: jvmtiHeapReferenceCallback receives incorrect reference_kind for system class roots Summary: Fix the iteration over the system classes and report the correct reference kind. Reviewed-by: coleenp, rbackman ! src/share/vm/memory/iterator.cpp ! src/share/vm/memory/iterator.hpp ! src/share/vm/prims/jvmtiTagMap.cpp Changeset: 8a02ca5e5576 Author: roland Date: 2012-09-11 16:20 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8a02ca5e5576 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere Summary: C1 needs knowledge of T_METADATA at the LIR level. Reviewed-by: kvn, coleenp ! src/cpu/sparc/vm/c1_FrameMap_sparc.cpp ! src/cpu/sparc/vm/c1_FrameMap_sparc.hpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/share/vm/c1/c1_FrameMap.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_ValueType.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/utilities/globalDefinitions.cpp Changeset: 75f33eecc1b3 Author: coleenp Date: 2012-09-11 20:20 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/75f33eecc1b3 7196681: NPG: Some JSR 292 tests crash in Windows exception handler Summary: There was a rogue os::breakpoint() call in log_dependency left over from the jsr292 merge. Also changed verify_oop() calls for metadata to verify_{method,klass}_ptr. Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/cppInterpreter_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/share/vm/code/dependencies.cpp Changeset: 33143ee07800 Author: zgu Date: 2012-09-11 20:53 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/33143ee07800 7181995: NMT ON: NMT assertion failure assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record Summary: Fixed virtual memory records merge and promotion logic, should be based on sequence number vs. base address order Reviewed-by: coleenp, acorn ! src/share/vm/runtime/thread.cpp ! src/share/vm/services/memPtr.cpp ! src/share/vm/services/memPtrArray.hpp ! src/share/vm/services/memSnapshot.cpp ! src/share/vm/services/memSnapshot.hpp ! src/share/vm/services/memTrackWorker.cpp ! src/share/vm/services/memTracker.hpp Changeset: 3f18d439b402 Author: zgu Date: 2012-09-11 18:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/3f18d439b402 Merge Changeset: 43d524adb671 Author: zgu Date: 2012-09-11 20:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/43d524adb671 Merge Changeset: 7edbe32b9802 Author: roland Date: 2012-09-13 22:09 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7edbe32b9802 7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid Summary: missing test for T_METADATA leads to incorrect register allocation. Reviewed-by: kvn ! src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Changeset: 6dfc6a541338 Author: zgu Date: 2012-09-14 12:55 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6dfc6a541338 7198529: NPG: assert with NMT code in Thread destructor Summary: Thread stack's base address can be NULL if it is not started or exited before recording the base Reviewed-by: kvn, fparain ! src/share/vm/runtime/thread.cpp Changeset: 9b076bc3ab67 Author: amurillo Date: 2012-09-14 21:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9b076bc3ab67 Merge - agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGenGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGenGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/ContigPermSpace.java - agent/src/share/classes/sun/jvm/hotspot/memory/PermGen.java - agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolderKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/KlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodDataKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadOopTreeNodeAdapter.java - make/solaris/makefiles/reorder_COMPILER1_amd64 - make/solaris/makefiles/reorder_COMPILER1_i486 - make/solaris/makefiles/reorder_COMPILER1_sparc - make/solaris/makefiles/reorder_COMPILER1_sparcv9 - make/solaris/makefiles/reorder_COMPILER2_amd64 - make/solaris/makefiles/reorder_COMPILER2_i486 - make/solaris/makefiles/reorder_COMPILER2_sparc - make/solaris/makefiles/reorder_COMPILER2_sparcv9 - make/solaris/makefiles/reorder_CORE_i486 - make/solaris/makefiles/reorder_CORE_sparc - make/solaris/makefiles/reorder_CORE_sparcv9 - make/solaris/makefiles/reorder_TIERED_amd64 - make/solaris/makefiles/reorder_TIERED_i486 - make/solaris/makefiles/reorder_TIERED_sparc - make/solaris/makefiles/reorder_TIERED_sparcv9 - make/solaris/reorder.sh - src/cpu/sparc/vm/dump_sparc.cpp - src/cpu/x86/vm/dump_x86_32.cpp - src/cpu/x86/vm/dump_x86_64.cpp - src/cpu/zero/vm/dump_zero.cpp - src/share/vm/ci/ciArrayKlassKlass.hpp - src/share/vm/ci/ciCPCache.cpp - src/share/vm/ci/ciCPCache.hpp - src/share/vm/ci/ciInstanceKlassKlass.cpp - src/share/vm/ci/ciInstanceKlassKlass.hpp - src/share/vm/ci/ciKlassKlass.cpp - src/share/vm/ci/ciKlassKlass.hpp - src/share/vm/ci/ciMethodKlass.cpp - src/share/vm/ci/ciMethodKlass.hpp - src/share/vm/ci/ciObjArrayKlassKlass.cpp - src/share/vm/ci/ciObjArrayKlassKlass.hpp - src/share/vm/ci/ciTypeArrayKlassKlass.cpp - src/share/vm/ci/ciTypeArrayKlassKlass.hpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp - src/share/vm/memory/classify.cpp - src/share/vm/memory/classify.hpp - src/share/vm/memory/compactPermGen.hpp - src/share/vm/memory/compactingPermGenGen.cpp - src/share/vm/memory/compactingPermGenGen.hpp - src/share/vm/memory/dump.cpp - src/share/vm/memory/permGen.cpp - src/share/vm/memory/permGen.hpp - src/share/vm/memory/restore.cpp - src/share/vm/memory/serialize.cpp - src/share/vm/oops/arrayKlassKlass.cpp - src/share/vm/oops/arrayKlassKlass.hpp - src/share/vm/oops/compiledICHolderKlass.cpp - src/share/vm/oops/compiledICHolderKlass.hpp - src/share/vm/oops/compiledICHolderOop.cpp - src/share/vm/oops/compiledICHolderOop.hpp - src/share/vm/oops/constMethodKlass.cpp - src/share/vm/oops/constMethodKlass.hpp - src/share/vm/oops/constMethodOop.cpp - src/share/vm/oops/constMethodOop.hpp - src/share/vm/oops/constantPoolKlass.cpp - src/share/vm/oops/constantPoolKlass.hpp - src/share/vm/oops/constantPoolOop.cpp - src/share/vm/oops/constantPoolOop.hpp - src/share/vm/oops/cpCacheKlass.cpp - src/share/vm/oops/cpCacheKlass.hpp - src/share/vm/oops/cpCacheOop.cpp - src/share/vm/oops/cpCacheOop.hpp - src/share/vm/oops/instanceKlassKlass.cpp - src/share/vm/oops/instanceKlassKlass.hpp - src/share/vm/oops/klassKlass.cpp - src/share/vm/oops/klassKlass.hpp - src/share/vm/oops/klassOop.cpp - src/share/vm/oops/klassOop.hpp - src/share/vm/oops/methodDataKlass.cpp - src/share/vm/oops/methodDataKlass.hpp - src/share/vm/oops/methodDataOop.cpp - src/share/vm/oops/methodDataOop.hpp - src/share/vm/oops/methodKlass.cpp - src/share/vm/oops/methodKlass.hpp - src/share/vm/oops/methodOop.cpp - src/share/vm/oops/methodOop.hpp - src/share/vm/oops/objArrayKlassKlass.cpp - src/share/vm/oops/objArrayKlassKlass.hpp - src/share/vm/oops/typeArrayKlassKlass.cpp - src/share/vm/oops/typeArrayKlassKlass.hpp Changeset: 80e4129f0e28 Author: amurillo Date: 2012-09-14 21:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/80e4129f0e28 Added tag hs25-b01 for changeset 9b076bc3ab67 ! .hgtags Changeset: a6fe94b9759f Author: amurillo Date: 2012-09-14 22:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a6fe94b9759f 7198641: new hotspot build - hs25-b02 Reviewed-by: jcoomes ! make/hotspot_version From andrew_nuss at yahoo.com Sat Sep 15 12:03:47 2012 From: andrew_nuss at yahoo.com (Andy Nuss) Date: Sat, 15 Sep 2012 12:03:47 -0700 (PDT) Subject: hotspot heap and L1 and L2 cache misses Message-ID: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> Hi, Lets say I have a function which mutates a finite automata.? It creates lots of small objects (my own link and double-link structures).? It also does a lot of puts in my own maps.?? The objects and maps in turn have references to arrays and some immutable objects. My question is, all these arrays and objects created in one function that has to do a ton of construction, are there any things to watchout for so that hotspot will try to create all the objects in this one function/thread colocated on the heap so that L1/L2 cache misses are reduced when the finite automata is executed against data? Ideally, someone could tell me that when my class constructors in turn creates new instances of other various size other objects and arrays, they are all colocated on the heap. Ideally, someone could tell me that when I have a looping function that creates alot of very small Linked List objects in succession, again they are colocated. In general, how does hotspot try with creating new objects to help the L1/L2 caches? By the way, I did a test port of my automata to C++ where for objects like the above, I had big memory chunks that my inplace constructors just subdivided the memory chunk that it owned so that all the subobjects were absolutely as colocated as possible. This C++ ported automata out-performed my java version by 5x in execution against data.? And in cases where I tested the performance of construction-time cost of the automata where the comparison is between the hotspot new, versus my simple inplace C++ member functions which basically just return the current chunk cursor, after calculating the size of the object, and updating the chunk cursor to point beyond the new size, in those cases I saw 25x performance differences (5 yrs ago). Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120915/5b48a4c3/attachment.html From roland.westrelin at oracle.com Mon Sep 17 08:41:27 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 17 Sep 2012 17:41:27 +0200 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <4FEA0C9C.3050300@oracle.com> References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> <4FE8B743.9090207@oracle.com> <4FE9C6EE.2020603@oracle.com> <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@oracle.com> <4FEA0C9C.3050300@oracle.com> Message-ID: When I merged this with the current code base, I noticed a missing break in Matcher::match_rule_supported() on x86. See below. Roland. diff --git a/src/cpu/x86/vm/x86.ad b/src/cpu/x86/vm/x86.ad --- a/src/cpu/x86/vm/x86.ad +++ b/src/cpu/x86/vm/x86.ad @@ -509,10 +509,18 @@ case Op_PopCountL: if (!UsePopCountInstruction) return false; + break; case Op_MulVI: if ((UseSSE < 4) && (UseAVX < 1)) // only with SSE4_1 or AVX return false; break; + case Op_CompareAndSwapL: +#ifdef _LP64 + case Op_CompareAndSwapP: +#endif + if (!VM_Version::supports_cx8()) + return false; + break; } return true; // Per default match rules are supported. From vladimir.kozlov at oracle.com Mon Sep 17 09:46:56 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 17 Sep 2012 09:46:56 -0700 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> <4FE8B743.9090207@oracle.com> <4FE9C6EE.2020603@oracle.com> <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@oracle.com> <4FEA0C9C.3050300@oracle.com> Message-ID: <50575400.2060709@oracle.com> My fault, missed it when I added MulVI case. I can add the break into my vectors safepoint changes you reviewed last week. Do you agree? Thanks, Vladimir Roland Westrelin wrote: > When I merged this with the current code base, I noticed a missing break in Matcher::match_rule_supported() on x86. See below. > > Roland. > > diff --git a/src/cpu/x86/vm/x86.ad b/src/cpu/x86/vm/x86.ad > --- a/src/cpu/x86/vm/x86.ad > +++ b/src/cpu/x86/vm/x86.ad > @@ -509,10 +509,18 @@ > case Op_PopCountL: > if (!UsePopCountInstruction) > return false; > + break; > case Op_MulVI: > if ((UseSSE < 4) && (UseAVX < 1)) // only with SSE4_1 or AVX > return false; > break; > + case Op_CompareAndSwapL: > +#ifdef _LP64 > + case Op_CompareAndSwapP: > +#endif > + if (!VM_Version::supports_cx8()) > + return false; > + break; > } > > return true; // Per default match rules are supported. > From roland.westrelin at oracle.com Mon Sep 17 10:46:54 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 17 Sep 2012 19:46:54 +0200 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <50575400.2060709@oracle.com> References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> <4FE8B743.9090207@oracle.com> <4FE9C6EE.2020603@oracle.com> <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@oracle.com> <4FEA0C9C.3050300@oracle.com> <50575400.2060709@oracle.com> Message-ID: <388BAC1A-940E-4FA2-90BA-BB456A89D3B6@oracle.com> > My fault, missed it when I added MulVI case. I can add the break into my vectors safepoint changes you reviewed last week. Do you agree? Sure. No problem. Roland. From vladimir.kozlov at oracle.com Mon Sep 17 10:50:14 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 17 Sep 2012 10:50:14 -0700 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <388BAC1A-940E-4FA2-90BA-BB456A89D3B6@oracle.com> References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> <4FE8B743.9090207@oracle.com> <4FE9C6EE.2020603@oracle.com> <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@oracle.com> <4FEA0C9C.3050300@oracle.com> <50575400.2060709@oracle.com> <388BAC1A-940E-4FA2-90BA-BB456A89D3B6@oracle.com> Message-ID: <505762D6.4090007@oracle.com> Thanks, Vladimir Roland Westrelin wrote: >> My fault, missed it when I added MulVI case. I can add the break into my vectors safepoint changes you reviewed last week. Do you agree? > > Sure. No problem. > > Roland. From christian.thalinger at oracle.com Mon Sep 17 11:39:29 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 17 Sep 2012 11:39:29 -0700 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> Message-ID: On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > Hi, > > Lets say I have a function which mutates a finite automata. It creates lots of small objects (my own link and double-link structures). It also does a lot of puts in my own maps. The objects and maps in turn have references to arrays and some immutable objects. > > My question is, all these arrays and objects created in one function that has to do a ton of construction, are there any things to watchout for so that hotspot will try to create all the objects in this one function/thread colocated on the heap so that L1/L2 cache misses are reduced when the finite automata is executed against data? > > Ideally, someone could tell me that when my class constructors in turn creates new instances of other various size other objects and arrays, they are all colocated on the heap. > > Ideally, someone could tell me that when I have a looping function that creates alot of very small Linked List objects in succession, again they are colocated. > > In general, how does hotspot try with creating new objects to help the L1/L2 caches? > > By the way, I did a test port of my automata to C++ where for objects like the above, I had big memory chunks that my inplace constructors just subdivided the memory chunk that it owned so that all the subobjects were absolutely as colocated as possible. > > This C++ ported automata out-performed my java version by 5x in execution against data. And in cases where I tested the performance of construction-time cost of the automata where the comparison is between the hotspot new, versus my simple inplace C++ member functions which basically just return the current chunk cursor, after calculating the size of the object, and updating the chunk cursor to point beyond the new size, in those cases I saw 25x performance differences (5 yrs ago). TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really come from co-located data? Did you measure it? And maybe you should redo your 25x experiment. 5 years is a long time... -- Chris > > Andy From roland.westrelin at oracle.com Mon Sep 17 11:49:19 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 17 Sep 2012 20:49:19 +0200 Subject: RFR (L): 7173584: Implement arraycopy as a macro node In-Reply-To: References: Message-ID: <9CAF8242-736B-4B8B-8926-3451DA87AF70@oracle.com> Here is a new one for this (ignore the comments below the file names. They are broken): http://cr.openjdk.java.net/~roland/7173584/webrev.01/ The 2 changes are: - the fix for 7174363 is merged - I hit an assert once during testing: assert(proj->_con == predicate_proj->_con, "must match"); loopPredicate.cpp line 825 One of the predicates added for an array copy is mistaken for a range check predicate but with the IfTrue/IfFalse projections swapped so I tried to change the code so that proj->_con != predicate_proj->_con is supported. Roland. From christian.thalinger at oracle.com Mon Sep 17 12:49:48 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 17 Sep 2012 12:49:48 -0700 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: <1347909611.18019.YahooMailNeo@web120304.mail.ne1.yahoo.com> References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1347909611.18019.YahooMailNeo@web120304.mail.ne1.yahoo.com> Message-ID: On Sep 17, 2012, at 12:20 PM, Andy Nuss wrote: > What about the case of a new class instance that creates and holds 2 references to medium length arrays? Is the new instance and its 2 arrays in the same area of the heap? Depends on what you mean with "the same area". But these questions should better go to hotspot-gc-dev. -- Chris > > From: Christian Thalinger > To: Andy Nuss > Cc: hotspot > Sent: Monday, September 17, 2012 11:39 AM > Subject: Re: hotspot heap and L1 and L2 cache misses > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > > > Hi, > > > > Lets say I have a function which mutates a finite automata. It creates lots of small objects (my own link and double-link structures). It also does a lot of puts in my own maps. The objects and maps in turn have references to arrays and some immutable objects. > > > > My question is, all these arrays and objects created in one function that has to do a ton of construction, are there any things to watchout for so that hotspot will try to create all the objects in this one function/thread colocated on the heap so that L1/L2 cache misses are reduced when the finite automata is executed against data? > > > > Ideally, someone could tell me that when my class constructors in turn creates new instances of other various size other objects and arrays, they are all colocated on the heap. > > > > Ideally, someone could tell me that when I have a looping function that creates alot of very small Linked List objects in succession, again they are colocated. > > > > In general, how does hotspot try with creating new objects to help the L1/L2 caches? > > > > By the way, I did a test port of my automata to C++ where for objects like the above, I had big memory chunks that my inplace constructors just subdivided the memory chunk that it owned so that all the subobjects were absolutely as colocated as possible. > > > > This C++ ported automata out-performed my java version by 5x in execution against data. And in cases where I tested the performance of construction-time cost of the automata where the comparison is between the hotspot new, versus my simple inplace C++ member functions which basically just return the current chunk cursor, after calculating the size of the object, and updating the chunk cursor to point beyond the new size, in those cases I saw 25x performance differences (5 yrs ago). > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really come from co-located data? Did you measure it? And maybe you should redo your 25x experiment. 5 years is a long time... > > -- Chris > > > > > Andy > > > From vitalyd at gmail.com Mon Sep 17 13:40:15 2012 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Mon, 17 Sep 2012 16:40:15 -0400 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1347909611.18019.YahooMailNeo@web120304.mail.ne1.yahoo.com> Message-ID: Andy, TLAB will satisfy the allocation requests in this case, so the object and its arrays would be in that thread-local buffer. However, some objects can be considered humongous and will be allocated straight out of global Eden space or even tenured space. Also, once a tlab is exhausted, it's retired (its objects' memory is copied into Eden global pool and TLAB is reset, possibly resized as well). If your objects survive gc and get tenured, they'll end up in the old gen. Once there, I don't think there's any guarantee that heap compaction will try to keep the object graph close together in memory, although maybe it ends up like that inadvertently. If your objects get copied into Eden pool (or a survivor space), I'm not sure there's any guarantee of colocation either. Some of the above may be inaccurate so check with the gc devs using the alias in Chris' last email. I'd also do as Chris suggested and re-run your benchmark on a recent hotspot build and modern/recent hardware. You'd also need to profile using a profiler that supports hardware perf counters so that you can attribute the difference to cache misses - otherwise, hard to say for sure. HTH, Vitaly Sent from my phone On Sep 17, 2012 3:50 PM, "Christian Thalinger" < christian.thalinger at oracle.com> wrote: > > On Sep 17, 2012, at 12:20 PM, Andy Nuss wrote: > > > What about the case of a new class instance that creates and holds 2 > references to medium length arrays? Is the new instance and its 2 arrays > in the same area of the heap? > > Depends on what you mean with "the same area". But these questions should > better go to hotspot-gc-dev. > > -- Chris > > > > > From: Christian Thalinger > > To: Andy Nuss > > Cc: hotspot > > Sent: Monday, September 17, 2012 11:39 AM > > Subject: Re: hotspot heap and L1 and L2 cache misses > > > > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > > > > > Hi, > > > > > > Lets say I have a function which mutates a finite automata. It > creates lots of small objects (my own link and double-link structures). It > also does a lot of puts in my own maps. The objects and maps in turn have > references to arrays and some immutable objects. > > > > > > My question is, all these arrays and objects created in one function > that has to do a ton of construction, are there any things to watchout for > so that hotspot will try to create all the objects in this one > function/thread colocated on the heap so that L1/L2 cache misses are > reduced when the finite automata is executed against data? > > > > > > Ideally, someone could tell me that when my class constructors in turn > creates new instances of other various size other objects and arrays, they > are all colocated on the heap. > > > > > > Ideally, someone could tell me that when I have a looping function > that creates alot of very small Linked List objects in succession, again > they are colocated. > > > > > > In general, how does hotspot try with creating new objects to help the > L1/L2 caches? > > > > > > By the way, I did a test port of my automata to C++ where for objects > like the above, I had big memory chunks that my inplace constructors just > subdivided the memory chunk that it owned so that all the subobjects were > absolutely as colocated as possible. > > > > > > This C++ ported automata out-performed my java version by 5x in > execution against data. And in cases where I tested the performance of > construction-time cost of the automata where the comparison is between the > hotspot new, versus my simple inplace C++ member functions which basically > just return the current chunk cursor, after calculating the size of the > object, and updating the chunk cursor to point beyond the new size, in > those cases I saw 25x performance differences (5 yrs ago). > > > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really > come from co-located data? Did you measure it? And maybe you should redo > your 25x experiment. 5 years is a long time... > > > > -- Chris > > > > > > > > Andy > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120917/f69e107c/attachment.html From christian.thalinger at oracle.com Mon Sep 17 19:00:00 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Tue, 18 Sep 2012 02:00:00 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc Message-ID: <20120918020002.DDD5E47B5B@hg.openjdk.java.net> Changeset: 2cb2f30450c7 Author: twisti Date: 2012-09-17 12:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/2cb2f30450c7 7196262: JSR 292: java/lang/invoke/PrivateInvokeTest.java fails on solaris-sparc Reviewed-by: kvn, jrose, bdelsart ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/share/vm/asm/register.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp From vladimir.kozlov at oracle.com Mon Sep 17 22:19:16 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 18 Sep 2012 05:19:16 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7197033: missing ResourceMark for assert in Method::bci_from() Message-ID: <20120918051922.90B1347B61@hg.openjdk.java.net> Changeset: 8d3cc6612bd1 Author: kvn Date: 2012-09-17 17:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8d3cc6612bd1 7197033: missing ResourceMark for assert in Method::bci_from() Summary: Added missing ResourceMark. Reviewed-by: dholmes, coleenp, jmasa ! src/share/vm/oops/method.cpp From vladimir.kozlov at oracle.com Tue Sep 18 01:46:58 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 18 Sep 2012 08:46:58 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect Message-ID: <20120918084709.9868A47B67@hg.openjdk.java.net> Changeset: 137868b7aa6f Author: kvn Date: 2012-09-17 19:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/137868b7aa6f 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect Summary: Save whole XMM/YMM registers in safepoint interrupt handler. Reviewed-by: roland, twisti ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/x86.ad ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_Compilation.hpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/output.cpp ! src/share/vm/opto/superword.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp + test/compiler/7196199/Test7196199.java From yumin.qi at oracle.com Tue Sep 18 09:09:25 2012 From: yumin.qi at oracle.com (yumin.qi at oracle.com) Date: Tue, 18 Sep 2012 09:09:25 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> Message-ID: <50589CB5.3090901@oracle.com> Hi, I have changed code for bsd, enable it work on MacOS, built/tested. Please have another round of review on files related to bsd. The changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m http://cr.openjdk.java.net/~minqi/6879063 Thanks Yumin On 8/28/2012 5:54 PM, Christian Thalinger wrote: > Looks good. -- Chris > > On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: > >> Hi, all >> >> Updated with feedback suggestions. Please have a look again at the same link. >> >> Thanks >> Yumin >> >> >> >> >> On 2012/8/27 14:07, Yumin Qi wrote: >>> Hi, all >>> >>> Can I have you code review of >>> 6879063: SA should use hsdis for disassembly >>> >>> http://cr.openjdk.java.net/~minqi/6879063 >>> >>> The SA has Java based disassemblers for x86 and sparc but amd64. Instead of porting to amd64 we should switch over to using hsdis for it like the JVM does. This requires a new entry point into hsdis, decode_instructions_virtual, which separates the address of the code being disassembled from the buffer containing the code. The existing uses of decode_instructions have been updated to use the new interface and SA Disassembler has Java native methods that call into hsdis and call back up to Java to perform the disassembly. Also changed makefile for hsdis build for both(i386/amd64). >>> >>> All the old disassembler logic was deleted since it's incompatible with the new disassembly interface. Also deleted are dbx based SA interface and few other dead files. >>> >>> Tested by dumping full assembly from core files. >>> >>> Reviewed-by: >>> Contributed-by: Tom R (never) >>> >>> Thanks >>> Yumin Qi >>> From yumin.qi at oracle.com Tue Sep 18 09:27:42 2012 From: yumin.qi at oracle.com (yumin.qi at oracle.com) Date: Tue, 18 Sep 2012 09:27:42 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: <50589CB5.3090901@oracle.com> References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> Message-ID: <5058A0FE.5050907@oracle.com> Sorry, please ignore this one, since the make files not listed. Will send again. Thanks Yumin On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: > Hi, > > I have changed code for bsd, enable it work on MacOS, built/tested. > Please have another round of review on files related to bsd. The > changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m > > http://cr.openjdk.java.net/~minqi/6879063 > > > Thanks > Yumin > > On 8/28/2012 5:54 PM, Christian Thalinger wrote: >> Looks good. -- Chris >> >> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >> >>> Hi, all >>> >>> Updated with feedback suggestions. Please have a look again at >>> the same link. >>> >>> Thanks >>> Yumin >>> >>> >>> >>> >>> On 2012/8/27 14:07, Yumin Qi wrote: >>>> Hi, all >>>> >>>> Can I have you code review of >>>> 6879063: SA should use hsdis for disassembly >>>> >>>> http://cr.openjdk.java.net/~minqi/6879063 >>>> >>>> The SA has Java based disassemblers for x86 and sparc but >>>> amd64. Instead of porting to amd64 we should switch over to using >>>> hsdis for it like the JVM does. This requires a new entry point >>>> into hsdis, decode_instructions_virtual, which separates the >>>> address of the code being disassembled from the buffer containing >>>> the code. The existing uses of decode_instructions have been >>>> updated to use the new interface and SA Disassembler has Java >>>> native methods that call into hsdis and call back up to Java to >>>> perform the disassembly. Also changed makefile for hsdis build for >>>> both(i386/amd64). >>>> >>>> All the old disassembler logic was deleted since it's >>>> incompatible with the new disassembly interface. Also deleted are >>>> dbx based SA interface and few other dead files. >>>> >>>> Tested by dumping full assembly from core files. >>>> >>>> Reviewed-by: >>>> Contributed-by: Tom R (never) >>>> >>>> Thanks >>>> Yumin Qi >>>> From yumin.qi at oracle.com Tue Sep 18 10:19:25 2012 From: yumin.qi at oracle.com (yumin.qi at oracle.com) Date: Tue, 18 Sep 2012 10:19:25 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: <5058A0FE.5050907@oracle.com> References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> Message-ID: <5058AD1D.1070208@oracle.com> Again, it is OK now. Thanks Yumin On 9/18/2012 9:27 AM, yumin.qi at oracle.com wrote: > Sorry, please ignore this one, since the make files not listed. Will > send again. > > Thanks > Yumin > > On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: >> Hi, >> >> I have changed code for bsd, enable it work on MacOS, built/tested. >> Please have another round of review on files related to bsd. The >> changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m >> >> http://cr.openjdk.java.net/~minqi/6879063 >> >> >> Thanks >> Yumin >> >> On 8/28/2012 5:54 PM, Christian Thalinger wrote: >>> Looks good. -- Chris >>> >>> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >>> >>>> Hi, all >>>> >>>> Updated with feedback suggestions. Please have a look again at >>>> the same link. >>>> >>>> Thanks >>>> Yumin >>>> >>>> >>>> >>>> >>>> On 2012/8/27 14:07, Yumin Qi wrote: >>>>> Hi, all >>>>> >>>>> Can I have you code review of >>>>> 6879063: SA should use hsdis for disassembly >>>>> >>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>> >>>>> The SA has Java based disassemblers for x86 and sparc but >>>>> amd64. Instead of porting to amd64 we should switch over to using >>>>> hsdis for it like the JVM does. This requires a new entry point >>>>> into hsdis, decode_instructions_virtual, which separates the >>>>> address of the code being disassembled from the buffer containing >>>>> the code. The existing uses of decode_instructions have been >>>>> updated to use the new interface and SA Disassembler has Java >>>>> native methods that call into hsdis and call back up to Java to >>>>> perform the disassembly. Also changed makefile for hsdis build for >>>>> both(i386/amd64). >>>>> >>>>> All the old disassembler logic was deleted since it's >>>>> incompatible with the new disassembly interface. Also deleted are >>>>> dbx based SA interface and few other dead files. >>>>> >>>>> Tested by dumping full assembly from core files. >>>>> >>>>> Reviewed-by: >>>>> Contributed-by: Tom R (never) >>>>> >>>>> Thanks >>>>> Yumin Qi >>>>> From john.r.rose at oracle.com Tue Sep 18 12:01:50 2012 From: john.r.rose at oracle.com (John Rose) Date: Tue, 18 Sep 2012 12:01:50 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: <5058AD1D.1070208@oracle.com> References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> Message-ID: On the whole, I am delighted to see all the code being removed, and pleased to see a fresh purpose for the hsdis plugin. In hsdis.c, there is a symbol 'decode_instruction_virtual' (no 's' at the end) which appears to have no definition. Is it a typo? The "nice newlines" have moved around and proliferated. Will this break any compatibility with new JVMs running old hsdis.so or vice versa? I notice that 'do_newline' currently does not have a way to be true. Was that meant for the old entry point? But these are minor points. Reviewed. ? John From yumin.qi at oracle.com Tue Sep 18 13:37:24 2012 From: yumin.qi at oracle.com (yumin.qi at oracle.com) Date: Tue, 18 Sep 2012 13:37:24 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> Message-ID: <5058DB84.8070204@oracle.com> Thanks. John In fact there is a warning in build but was ignored, I did not pay attention to it: "hsdis.c", line 127: warning: implicit function declaration: decode_instruction_virtual, this symbol ignored in .c as external so the build passed. Thanks for the catch. This function is not called, so the flaw will not be found. I haven't tested the old hsdis.so, thought they work with old JVM. Will have a check. This value currently will never be true, that is right. Thanks Yumin On 9/18/2012 12:01 PM, John Rose wrote: > On the whole, I am delighted to see all the code being removed, and pleased to see a fresh purpose for the hsdis plugin. > > In hsdis.c, there is a symbol 'decode_instruction_virtual' (no 's' at the end) which appears to have no definition. Is it a typo? > > The "nice newlines" have moved around and proliferated. > Will this break any compatibility with new JVMs running old hsdis.so or vice versa? > I notice that 'do_newline' currently does not have a way to be true. Was that meant for the old entry point? > > But these are minor points. > > Reviewed. > > ? John From vladimir.kozlov at oracle.com Tue Sep 18 18:21:54 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 18 Sep 2012 18:21:54 -0700 Subject: Request for reviews (M): 7199010: incorrect vector alignment Message-ID: <50591E32.4070808@oracle.com> http://cr.openjdk.java.net/~kvn/7199010/webrev Vector memory operations could be misaligned when accesses to arrays of different types are vectorized in one loop. It leads to hw trap on SPARC and slow performance on old x86 (with slow unaligned memory instructions). It was caused by 2 main reasons: using iv_adjustment_in_bytes instead of iv_adjustment (number of iterations) and typo in same_velt_type(). Fixes: Used iv_adjustment as number of iterations in pre-loop to calculate correct offset in SuperWord::memory_alignment() method. Fixed typo in SuperWord::same_velt_type(). Allowed misaligned memory operations for vectors only on x86 which have fast misaligned memory instructions. I also did some code style clean up there. Note, the flag AlignVector is used in x64.ad file: const bool Matcher::misaligned_vectors_ok() { return !AlignVector; } Excluded LoadUI2L node from vector operations because it reports incorrect memory size. Thanks, Vladimir From staffan.larsen at oracle.com Wed Sep 19 00:49:06 2012 From: staffan.larsen at oracle.com (Staffan Larsen) Date: Wed, 19 Sep 2012 09:49:06 +0200 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: <5058AD1D.1070208@oracle.com> References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> Message-ID: Looks good! /Staffan On 18 sep 2012, at 19:19, yumin.qi at oracle.com wrote: > Again, it is OK now. > > Thanks > Yumin > > On 9/18/2012 9:27 AM, yumin.qi at oracle.com wrote: >> Sorry, please ignore this one, since the make files not listed. Will send again. >> >> Thanks >> Yumin >> >> On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: >>> Hi, >>> >>> I have changed code for bsd, enable it work on MacOS, built/tested. >>> Please have another round of review on files related to bsd. The changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m >>> >>> http://cr.openjdk.java.net/~minqi/6879063 >>> >>> >>> Thanks >>> Yumin >>> >>> On 8/28/2012 5:54 PM, Christian Thalinger wrote: >>>> Looks good. -- Chris >>>> >>>> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >>>> >>>>> Hi, all >>>>> >>>>> Updated with feedback suggestions. Please have a look again at the same link. >>>>> >>>>> Thanks >>>>> Yumin >>>>> >>>>> >>>>> >>>>> >>>>> On 2012/8/27 14:07, Yumin Qi wrote: >>>>>> Hi, all >>>>>> >>>>>> Can I have you code review of >>>>>> 6879063: SA should use hsdis for disassembly >>>>>> >>>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>>> >>>>>> The SA has Java based disassemblers for x86 and sparc but amd64. Instead of porting to amd64 we should switch over to using hsdis for it like the JVM does. This requires a new entry point into hsdis, decode_instructions_virtual, which separates the address of the code being disassembled from the buffer containing the code. The existing uses of decode_instructions have been updated to use the new interface and SA Disassembler has Java native methods that call into hsdis and call back up to Java to perform the disassembly. Also changed makefile for hsdis build for both(i386/amd64). >>>>>> >>>>>> All the old disassembler logic was deleted since it's incompatible with the new disassembly interface. Also deleted are dbx based SA interface and few other dead files. >>>>>> >>>>>> Tested by dumping full assembly from core files. >>>>>> >>>>>> Reviewed-by: >>>>>> Contributed-by: Tom R (never) >>>>>> >>>>>> Thanks >>>>>> Yumin Qi >>>>>> From Patrick.Metzler at gmx.net Wed Sep 19 01:42:40 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Wed, 19 Sep 2012 10:42:40 +0200 Subject: Branch removal Message-ID: <50598580.7070302@gmx.net> Hi, my plan is to write an additional pass/transformation for the server compiler; now I have some problems implementing it. The transformation should delete certain branchings and make use of the conditional move instruction on Intel platforms, hence do /some sort of/ branch predication. To be clear: it is not intended to make the code faster or smaller; I just want to see whether it is possible to compile branching in Java byte code into native code without branching (in the context of my computer science thesis). For example, I want the if/else statement in the following Java method: Object m( Object o1, Object o2, int n) { Object r; if (n == 0) r = o1; else r = o2; return r; } be compiled into native code like this: ... method entry ... testl RCX, RCX cmovz RBX, RAX ... method exit ... assuming that EAX, EBX and ECX hold parameters o1, o2 and n, respectively, and that the value of EAX is returned. It is fine for me if the emitted code contains branchings as long as they do not correspond to the if/else statement. (I expect that it would be infeasible avoiding any branching anyway, due to, e.g., exceptions during allocation.) It is also fine for me to restrict the Java programs the transformation would support; e.g., the transformation could only consider if statements containing no method calls, if statements with empty else branches, ... Of course, the transformation should not be applied globally, but only on certain branchings. I plan to mark them using Java annotations, possibly indicating the bytecode index, although I don't know whether this is easy to evaluate inside the compiler. So far, I've tried out two things: First, I borrowed some code from PhaseIdealLoop::conditional_move in order to replace a Region node and corresponding If / projection nodes with CMov nodes. I inserted the transformation at the end of Compile::Optimize(). This works fine for a simple method, but gives me an error for a method using objects: COMPILE SKIPPED: late schedule failed: incorrect graph (not retryable) Second, I considered an example containing an if statement with an empty else statement inside a loop. Here is a sketch of the Java source code: MyObject a, aSwap; // ... code left out here ... for (E e : arrayList) { aSwap = a.getCopy(); aSwap.do(); if (e.condition()) a = aSwap; } After high level optimizations, the else branch (which I expected to be empty) contained some basic blocks, so I changed the transformation such that it deletes the If node and the else branch, but not necessarily deletes the corresponding Region node (as it turned out to be the Loop node). But I was not able to remove the else branch correctly and it gave me (I think because of CreateEx node I didn't remove): COMPILE SKIPPED: infinite loop (not retryable) I still need to figure out how to find the Phi nodes referenced in the if branch I now want to execute always, in order to replace them by CMov nodes. My questions are: * How can I assure my transformation leaves a consistent graph? I found PhaseIdealLoop::verify(), is this appropriate? * Is there already functionality implemented which removes code unreachable from above but reachable from below? * Is it possible to associate a Phi node with a specific Bool node, in cases where a Region node has multiple If nodes as predecessors? * Would you suggest to place the transformation not at the end of high level optimizations but elsewhere, e.g. before optimizations? * Are Java annotations parsed by C2? If so, how to access them? * Is it possible to disable uncommon traps (completely or just for one method)? I would be glad if someone had some time to consider my questions. Patrick From goetz.lindenmaier at sap.com Wed Sep 19 05:20:18 2012 From: goetz.lindenmaier at sap.com (Lindenmaier, Goetz) Date: Wed, 19 Sep 2012 14:20:18 +0200 Subject: RFR (S): add CodeComments functionality to assember stubs Message-ID: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> Hi, The Assembler and CodeBuffer classes supply CodeComment / block_comment() functionality, which does not work with stubs. The comments are not printed with +PrintStubCode or +PrintInterpreter because the comments are lost when the code is turned into a Stub, while they are kept if the code is copied to a CodeBlob. We fixed this in our SAP JVM, and contributed the change to the ppc-aix-port some while ago, see http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. I propose to add this fix to the OpenJDK mainline. A webrev can be found here: http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ Basically the change passes the codeBuffer to the Stub constructor, and adapts the disassembler to print the comments. In the debug build the InterpreterCodelet Stub has a new field holding the code comments. I also added some ttyLocks and \\ns to beautify the output. Could somebody please create a bug id for this issue and review the changes? Thank you and best regards, Goetz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120919/2c5f4db2/attachment.html From roland.westrelin at oracle.com Wed Sep 19 06:40:44 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Wed, 19 Sep 2012 15:40:44 +0200 Subject: Request for reviews (M): 7199010: incorrect vector alignment In-Reply-To: <50591E32.4070808@oracle.com> References: <50591E32.4070808@oracle.com> Message-ID: That looks good. Roland. From vladimir.kozlov at oracle.com Wed Sep 19 09:12:26 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 19 Sep 2012 09:12:26 -0700 Subject: Request for reviews (M): 7199010: incorrect vector alignment In-Reply-To: References: <50591E32.4070808@oracle.com> Message-ID: <5059EEEA.2060102@oracle.com> Thank you, Roland Vladimir Roland Westrelin wrote: > That looks good. > > Roland. From christian.thalinger at oracle.com Wed Sep 19 10:36:37 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 19 Sep 2012 10:36:37 -0700 Subject: RFR (S): TraceTypeProfile as diagnostic option In-Reply-To: <5051C6EA.5000605@oracle.com> References: <5051C6EA.5000605@oracle.com> Message-ID: <9CD5DCA2-9037-4B20-B1E0-98466B10D0D1@oracle.com> Looks good. I will push the change today. -- Chris On Sep 13, 2012, at 4:43 AM, Aleksey Shipilev wrote: > http://shipilev.net/pub/jdk/hotspot/typeprofile/webrev-1/ > > As per Vladimir request, I did the experiment what are the increases in > binary sizes with this change, these are below 100 bytes in either > client or server VM. > > Is there something else I need to take care of to get this patch in > (e.g. submit the CR?) > > Thanks, > Aleksey. From yumin.qi at oracle.com Wed Sep 19 10:41:10 2012 From: yumin.qi at oracle.com (Yumin Qi) Date: Wed, 19 Sep 2012 10:41:10 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> Message-ID: <505A03B6.5010602@oracle.com> Thanks. Now after updated with new changes with metadata, it is not compilable, need to do some revision. --Yumin On 9/19/2012 12:49 AM, Staffan Larsen wrote: > Looks good! > > /Staffan > > On 18 sep 2012, at 19:19, yumin.qi at oracle.com wrote: > >> Again, it is OK now. >> >> Thanks >> Yumin >> >> On 9/18/2012 9:27 AM, yumin.qi at oracle.com wrote: >>> Sorry, please ignore this one, since the make files not listed. Will send again. >>> >>> Thanks >>> Yumin >>> >>> On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: >>>> Hi, >>>> >>>> I have changed code for bsd, enable it work on MacOS, built/tested. >>>> Please have another round of review on files related to bsd. The changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m >>>> >>>> http://cr.openjdk.java.net/~minqi/6879063 >>>> >>>> >>>> Thanks >>>> Yumin >>>> >>>> On 8/28/2012 5:54 PM, Christian Thalinger wrote: >>>>> Looks good. -- Chris >>>>> >>>>> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >>>>> >>>>>> Hi, all >>>>>> >>>>>> Updated with feedback suggestions. Please have a look again at the same link. >>>>>> >>>>>> Thanks >>>>>> Yumin >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 2012/8/27 14:07, Yumin Qi wrote: >>>>>>> Hi, all >>>>>>> >>>>>>> Can I have you code review of >>>>>>> 6879063: SA should use hsdis for disassembly >>>>>>> >>>>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>>>> >>>>>>> The SA has Java based disassemblers for x86 and sparc but amd64. Instead of porting to amd64 we should switch over to using hsdis for it like the JVM does. This requires a new entry point into hsdis, decode_instructions_virtual, which separates the address of the code being disassembled from the buffer containing the code. The existing uses of decode_instructions have been updated to use the new interface and SA Disassembler has Java native methods that call into hsdis and call back up to Java to perform the disassembly. Also changed makefile for hsdis build for both(i386/amd64). >>>>>>> >>>>>>> All the old disassembler logic was deleted since it's incompatible with the new disassembly interface. Also deleted are dbx based SA interface and few other dead files. >>>>>>> >>>>>>> Tested by dumping full assembly from core files. >>>>>>> >>>>>>> Reviewed-by: >>>>>>> Contributed-by: Tom R (never) >>>>>>> >>>>>>> Thanks >>>>>>> Yumin Qi >>>>>>> From christian.thalinger at oracle.com Wed Sep 19 11:27:52 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 19 Sep 2012 11:27:52 -0700 Subject: Request for reviews (M): 7199010: incorrect vector alignment In-Reply-To: <50591E32.4070808@oracle.com> References: <50591E32.4070808@oracle.com> Message-ID: Looks good. -- Chris On Sep 18, 2012, at 6:21 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7199010/webrev > > Vector memory operations could be misaligned when accesses to arrays of different types are vectorized in one loop. It leads to hw trap on SPARC and slow performance on old x86 (with slow unaligned memory instructions). It was caused by 2 main reasons: using iv_adjustment_in_bytes instead of iv_adjustment (number of iterations) and typo in same_velt_type(). > > Fixes: > > Used iv_adjustment as number of iterations in pre-loop to calculate correct offset in SuperWord::memory_alignment() method. Fixed typo in SuperWord::same_velt_type(). > > Allowed misaligned memory operations for vectors only on x86 which have fast misaligned memory instructions. I also did some code style clean up there. Note, the flag AlignVector is used in x64.ad file: > > const bool Matcher::misaligned_vectors_ok() { > return !AlignVector; > } > > Excluded LoadUI2L node from vector operations because it reports incorrect memory size. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Wed Sep 19 11:42:51 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 19 Sep 2012 11:42:51 -0700 Subject: Request for reviews (M): 7199010: incorrect vector alignment In-Reply-To: References: <50591E32.4070808@oracle.com> Message-ID: <505A122B.1090809@oracle.com> Thank you, Christian Vladimir Christian Thalinger wrote: > Looks good. -- Chris > > On Sep 18, 2012, at 6:21 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7199010/webrev >> >> Vector memory operations could be misaligned when accesses to arrays of different types are vectorized in one loop. It leads to hw trap on SPARC and slow performance on old x86 (with slow unaligned memory instructions). It was caused by 2 main reasons: using iv_adjustment_in_bytes instead of iv_adjustment (number of iterations) and typo in same_velt_type(). >> >> Fixes: >> >> Used iv_adjustment as number of iterations in pre-loop to calculate correct offset in SuperWord::memory_alignment() method. Fixed typo in SuperWord::same_velt_type(). >> >> Allowed misaligned memory operations for vectors only on x86 which have fast misaligned memory instructions. I also did some code style clean up there. Note, the flag AlignVector is used in x64.ad file: >> >> const bool Matcher::misaligned_vectors_ok() { >> return !AlignVector; >> } >> >> Excluded LoadUI2L node from vector operations because it reports incorrect memory size. >> >> Thanks, >> Vladimir > From christian.thalinger at oracle.com Wed Sep 19 17:08:49 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Thu, 20 Sep 2012 00:08:49 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7198499: TraceTypeProfile as diagnostic option Message-ID: <20120920000853.1E61F47BD0@hg.openjdk.java.net> Changeset: 9d89c76b0505 Author: twisti Date: 2012-09-19 10:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9d89c76b0505 7198499: TraceTypeProfile as diagnostic option Reviewed-by: kvn Contributed-by: Aleksey Shipilev ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/doCall.cpp From vladimir.kozlov at oracle.com Wed Sep 19 19:28:49 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 19 Sep 2012 19:28:49 -0700 Subject: Request for reviews (S): 7199742: A lot of C2 OSR compilations of the same method's bci Message-ID: <505A7F61.4000801@oracle.com> http://cr.openjdk.java.net/~kvn/7199742/webrev CI type flow analysis clone the head of OSR loop and as result the type of locals is incorrect in osr_start block in ciTypeFlow info. C2 generates runtime checks for locals and uncommon_trap to verify that OSR information is correct during execution. The code hit the uncommon trap, method is deoptimized, C2 does the same osr compilation again. And this repeats until PerMethodRecompilationCutoff/2 (200) is reached. Don't clone the head of OSR loop. Thanks, Vladimir From john.r.rose at oracle.com Wed Sep 19 23:19:19 2012 From: john.r.rose at oracle.com (John Rose) Date: Wed, 19 Sep 2012 23:19:19 -0700 Subject: Request for reviews (S): 7199742: A lot of C2 OSR compilations of the same method's bci In-Reply-To: <505A7F61.4000801@oracle.com> References: <505A7F61.4000801@oracle.com> Message-ID: <3A2DB7F0-75F0-4AB4-8B7C-F1B89038027C@oracle.com> On Sep 19, 2012, at 7:28 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7199742/webrev > > CI type flow analysis clone the head of OSR loop and as result the type of locals is incorrect in osr_start block in ciTypeFlow info. C2 generates runtime checks for locals and uncommon_trap to verify that OSR information is correct during execution. The code hit the uncommon trap, method is deoptimized, C2 does the same osr compilation again. And this repeats until PerMethodRecompilationCutoff/2 (200) is reached. > > Don't clone the head of OSR loop. This is a reasonable fix. Here's the part I'm missing: How do we ensure that we find the problem if something similar happens again? By "similar" I mean a serious inaccuracy in the ciTypeFlow type model. Perhaps we could add an assert which would detect the problem (e.g., null type at OSR entry point) and raise an error. Ideally, if you were to comment out your fix but put in the assert, it would fire immediately on your test case. ? John From vladimir.kozlov at oracle.com Thu Sep 20 05:07:06 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Thu, 20 Sep 2012 12:07:06 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7199010: incorrect vector alignment Message-ID: <20120920120718.2361847BE6@hg.openjdk.java.net> Changeset: 8ae8f9dd7099 Author: kvn Date: 2012-09-19 16:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8ae8f9dd7099 7199010: incorrect vector alignment Summary: Fixed vectors alignment when several arrays are accessed in one loop. Reviewed-by: roland, twisti ! src/cpu/x86/vm/vm_version_x86.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/superword.cpp ! src/share/vm/opto/superword.hpp From vladimir.kozlov at oracle.com Thu Sep 20 07:48:45 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 20 Sep 2012 07:48:45 -0700 Subject: Request for reviews (S): 7199742: A lot of C2 OSR compilations of the same method's bci In-Reply-To: <3A2DB7F0-75F0-4AB4-8B7C-F1B89038027C@oracle.com> References: <505A7F61.4000801@oracle.com> <3A2DB7F0-75F0-4AB4-8B7C-F1B89038027C@oracle.com> Message-ID: <505B2CCD.4040008@oracle.com> On 9/19/12 11:19 PM, John Rose wrote: > On Sep 19, 2012, at 7:28 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7199742/webrev >> >> CI type flow analysis clone the head of OSR loop and as result the type of locals is incorrect in osr_start block in ciTypeFlow info. C2 generates runtime checks for locals and uncommon_trap to verify that OSR information is correct during execution. The code hit the uncommon trap, method is deoptimized, C2 does the same osr compilation again. And this repeats until PerMethodRecompilationCutoff/2 (200) is reached. >> >> Don't clone the head of OSR loop. > > This is a reasonable fix. > > Here's the part I'm missing: How do we ensure that we find the problem if something similar happens again? By "similar" I mean a serious inaccuracy in the ciTypeFlow type model. > > Perhaps we could add an assert which would detect the problem (e.g., null type at OSR entry point) and raise an error. Ideally, if you were to comment out your fix but put in the assert, it would fire immediately on your test case. You need some kind of duplicated type flow analysis for that. It is not simple null or not null, the local may stay null if it is not updated in a loop but after it. Vladimir > > ? John > > From roland.westrelin at oracle.com Thu Sep 20 09:25:26 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 20 Sep 2012 18:25:26 +0200 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal Message-ID: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> compilers and SA support for compressed klass pointers. http://cr.openjdk.java.net/~roland/7054512/webrev.00/ Roland. From roland.westrelin at oracle.com Thu Sep 20 11:45:55 2012 From: roland.westrelin at oracle.com (roland.westrelin at oracle.com) Date: Thu, 20 Sep 2012 18:45:55 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() Message-ID: <20120920184559.849FF47BFD@hg.openjdk.java.net> Changeset: 7eca5de9e0b6 Author: roland Date: 2012-09-20 16:49 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7eca5de9e0b6 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() Summary: use shorter instruction sequences for atomic add and atomic exchange when possible. Reviewed-by: kvn, jrose ! src/cpu/sparc/vm/assembler_sparc.inline.hpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/x86/vm/x86.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/adlc/formssel.cpp ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_Canonicalizer.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_InstructionPrinter.cpp ! src/share/vm/c1/c1_InstructionPrinter.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_Optimizer.cpp ! src/share/vm/c1/c1_ValueMap.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/escape.hpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/runtime/vm_version.cpp ! src/share/vm/runtime/vm_version.hpp From vladimir.kozlov at oracle.com Thu Sep 20 12:27:09 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 20 Sep 2012 12:27:09 -0700 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal In-Reply-To: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> References: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> Message-ID: <505B6E0D.1070407@oracle.com> This look good. Coleen, why we need relocation for metadata pointers? Thanks, Vladimir Roland Westrelin wrote: > compilers and SA support for compressed klass pointers. > > http://cr.openjdk.java.net/~roland/7054512/webrev.00/ > > Roland. From coleen.phillimore at oracle.com Thu Sep 20 12:49:50 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Thu, 20 Sep 2012 15:49:50 -0400 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal In-Reply-To: <505B6E0D.1070407@oracle.com> References: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> <505B6E0D.1070407@oracle.com> Message-ID: <505B735E.3090701@oracle.com> There's code in nmethod.cpp that iterates over these pointers and makes sure that the class_loader associated with this metadata is added to the oop section of the nmethod. This is so the class loader isn't unloaded and metadata deallocated. I think that's the main reason we save it when we're generating code in the oopRelocation area. There might be other reasons but I don't know offhand. Coleen On 9/20/2012 3:27 PM, Vladimir Kozlov wrote: > This look good. > > Coleen, why we need relocation for metadata pointers? > > Thanks, > Vladimir > > Roland Westrelin wrote: >> compilers and SA support for compressed klass pointers. >> >> http://cr.openjdk.java.net/~roland/7054512/webrev.00/ >> >> Roland. From vladimir.kozlov at oracle.com Thu Sep 20 12:49:44 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 20 Sep 2012 12:49:44 -0700 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal In-Reply-To: <505B735E.3090701@oracle.com> References: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> <505B6E0D.1070407@oracle.com> <505B735E.3090701@oracle.com> Message-ID: <505B7358.40907@oracle.com> Thanks, Coleen Vladimir Coleen Phillimore wrote: > > There's code in nmethod.cpp that iterates over these pointers and makes > sure that the class_loader associated with this metadata is added to the > oop section of the nmethod. This is so the class loader isn't unloaded > and metadata deallocated. > > I think that's the main reason we save it when we're generating code in > the oopRelocation area. There might be other reasons but I don't know > offhand. > > Coleen > > On 9/20/2012 3:27 PM, Vladimir Kozlov wrote: >> This look good. >> >> Coleen, why we need relocation for metadata pointers? >> >> Thanks, >> Vladimir >> >> Roland Westrelin wrote: >>> compilers and SA support for compressed klass pointers. >>> >>> http://cr.openjdk.java.net/~roland/7054512/webrev.00/ >>> >>> Roland. From vladimir.kozlov at oracle.com Thu Sep 20 14:45:14 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 20 Sep 2012 14:45:14 -0700 Subject: Branch removal In-Reply-To: <50598580.7070302@gmx.net> References: <50598580.7070302@gmx.net> Message-ID: <505B8E6A.6020907@oracle.com> Hi, Patrick The first step I would do is to find why current code in conditional_move() does not work for you and modify it so it works. The main reason we not always convert such branches into cmoves is higher registers pressure. Also if hardware predict branch correctly it is almost nop. > My questions are: > * How can I assure my transformation leaves a consistent graph? > I found PhaseIdealLoop::verify(), is this appropriate? -XX:+VerifyGraphEdges > * Is there already functionality implemented which removes code > unreachable from above but reachable from below? It happened during call to replace_node() or subsume_node(). You need iteration in IGVN to clean graph after transformations (and don't forget to put modified/new nodes on igvn worklist). > * Is it possible to associate a Phi node with a specific Bool node, in > cases where a Region node has multiple If nodes as predecessors? No. Phi is only associated with Region. > * Would you suggest to place the transformation not at the end of high > level optimizations but elsewhere, e.g. before optimizations? I would suggest to add your transformation into PhaseIdealLoop::build_and_optimize(), look how superword code is invoked. > * Are Java annotations parsed by C2? If so, how to access them? Annotations are parsed during class parsing, see classFileParser.cpp. > * Is it possible to disable uncommon traps (completely or just for one > method)? No. Regards, Vladimir Patrick Metzler wrote: > Hi, > > my plan is to write an additional pass/transformation for the server > compiler; now I have some problems implementing it. The transformation > should delete certain branchings and make use of the conditional move > instruction on Intel platforms, hence do /some sort of/ branch > predication. To be clear: it is not intended to make the code faster or > smaller; I just want to see whether it is possible to compile branching > in Java byte code into native code without branching (in the context of > my computer science thesis). > > For example, I want the if/else statement in the following Java method: > > Object m( Object o1, Object o2, int n) { > Object r; > if (n == 0) > r = o1; > else > r = o2; > return r; > } > > be compiled into native code like this: > > ... method entry ... > testl RCX, RCX > cmovz RBX, RAX > ... method exit ... > > assuming that EAX, EBX and ECX hold parameters o1, o2 and n, > respectively, and that the value of EAX is returned. > > It is fine for me if the emitted code contains branchings as long as > they do not correspond to the if/else statement. (I expect that it > would be infeasible avoiding any branching anyway, due to, e.g., > exceptions during allocation.) It is also fine for me to restrict the > Java programs the transformation would support; e.g., the transformation > could only consider if statements containing no method calls, if > statements with empty else branches, ... > > Of course, the transformation should not be applied globally, but only > on certain branchings. I plan to mark them using Java annotations, > possibly indicating the bytecode index, although I don't know whether > this is easy to evaluate inside the compiler. > > So far, I've tried out two things: First, I borrowed some code from > PhaseIdealLoop::conditional_move in order to replace a Region node and > corresponding If / projection nodes with CMov nodes. I inserted the > transformation at the end of Compile::Optimize(). This works fine for a > simple method, but gives me an error for a method using objects: > > COMPILE SKIPPED: late schedule failed: incorrect graph (not retryable) > > Second, I considered an example containing an if statement with an empty > else statement inside a loop. Here is a sketch of the Java source code: > > MyObject a, aSwap; > // ... code left out here ... > for (E e : arrayList) { > aSwap = a.getCopy(); > aSwap.do(); > if (e.condition()) > a = aSwap; > } > > After high level optimizations, the else branch (which I expected to be > empty) contained some basic blocks, so I changed the transformation such > that it deletes the If node and the else branch, but not necessarily > deletes the corresponding Region node (as it turned out to be the Loop > node). But I was not able to remove the else branch correctly and it > gave me (I think because of CreateEx node I didn't remove): > > COMPILE SKIPPED: infinite loop (not retryable) > > I still need to figure out how to find the Phi nodes referenced in the > if branch I now want to execute always, in order to replace them by CMov > nodes. > > My questions are: > * How can I assure my transformation leaves a consistent graph? > I found PhaseIdealLoop::verify(), is this appropriate? > * Is there already functionality implemented which removes code > unreachable from above but reachable from below? > * Is it possible to associate a Phi node with a specific Bool node, in > cases where a Region node has multiple If nodes as predecessors? > * Would you suggest to place the transformation not at the end of high > level optimizations but elsewhere, e.g. before optimizations? > * Are Java annotations parsed by C2? If so, how to access them? > * Is it possible to disable uncommon traps (completely or just for one > method)? > > > I would be glad if someone had some time to consider my questions. > > Patrick From vladimir.kozlov at oracle.com Thu Sep 20 14:54:09 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 20 Sep 2012 14:54:09 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> Message-ID: <505B9081.5060201@oracle.com> I think it is good and I will push it if nobody objects. Thanks, Vladimir Lindenmaier, Goetz wrote: > Hi, > > > > The Assembler and CodeBuffer classes supply CodeComment / block_comment() > > functionality, which does not work with stubs. The comments are > > not printed with +PrintStubCode or +PrintInterpreter because the > > comments are lost when the code is turned into a Stub, while > > they are kept if the code is copied to a CodeBlob. > > > > We fixed this in our SAP JVM, and contributed the change to the > > ppc-aix-port some while ago, see > > http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. > > > > I propose to add this fix to the OpenJDK mainline. > > A webrev can be found here: > > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > > > Basically the change passes the codeBuffer to the Stub > > constructor, and adapts the disassembler to print the > > comments. > > In the debug build the InterpreterCodelet Stub has a new field > > holding the code comments. > > > > I also added some ttyLocks and \\ns to beautify the output. > > > > Could somebody please create a bug id for this issue and review the changes? > > > > Thank you and best regards, > > Goetz > > > From christian.thalinger at oracle.com Thu Sep 20 17:38:55 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 20 Sep 2012 17:38:55 -0700 Subject: Request for reviews (S): 7199742: A lot of C2 OSR compilations of the same method's bci In-Reply-To: <505B2CCD.4040008@oracle.com> References: <505A7F61.4000801@oracle.com> <3A2DB7F0-75F0-4AB4-8B7C-F1B89038027C@oracle.com> <505B2CCD.4040008@oracle.com> Message-ID: <0C262CFD-6F93-46EA-AB54-32E8BD88CDE7@oracle.com> On Sep 20, 2012, at 7:48 AM, Vladimir Kozlov wrote: > On 9/19/12 11:19 PM, John Rose wrote: >> On Sep 19, 2012, at 7:28 PM, Vladimir Kozlov wrote: >> >>> http://cr.openjdk.java.net/~kvn/7199742/webrev >>> >>> CI type flow analysis clone the head of OSR loop and as result the type of locals is incorrect in osr_start block in ciTypeFlow info. C2 generates runtime checks for locals and uncommon_trap to verify that OSR information is correct during execution. The code hit the uncommon trap, method is deoptimized, C2 does the same osr compilation again. And this repeats until PerMethodRecompilationCutoff/2 (200) is reached. >>> >>> Don't clone the head of OSR loop. >> >> This is a reasonable fix. >> >> Here's the part I'm missing: How do we ensure that we find the problem if something similar happens again? By "similar" I mean a serious inaccuracy in the ciTypeFlow type model. >> >> Perhaps we could add an assert which would detect the problem (e.g., null type at OSR entry point) and raise an error. Ideally, if you were to comment out your fix but put in the assert, it would fire immediately on your test case. > > You need some kind of duplicated type flow analysis for that. It is not simple null or not null, the local may stay null if it is not updated in a loop but after it. It would be nice to have some extra machinery that verifies the type model but is it worth the effort? How many bugs did we have in the past? The only thing I'm worried is that bugs like this one might go by unnoticed because it just triggers some weird compilations (and possibly a slowdown). -- Chris > > Vladimir > >> >> ? John >> >> From christian.thalinger at oracle.com Thu Sep 20 17:43:01 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 20 Sep 2012 17:43:01 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> Message-ID: <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: > Hi, > > The Assembler and CodeBuffer classes supply CodeComment / block_comment() > functionality, which does not work with stubs. The comments are > not printed with +PrintStubCode or +PrintInterpreter because the > comments are lost when the code is turned into a Stub, while > they are kept if the code is copied to a CodeBlob. > > We fixed this in our SAP JVM, and contributed the change to the > ppc-aix-port some while ago, see > http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. > > I propose to add this fix to the OpenJDK mainline. > A webrev can be found here: > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Basically the change passes the codeBuffer to the Stub > constructor, and adapts the disassembler to print the > comments. > In the debug build the InterpreterCodelet Stub has a new field > holding the code comments. > > I also added some ttyLocks and \\ns to beautify the output. + tty->print("\n"); Can you replace these with: + tty->cr(); Otherwise this looks good and we should integrate it. Thanks for contributing! -- Chris > > Could somebody please create a bug id for this issue and review the changes? > > Thank you and best regards, > Goetz From yumin.qi at oracle.com Thu Sep 20 20:10:33 2012 From: yumin.qi at oracle.com (Yumin Qi) Date: Thu, 20 Sep 2012 20:10:33 -0700 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> Message-ID: <505BDAA9.80409@oracle.com> Made a minor changes to CommandProcessor: + // print Java bytecode disassembly + new Command("jdis", "jdis address", false) { + public void doit(Tokens t) { + int tokens = t.countTokens(); + if (tokens != 1) { + usage(); + return; + } + Address a = VM.getVM().getDebugger().parseAddress(t.nextToken()); + Method m = new Method(a); + HTMLGenerator html = new HTMLGenerator(false); + out.println(html.genHTML(m)); + } + }, The input address should be a Method address, not a oop as before. built/tested Thanks --Yumin On 9/19/2012 12:49 AM, Staffan Larsen wrote: > Looks good! > > /Staffan > > On 18 sep 2012, at 19:19, yumin.qi at oracle.com wrote: > >> Again, it is OK now. >> >> Thanks >> Yumin >> >> On 9/18/2012 9:27 AM, yumin.qi at oracle.com wrote: >>> Sorry, please ignore this one, since the make files not listed. Will send again. >>> >>> Thanks >>> Yumin >>> >>> On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: >>>> Hi, >>>> >>>> I have changed code for bsd, enable it work on MacOS, built/tested. >>>> Please have another round of review on files related to bsd. The changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m >>>> >>>> http://cr.openjdk.java.net/~minqi/6879063 >>>> >>>> >>>> Thanks >>>> Yumin >>>> >>>> On 8/28/2012 5:54 PM, Christian Thalinger wrote: >>>>> Looks good. -- Chris >>>>> >>>>> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >>>>> >>>>>> Hi, all >>>>>> >>>>>> Updated with feedback suggestions. Please have a look again at the same link. >>>>>> >>>>>> Thanks >>>>>> Yumin >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 2012/8/27 14:07, Yumin Qi wrote: >>>>>>> Hi, all >>>>>>> >>>>>>> Can I have you code review of >>>>>>> 6879063: SA should use hsdis for disassembly >>>>>>> >>>>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>>>> >>>>>>> The SA has Java based disassemblers for x86 and sparc but amd64. Instead of porting to amd64 we should switch over to using hsdis for it like the JVM does. This requires a new entry point into hsdis, decode_instructions_virtual, which separates the address of the code being disassembled from the buffer containing the code. The existing uses of decode_instructions have been updated to use the new interface and SA Disassembler has Java native methods that call into hsdis and call back up to Java to perform the disassembly. Also changed makefile for hsdis build for both(i386/amd64). >>>>>>> >>>>>>> All the old disassembler logic was deleted since it's incompatible with the new disassembly interface. Also deleted are dbx based SA interface and few other dead files. >>>>>>> >>>>>>> Tested by dumping full assembly from core files. >>>>>>> >>>>>>> Reviewed-by: >>>>>>> Contributed-by: Tom R (never) >>>>>>> >>>>>>> Thanks >>>>>>> Yumin Qi >>>>>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120920/aaa50768/attachment.html From staffan.larsen at oracle.com Thu Sep 20 23:32:09 2012 From: staffan.larsen at oracle.com (Staffan Larsen) Date: Fri, 21 Sep 2012 08:32:09 +0200 Subject: RFR: 6879063: SA should use hsdis for disassembly In-Reply-To: <505BDAA9.80409@oracle.com> References: <503BE193.6090807@oracle.com> <503D58CC.9090806@oracle.com> <50589CB5.3090901@oracle.com> <5058A0FE.5050907@oracle.com> <5058AD1D.1070208@oracle.com> <505BDAA9.80409@oracle.com> Message-ID: Looks good. On 21 sep 2012, at 05:10, Yumin Qi wrote: > Made a minor changes to CommandProcessor: > + // print Java bytecode disassembly > + new Command("jdis", "jdis address", false) { > + public void doit(Tokens t) { > + int tokens = t.countTokens(); > + if (tokens != 1) { > + usage(); > + return; > + } > + Address a = VM.getVM().getDebugger().parseAddress(t.nextToken()); > + Method m = new Method(a); > + HTMLGenerator html = new HTMLGenerator(false); > + out.println(html.genHTML(m)); > + } > + }, > The input address should be a Method address, not a oop as before. > built/tested > > Thanks > --Yumin > > On 9/19/2012 12:49 AM, Staffan Larsen wrote: >> >> Looks good! >> >> /Staffan >> >> On 18 sep 2012, at 19:19, yumin.qi at oracle.com wrote: >> >>> Again, it is OK now. >>> >>> Thanks >>> Yumin >>> >>> On 9/18/2012 9:27 AM, yumin.qi at oracle.com wrote: >>>> Sorry, please ignore this one, since the make files not listed. Will send again. >>>> >>>> Thanks >>>> Yumin >>>> >>>> On 9/18/2012 9:09 AM, yumin.qi at oracle.com wrote: >>>>> Hi, >>>>> >>>>> I have changed code for bsd, enable it work on MacOS, built/tested. >>>>> Please have another round of review on files related to bsd. The changes is in make files and agent/src/os/bsd/MacosxDebuggerLocal.m >>>>> >>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>> >>>>> >>>>> Thanks >>>>> Yumin >>>>> >>>>> On 8/28/2012 5:54 PM, Christian Thalinger wrote: >>>>>> Looks good. -- Chris >>>>>> >>>>>> On Aug 28, 2012, at 4:48 PM, Yumin Qi wrote: >>>>>> >>>>>>> Hi, all >>>>>>> >>>>>>> Updated with feedback suggestions. Please have a look again at the same link. >>>>>>> >>>>>>> Thanks >>>>>>> Yumin >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 2012/8/27 14:07, Yumin Qi wrote: >>>>>>>> Hi, all >>>>>>>> >>>>>>>> Can I have you code review of >>>>>>>> 6879063: SA should use hsdis for disassembly >>>>>>>> >>>>>>>> http://cr.openjdk.java.net/~minqi/6879063 >>>>>>>> >>>>>>>> The SA has Java based disassemblers for x86 and sparc but amd64. Instead of porting to amd64 we should switch over to using hsdis for it like the JVM does. This requires a new entry point into hsdis, decode_instructions_virtual, which separates the address of the code being disassembled from the buffer containing the code. The existing uses of decode_instructions have been updated to use the new interface and SA Disassembler has Java native methods that call into hsdis and call back up to Java to perform the disassembly. Also changed makefile for hsdis build for both(i386/amd64). >>>>>>>> >>>>>>>> All the old disassembler logic was deleted since it's incompatible with the new disassembly interface. Also deleted are dbx based SA interface and few other dead files. >>>>>>>> >>>>>>>> Tested by dumping full assembly from core files. >>>>>>>> >>>>>>>> Reviewed-by: >>>>>>>> Contributed-by: Tom R (never) >>>>>>>> >>>>>>>> Thanks >>>>>>>> Yumin Qi >>>>>>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120921/c402fcd3/attachment.html From goetz.lindenmaier at sap.com Fri Sep 21 00:16:12 2012 From: goetz.lindenmaier at sap.com (Lindenmaier, Goetz) Date: Fri, 21 Sep 2012 09:16:12 +0200 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> Message-ID: <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> Hi, I fixed the line feeds. The new webrev is at the same address: http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ Thanks a lot for reviewing and the positive comments! Goetz -----Original Message----- From: Christian Thalinger [mailto:christian.thalinger at oracle.com] Sent: Freitag, 21. September 2012 02:43 To: Lindenmaier, Goetz Cc: hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (S): add CodeComments functionality to assember stubs On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: > Hi, > > The Assembler and CodeBuffer classes supply CodeComment / block_comment() > functionality, which does not work with stubs. The comments are > not printed with +PrintStubCode or +PrintInterpreter because the > comments are lost when the code is turned into a Stub, while > they are kept if the code is copied to a CodeBlob. > > We fixed this in our SAP JVM, and contributed the change to the > ppc-aix-port some while ago, see > http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. > > I propose to add this fix to the OpenJDK mainline. > A webrev can be found here: > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Basically the change passes the codeBuffer to the Stub > constructor, and adapts the disassembler to print the > comments. > In the debug build the InterpreterCodelet Stub has a new field > holding the code comments. > > I also added some ttyLocks and \\ns to beautify the output. + tty->print("\n"); Can you replace these with: + tty->cr(); Otherwise this looks good and we should integrate it. Thanks for contributing! -- Chris > > Could somebody please create a bug id for this issue and review the changes? > > Thank you and best regards, > Goetz From Patrick.Metzler at gmx.net Fri Sep 21 00:57:21 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Fri, 21 Sep 2012 09:57:21 +0200 Subject: Branch removal In-Reply-To: <505B8E6A.6020907@oracle.com> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> Message-ID: <505C1DE1.2000405@gmx.net> Hi Vladimir, many thanks for your answers! I will use your suggestions. > The first step I would do is to find why current code in > conditional_move() does not work for you and modify it so it works. I don't use conditional_move() because I realized that sometimes I don't want to delete a Region completely, but only delete one incoming Projection (like if the Region is a Loop). And as far as I understand, conditional_move() is only applicable for cases where the branches of an If merge at the same Region. > > * Is it possible to disable uncommon traps (completely or just for > > one method)? > > No. Too bad that uncommon traps can't be avoided. I'll see if I will consider them. If so, perhaps I let them be detected in braches where I don't want them and then cancel the compilation. Best regards, Patrick From christian.thalinger at oracle.com Fri Sep 21 09:23:05 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 21 Sep 2012 09:23:05 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> Message-ID: Looks good. -- Chris On Sep 21, 2012, at 12:16 AM, "Lindenmaier, Goetz" wrote: > Hi, > > I fixed the line feeds. The new webrev is at the same address: > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Thanks a lot for reviewing and the positive comments! > Goetz > > > > -----Original Message----- > From: Christian Thalinger [mailto:christian.thalinger at oracle.com] > Sent: Freitag, 21. September 2012 02:43 > To: Lindenmaier, Goetz > Cc: hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (S): add CodeComments functionality to assember stubs > > > On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: > >> Hi, >> >> The Assembler and CodeBuffer classes supply CodeComment / block_comment() >> functionality, which does not work with stubs. The comments are >> not printed with +PrintStubCode or +PrintInterpreter because the >> comments are lost when the code is turned into a Stub, while >> they are kept if the code is copied to a CodeBlob. >> >> We fixed this in our SAP JVM, and contributed the change to the >> ppc-aix-port some while ago, see >> http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. >> >> I propose to add this fix to the OpenJDK mainline. >> A webrev can be found here: >> http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ >> >> Basically the change passes the codeBuffer to the Stub >> constructor, and adapts the disassembler to print the >> comments. >> In the debug build the InterpreterCodelet Stub has a new field >> holding the code comments. >> >> I also added some ttyLocks and \\ns to beautify the output. > > + tty->print("\n"); > > Can you replace these with: > > + tty->cr(); > > Otherwise this looks good and we should integrate it. Thanks for contributing! > > -- Chris > >> >> Could somebody please create a bug id for this issue and review the changes? >> >> Thank you and best regards, >> Goetz > From vladimir.kozlov at oracle.com Fri Sep 21 09:33:35 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 21 Sep 2012 09:33:35 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> Message-ID: <505C96DF.4020304@oracle.com> Hi Goetz, We require that code changes do not have tabs (\t), trailing spaces and use unix new lines (no CR at the line end). We have jcheck routine which verifies that. Your changes have problems: src/share/vm/code/icBuffer.hpp:52: Trailing whitespace src/share/vm/code/stubs.hpp:75: Trailing whitespace src/share/vm/interpreter/interpreter.hpp:55: Trailing whitespace src/share/vm/runtime/sharedRuntime.cpp:2474: Trailing whitespace Here is description how you can install and use the tool: http://openjdk.java.net/projects/code-tools/jcheck/ Thanks, Vladimir Lindenmaier, Goetz wrote: > Hi, > > I fixed the line feeds. The new webrev is at the same address: > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Thanks a lot for reviewing and the positive comments! > Goetz > > > > -----Original Message----- > From: Christian Thalinger [mailto:christian.thalinger at oracle.com] > Sent: Freitag, 21. September 2012 02:43 > To: Lindenmaier, Goetz > Cc: hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (S): add CodeComments functionality to assember stubs > > > On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: > >> Hi, >> >> The Assembler and CodeBuffer classes supply CodeComment / block_comment() >> functionality, which does not work with stubs. The comments are >> not printed with +PrintStubCode or +PrintInterpreter because the >> comments are lost when the code is turned into a Stub, while >> they are kept if the code is copied to a CodeBlob. >> >> We fixed this in our SAP JVM, and contributed the change to the >> ppc-aix-port some while ago, see >> http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. >> >> I propose to add this fix to the OpenJDK mainline. >> A webrev can be found here: >> http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ >> >> Basically the change passes the codeBuffer to the Stub >> constructor, and adapts the disassembler to print the >> comments. >> In the debug build the InterpreterCodelet Stub has a new field >> holding the code comments. >> >> I also added some ttyLocks and \\ns to beautify the output. > > + tty->print("\n"); > > Can you replace these with: > > + tty->cr(); > > Otherwise this looks good and we should integrate it. Thanks for contributing! > > -- Chris > >> >> Could somebody please create a bug id for this issue and review the changes? >> >> Thank you and best regards, >> Goetz > From john.r.rose at oracle.com Fri Sep 21 11:21:41 2012 From: john.r.rose at oracle.com (John Rose) Date: Fri, 21 Sep 2012 11:21:41 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <505B9081.5060201@oracle.com> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <505B9081.5060201@oracle.com> Message-ID: <64339730-98FC-4144-A557-78C25C6AEB16@oracle.com> On Sep 20, 2012, at 2:54 PM, Vladimir Kozlov wrote: > I think it is good and I will push it if nobody objects. Good. I like it too. You can list me as another reviewer. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120921/6295bc18/attachment.html From john.coomes at oracle.com Fri Sep 21 13:33:30 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:33:30 +0000 Subject: hg: hsx/hotspot-comp: 3 new changesets Message-ID: <20120921203330.852E647C40@hg.openjdk.java.net> Changeset: 2ba6f4da4bf3 Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/2ba6f4da4bf3 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! .hgignore ! Makefile + NewMakefile.gmk ! common/autoconf/autogen.sh ! common/autoconf/basics.m4 ! common/autoconf/boot-jdk.m4 + common/autoconf/bootcycle-spec.gmk.in ! common/autoconf/build-aux/config.guess ! common/autoconf/build-performance.m4 ! common/autoconf/builddeps.conf.example ! common/autoconf/builddeps.m4 + common/autoconf/compare.sh.in ! common/autoconf/configure ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh + common/autoconf/hotspot-spec.gmk.in ! common/autoconf/jdk-options.m4 ! common/autoconf/libraries.m4 ! common/autoconf/platform.m4 ! common/autoconf/source-dirs.m4 ! common/autoconf/spec.gmk.in ! common/autoconf/spec.sh.in ! common/autoconf/toolchain.m4 + common/bin/boot_cycle.sh ! common/bin/compare-objects.sh + common/bin/test_builds.sh + common/bin/unicode2x.sed + common/makefiles/HotspotWrapper.gmk ! common/makefiles/JavaCompilation.gmk ! common/makefiles/MakeBase.gmk ! common/makefiles/MakeHelpers.gmk ! common/makefiles/Makefile ! common/makefiles/NativeCompilation.gmk + common/makefiles/javadoc/CORE_PKGS.gmk + common/makefiles/javadoc/Javadoc.gmk + common/makefiles/javadoc/NON_CORE_PKGS.gmk + common/makefiles/javadoc/Notes.html Changeset: 522dfac8ca4d Author: katleman Date: 2012-09-19 15:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/522dfac8ca4d Merge Changeset: 936702480487 Author: katleman Date: 2012-09-20 13:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/936702480487 Added tag jdk8-b57 for changeset 522dfac8ca4d ! .hgtags From john.coomes at oracle.com Fri Sep 21 13:33:35 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:33:35 +0000 Subject: hg: hsx/hotspot-comp/corba: 3 new changesets Message-ID: <20120921203338.9D97F47C41@hg.openjdk.java.net> Changeset: 5c4f045fbd5f Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/5c4f045fbd5f 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! makefiles/Makefile Changeset: f3ab4163ae01 Author: katleman Date: 2012-09-19 15:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/f3ab4163ae01 Merge Changeset: 18462a19f7bd Author: katleman Date: 2012-09-20 13:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/18462a19f7bd Added tag jdk8-b57 for changeset f3ab4163ae01 ! .hgtags From john.coomes at oracle.com Fri Sep 21 13:33:44 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:33:44 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 3 new changesets Message-ID: <20120921203356.E11EA47C42@hg.openjdk.java.net> Changeset: 2eafc339f7e1 Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/2eafc339f7e1 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! makefiles/Makefile Changeset: 7c9475c7618c Author: katleman Date: 2012-09-19 15:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/7c9475c7618c Merge Changeset: 1cb19abb3f7b Author: katleman Date: 2012-09-20 13:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/1cb19abb3f7b Added tag jdk8-b57 for changeset 7c9475c7618c ! .hgtags From john.coomes at oracle.com Fri Sep 21 13:34:03 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:34:03 +0000 Subject: hg: hsx/hotspot-comp/jaxws: 3 new changesets Message-ID: <20120921203412.43D2D47C43@hg.openjdk.java.net> Changeset: bbcbebb9bc74 Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/bbcbebb9bc74 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! makefiles/Makefile Changeset: b51b611209f1 Author: katleman Date: 2012-09-19 15:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/b51b611209f1 Merge Changeset: cac4c3937063 Author: katleman Date: 2012-09-20 13:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/cac4c3937063 Added tag jdk8-b57 for changeset b51b611209f1 ! .hgtags From john.coomes at oracle.com Fri Sep 21 13:34:23 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:34:23 +0000 Subject: hg: hsx/hotspot-comp/jdk: 8 new changesets Message-ID: <20120921203624.CF00B47C44@hg.openjdk.java.net> Changeset: 71ff959f9a34 Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/71ff959f9a34 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! makefiles/CompileDemos.gmk ! makefiles/CompileJavaClasses.gmk ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/CopyFiles.gmk ! makefiles/CopyIntoClasses.gmk ! makefiles/CopySamples.gmk ! makefiles/CreateJars.gmk ! makefiles/GendataBreakIterator.gmk ! makefiles/GendataFontConfig.gmk ! makefiles/GendataTimeZone.gmk ! makefiles/GenerateClasses.gmk ! makefiles/GenerateData.gmk ! makefiles/GensrcBuffer.gmk ! makefiles/GensrcCharsetCoder.gmk ! makefiles/GensrcIcons.gmk ! makefiles/GensrcJDWP.gmk ! makefiles/GensrcJObjC.gmk ! makefiles/GensrcMisc.gmk ! makefiles/GensrcProperties.gmk ! makefiles/GensrcX11Wrappers.gmk ! makefiles/Images.gmk ! makefiles/Import.gmk ! makefiles/Makefile ! makefiles/Setup.gmk ! makefiles/Tools.gmk + makefiles/mapfiles/launchers/mapfile-x86 + makefiles/mapfiles/launchers/mapfile-x86_64 + makefiles/mapfiles/libawt_headless/reorder-x86 ! makefiles/mapfiles/libjava/mapfile-vers + makefiles/mapfiles/libjava/reorder-x86 ! makefiles/mapfiles/libjli/mapfile-vers + makefiles/mapfiles/libjpeg/reorder-x86 ! makefiles/mapfiles/libnio/mapfile-linux + makefiles/mapfiles/libnio/mapfile-macosx ! makefiles/mapfiles/libnio/mapfile-solaris + makefiles/mapfiles/libnio/reorder-x86 + makefiles/mapfiles/libverify/reorder-x86 ! makefiles/mapfiles/libzip/mapfile-vers + makefiles/mapfiles/libzip/reorder-x86 Changeset: dcbcecbe7b23 Author: ohair Date: 2012-09-18 12:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/dcbcecbe7b23 7198325: Fix more $(sort) issues on lnk commands in makefiles, making binaries more consistent 7130909: Add a more general mechanism for customizing the build logic Reviewed-by: dholmes, tbell, erikj, ihse, ohrstrom ! make/Makefile ! make/com/sun/java/pack/Makefile ! make/common/Defs.gmk ! make/common/Release.gmk ! make/java/jli/Makefile Changeset: ab1523b7ca2a Author: dholmes Date: 2012-09-19 04:26 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/ab1523b7ca2a 7199410: Remove files that were omitted from 7130909 changeset Reviewed-by: ohair - make/common/Defs-embedded.gmk - make/common/Release-embedded.gmk Changeset: 51594d095a4b Author: katleman Date: 2012-09-19 15:46 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/51594d095a4b Merge Changeset: 34202653829a Author: katleman Date: 2012-09-20 13:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/34202653829a Added tag jdk8-b57 for changeset 51594d095a4b ! .hgtags Changeset: 1e827cc26cf6 Author: jcoomes Date: 2012-09-14 15:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1e827cc26cf6 7198162: exclude test MemoryMXBean/LowMemoryTest2.sh Reviewed-by: alanb, dsamersoff, sspitsyn ! test/ProblemList.txt Changeset: 058d66fa372b Author: jcoomes Date: 2012-09-14 16:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/058d66fa372b 7198676: NPG: exclude MemoryMXBean tests which assume a perm gen Reviewed-by: dcubed ! test/ProblemList.txt Changeset: 1dde94130b0c Author: jcoomes Date: 2012-09-21 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1dde94130b0c Merge - make/common/Defs-embedded.gmk - make/common/Release-embedded.gmk From john.coomes at oracle.com Fri Sep 21 13:37:55 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Sep 2012 20:37:55 +0000 Subject: hg: hsx/hotspot-comp/langtools: 3 new changesets Message-ID: <20120921203805.29E6B47C45@hg.openjdk.java.net> Changeset: 463fea75b618 Author: ohair Date: 2012-09-18 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/463fea75b618 7197849: Update new build-infra makefiles Reviewed-by: ihse, erikj, ohrstrom, tbell ! makefiles/Makefile Changeset: 86d5740b9fdc Author: katleman Date: 2012-09-19 15:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/86d5740b9fdc Merge Changeset: bc42f20bfe48 Author: katleman Date: 2012-09-20 13:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/bc42f20bfe48 Added tag jdk8-b57 for changeset 86d5740b9fdc ! .hgtags From christian.thalinger at oracle.com Fri Sep 21 15:06:12 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 21 Sep 2012 15:06:12 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 Message-ID: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> http://cr.openjdk.java.net/~twisti/7200001 7200001: failed C1 OSR compile doesn't get recompiled with C2 Reviewed-by: When a C1 OSR compile bails out we don't recompile the method in C2 which it should: 3661 3 % 3 com.oracle.nashorn.scripts.Script$mult::bench @ 21 (143 bytes) COMPILE SKIPPED: unlinked call site (FIXME needs patching or recompile support) (retry at different tier) The problem is that we only have one flag that indicates a method is not OSR compilable: JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, Unlike for normal compiles where we have a flag for each compiler: JVM_ACC_NOT_C2_COMPILABLE = 0x02000000, JVM_ACC_NOT_C1_COMPILABLE = 0x04000000, The fix is to set not-OSR-compilable for the current compile level and not any level. Since this problem occurs very rarely as C1 usually can compile all methods we set a method not-C1-compilable when it's not-C1-OSR-compilable: void set_not_c1_osr_compilable() { set_not_c1_compilable(); } and wait for C2 to compile it. If this shows a problem in the future we can sacrifice another bit in the flags. src/share/vm/compiler/compileBroker.cpp src/share/vm/compiler/compileBroker.hpp src/share/vm/compiler/compileLog.cpp src/share/vm/oops/method.cpp src/share/vm/oops/method.hpp src/share/vm/runtime/advancedThresholdPolicy.cpp src/share/vm/runtime/compilationPolicy.cpp src/share/vm/runtime/simpleThresholdPolicy.cpp src/share/vm/runtime/vmStructs.cpp src/share/vm/utilities/accessFlags.hpp From vladimir.kozlov at oracle.com Fri Sep 21 15:32:55 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 21 Sep 2012 15:32:55 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors Message-ID: <505CEB17.1080505@oracle.com> http://cr.openjdk.java.net/~kvn/7200264/webrev 7192963 changes disabled shift vectors when count is vector. By accident it also disable supported shift vectors when count is loop invariant value. Replaced is_vector_use() call with explicit check for vector shift's count (member of some pack). Also fixed the check in main (first) loop in profitable() method to not check for scalar promotion case (inputs are the same) which is already done in is_vector_use(). Otherwise cases when input vectors have different size or alignment may pass this check (currently they don't because constructed packs have different elements (ideal nodes) - packs are not constructed for the same inputs (scalar promotion case)). Thanks, Vladimir From vladimir.kozlov at oracle.com Fri Sep 21 15:47:27 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 21 Sep 2012 15:47:27 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> Message-ID: <505CEE7F.5030008@oracle.com> Looks good. But we usually keep "if" check and it's body on separate lines for debugging purpose. You put them on one line in compileBroker.cpp and method.cpp. Thanks, Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7200001 > > 7200001: failed C1 OSR compile doesn't get recompiled with C2 > Reviewed-by: > > When a C1 OSR compile bails out we don't recompile the method in C2 which > it should: > > 3661 3 % 3 com.oracle.nashorn.scripts.Script$mult::bench @ 21 (143 bytes) COMPILE SKIPPED: unlinked call site (FIXME needs patching or recompile support) (retry at different tier) > > The problem is that we only have one flag that indicates a method is not OSR > compilable: > > JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, > > Unlike for normal compiles where we have a flag for each compiler: > > JVM_ACC_NOT_C2_COMPILABLE = 0x02000000, > JVM_ACC_NOT_C1_COMPILABLE = 0x04000000, > > The fix is to set not-OSR-compilable for the current compile level and not > any level. > > Since this problem occurs very rarely as C1 usually can compile all methods > we set a method not-C1-compilable when it's not-C1-OSR-compilable: > > void set_not_c1_osr_compilable() { set_not_c1_compilable(); } > > and wait for C2 to compile it. > > If this shows a problem in the future we can sacrifice another bit in the > flags. > > src/share/vm/compiler/compileBroker.cpp > src/share/vm/compiler/compileBroker.hpp > src/share/vm/compiler/compileLog.cpp > src/share/vm/oops/method.cpp > src/share/vm/oops/method.hpp > src/share/vm/runtime/advancedThresholdPolicy.cpp > src/share/vm/runtime/compilationPolicy.cpp > src/share/vm/runtime/simpleThresholdPolicy.cpp > src/share/vm/runtime/vmStructs.cpp > src/share/vm/utilities/accessFlags.hpp > From vladimir.kozlov at oracle.com Fri Sep 21 16:43:08 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 21 Sep 2012 16:43:08 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules Message-ID: <505CFB8C.8070706@oracle.com> http://cr.openjdk.java.net/~kvn/7200233/webrev Added missed _bottom_type set in ArchDesc::defineExpand(). Added missed vector nodes in MatchRule::is_vector() and in vmStructs. Thanks, Vladimir From christian.thalinger at oracle.com Fri Sep 21 17:46:30 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 21 Sep 2012 17:46:30 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: <505CEE7F.5030008@oracle.com> References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> <505CEE7F.5030008@oracle.com> Message-ID: <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> On Sep 21, 2012, at 3:47 PM, Vladimir Kozlov wrote: > Looks good. But we usually keep "if" check and it's body on separate lines for debugging purpose. You put them on one line in compileBroker.cpp and method.cpp. Ahh, debugging, right. I wanted to make it more compact but you have a good point. I'll undo that. -- Chris > > Thanks, > Vladimir > > Christian Thalinger wrote: >> http://cr.openjdk.java.net/~twisti/7200001 >> 7200001: failed C1 OSR compile doesn't get recompiled with C2 >> Reviewed-by: >> When a C1 OSR compile bails out we don't recompile the method in C2 which it should: >> 3661 3 % 3 com.oracle.nashorn.scripts.Script$mult::bench @ 21 (143 bytes) COMPILE SKIPPED: unlinked call site (FIXME needs patching or recompile support) (retry at different tier) >> The problem is that we only have one flag that indicates a method is not OSR >> compilable: >> JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, >> Unlike for normal compiles where we have a flag for each compiler: >> JVM_ACC_NOT_C2_COMPILABLE = 0x02000000, >> JVM_ACC_NOT_C1_COMPILABLE = 0x04000000, >> The fix is to set not-OSR-compilable for the current compile level and not any level. Since this problem occurs very rarely as C1 usually can compile all methods >> we set a method not-C1-compilable when it's not-C1-OSR-compilable: >> void set_not_c1_osr_compilable() { set_not_c1_compilable(); } >> and wait for C2 to compile it. >> If this shows a problem in the future we can sacrifice another bit in the flags. >> src/share/vm/compiler/compileBroker.cpp >> src/share/vm/compiler/compileBroker.hpp >> src/share/vm/compiler/compileLog.cpp >> src/share/vm/oops/method.cpp >> src/share/vm/oops/method.hpp >> src/share/vm/runtime/advancedThresholdPolicy.cpp >> src/share/vm/runtime/compilationPolicy.cpp >> src/share/vm/runtime/simpleThresholdPolicy.cpp >> src/share/vm/runtime/vmStructs.cpp >> src/share/vm/utilities/accessFlags.hpp From dean.long at oracle.com Fri Sep 21 23:24:38 2012 From: dean.long at oracle.com (Dean Long) Date: Fri, 21 Sep 2012 23:24:38 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <505CEB17.1080505@oracle.com> References: <505CEB17.1080505@oracle.com> Message-ID: <505D59A6.30802@oracle.com> Looks good. dl On 09/21/2012 03:32 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200264/webrev > > 7192963 changes disabled shift vectors when count is vector. By > accident it also disable supported shift vectors when count is loop > invariant value. > > Replaced is_vector_use() call with explicit check for vector shift's > count (member of some pack). > > Also fixed the check in main (first) loop in profitable() method to > not check for scalar promotion case (inputs are the same) which is > already done in is_vector_use(). Otherwise cases when input vectors > have different size or alignment may pass this check (currently they > don't because constructed packs have different elements (ideal nodes) > - packs are not constructed for the same inputs (scalar promotion case)). > > Thanks, > Vladimir From dean.long at oracle.com Fri Sep 21 23:42:26 2012 From: dean.long at oracle.com (Dean Long) Date: Fri, 21 Sep 2012 23:42:26 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <505CFB8C.8070706@oracle.com> References: <505CFB8C.8070706@oracle.com> Message-ID: <505D5DD2.9040601@oracle.com> Looks good and works on my test case. dl On 09/21/2012 04:43 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200233/webrev > > Added missed _bottom_type set in ArchDesc::defineExpand(). > > Added missed vector nodes in MatchRule::is_vector() and in vmStructs. > > Thanks, > Vladimir From coleen.phillimore at oracle.com Mon Sep 24 07:05:50 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Mon, 24 Sep 2012 10:05:50 -0400 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal In-Reply-To: <505B7358.40907@oracle.com> References: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> <505B6E0D.1070407@oracle.com> <505B735E.3090701@oracle.com> <505B7358.40907@oracle.com> Message-ID: <506068BE.6070309@oracle.com> Hi Vladimr, I can't seem to find this code that I'm talking about below. I was looking for it on Friday.. I thought we added the class_loader oop to the oop section of the nmethod. Maybe Tom implemented it differently or we didn't need this to keep metadata alive. Coleen On 9/20/2012 3:49 PM, Vladimir Kozlov wrote: > Thanks, Coleen > > Vladimir > > Coleen Phillimore wrote: >> >> There's code in nmethod.cpp that iterates over these pointers and >> makes sure that the class_loader associated with this metadata is >> added to the oop section of the nmethod. This is so the class >> loader isn't unloaded and metadata deallocated. >> >> I think that's the main reason we save it when we're generating code >> in the oopRelocation area. There might be other reasons but I don't >> know offhand. >> >> Coleen >> >> On 9/20/2012 3:27 PM, Vladimir Kozlov wrote: >>> This look good. >>> >>> Coleen, why we need relocation for metadata pointers? >>> >>> Thanks, >>> Vladimir >>> >>> Roland Westrelin wrote: >>>> compilers and SA support for compressed klass pointers. >>>> >>>> http://cr.openjdk.java.net/~roland/7054512/webrev.00/ >>>> >>>> Roland. From goetz.lindenmaier at sap.com Mon Sep 24 07:44:03 2012 From: goetz.lindenmaier at sap.com (Lindenmaier, Goetz) Date: Mon, 24 Sep 2012 16:44:03 +0200 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <505C96DF.4020304@oracle.com> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> <505C96DF.4020304@oracle.com> Message-ID: <140FA3E3585AD840A3316D2853F974DC1BEC5FBA6C@DEWDFECCR03.wdf.sap.corp> Hi Vladimir, Sorry for the trouble, I didn't know about jcheck. I also prefer code without needless invisible stuff, so I'm happy to use it. I fixed the whitespace. Nevertheless I can't get it through jcheck clean, as I don't have the proper user, bugid etc. I still get: Invalid changeset author: Goetz Lindenmaier Incomplete comment: Missing bugid line Incomplete comment: Missing reviewer attribution Extraneous text in comment I hope this is ok. The fixed webrev is again at http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ Thanks for your patience, Goetz. -----Original Message----- From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] Sent: Friday, September 21, 2012 6:34 PM To: Lindenmaier, Goetz Cc: Christian Thalinger; hotspot-compiler-dev at openjdk.java.net Subject: Re: RFR (S): add CodeComments functionality to assember stubs Hi Goetz, We require that code changes do not have tabs (\t), trailing spaces and use unix new lines (no CR at the line end). We have jcheck routine which verifies that. Your changes have problems: src/share/vm/code/icBuffer.hpp:52: Trailing whitespace src/share/vm/code/stubs.hpp:75: Trailing whitespace src/share/vm/interpreter/interpreter.hpp:55: Trailing whitespace src/share/vm/runtime/sharedRuntime.cpp:2474: Trailing whitespace Here is description how you can install and use the tool: http://openjdk.java.net/projects/code-tools/jcheck/ Thanks, Vladimir Lindenmaier, Goetz wrote: > Hi, > > I fixed the line feeds. The new webrev is at the same address: > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Thanks a lot for reviewing and the positive comments! > Goetz > > > > -----Original Message----- > From: Christian Thalinger [mailto:christian.thalinger at oracle.com] > Sent: Freitag, 21. September 2012 02:43 > To: Lindenmaier, Goetz > Cc: hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (S): add CodeComments functionality to assember stubs > > > On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: > >> Hi, >> >> The Assembler and CodeBuffer classes supply CodeComment / block_comment() >> functionality, which does not work with stubs. The comments are >> not printed with +PrintStubCode or +PrintInterpreter because the >> comments are lost when the code is turned into a Stub, while >> they are kept if the code is copied to a CodeBlob. >> >> We fixed this in our SAP JVM, and contributed the change to the >> ppc-aix-port some while ago, see >> http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. >> >> I propose to add this fix to the OpenJDK mainline. >> A webrev can be found here: >> http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ >> >> Basically the change passes the codeBuffer to the Stub >> constructor, and adapts the disassembler to print the >> comments. >> In the debug build the InterpreterCodelet Stub has a new field >> holding the code comments. >> >> I also added some ttyLocks and \\ns to beautify the output. > > + tty->print("\n"); > > Can you replace these with: > > + tty->cr(); > > Otherwise this looks good and we should integrate it. Thanks for contributing! > > -- Chris > >> >> Could somebody please create a bug id for this issue and review the changes? >> >> Thank you and best regards, >> Goetz > From vladimir.x.ivanov at oracle.com Mon Sep 24 08:08:02 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Mon, 24 Sep 2012 19:08:02 +0400 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <505CEB17.1080505@oracle.com> References: <505CEB17.1080505@oracle.com> Message-ID: <50607752.8020801@oracle.com> Vladimir, What do you think about adding a simple test (parse output for TestIntVect) to check that shift vectors are actually used? Otherwise, looks good to me. Best regards, Vladimir Ivanov On 09/22/12 02:32, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200264/webrev > > 7192963 changes disabled shift vectors when count is vector. By accident > it also disable supported shift vectors when count is loop invariant value. > > Replaced is_vector_use() call with explicit check for vector shift's > count (member of some pack). > > Also fixed the check in main (first) loop in profitable() method to not > check for scalar promotion case (inputs are the same) which is already > done in is_vector_use(). Otherwise cases when input vectors have > different size or alignment may pass this check (currently they don't > because constructed packs have different elements (ideal nodes) - packs > are not constructed for the same inputs (scalar promotion case)). > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Mon Sep 24 10:29:00 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 10:29:00 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <140FA3E3585AD840A3316D2853F974DC1BEC5FBA6C@DEWDFECCR03.wdf.sap.corp> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> <505C96DF.4020304@oracle.com> <140FA3E3585AD840A3316D2853F974DC1BEC5FBA6C@DEWDFECCR03.wdf.sap.corp> Message-ID: <5060985C.5050507@oracle.com> Thank you, Goetz Lindenmaier, Goetz wrote: > Hi Vladimir, > > Sorry for the trouble, I didn't know about jcheck. I also prefer code without No problems. > needless invisible stuff, so I'm happy to use it. > I fixed the whitespace. Nevertheless I can't get it > through jcheck clean, as I don't have the proper user, bugid etc. > > I still get: > Invalid changeset author: Goetz Lindenmaier This field uses openjdk id and you have one: goetz Unfortunately I can't use it for these changes in Hotspot since you are not, yet, Author for HSX (Hotspot) project. You can be nominated after few contributions if you want. > Incomplete comment: Missing bugid line I included you in interest list when I created bug you should known bug id. > Incomplete comment: Missing reviewer attribution > Extraneous text in comment Here is changeset comment I will use: 7200163: add CodeComments functionality to assember stubs Summary: Pass the codeBuffer to the Stub constructor, and adapts the disassembler to print the comments. Reviewed-by: jrose, kvn, twisti Contributed-by: Goetz Lindenmaier > I hope this is ok. Yes, it is definitely ok. With latest changes commit instruction passed without problems. I will submit job to push it. Regards, Vladimir > > The fixed webrev is again at > http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ > > Thanks for your patience, > Goetz. > > -----Original Message----- > From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] > Sent: Friday, September 21, 2012 6:34 PM > To: Lindenmaier, Goetz > Cc: Christian Thalinger; hotspot-compiler-dev at openjdk.java.net > Subject: Re: RFR (S): add CodeComments functionality to assember stubs > > Hi Goetz, > > We require that code changes do not have tabs (\t), trailing spaces and use unix > new lines (no CR at the line end). We have jcheck routine which verifies that. > Your changes have problems: > > src/share/vm/code/icBuffer.hpp:52: Trailing whitespace > src/share/vm/code/stubs.hpp:75: Trailing whitespace > src/share/vm/interpreter/interpreter.hpp:55: Trailing whitespace > src/share/vm/runtime/sharedRuntime.cpp:2474: Trailing whitespace > > Here is description how you can install and use the tool: > > http://openjdk.java.net/projects/code-tools/jcheck/ > > Thanks, > Vladimir > > Lindenmaier, Goetz wrote: >> Hi, >> >> I fixed the line feeds. The new webrev is at the same address: >> http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ >> >> Thanks a lot for reviewing and the positive comments! >> Goetz >> >> >> >> -----Original Message----- >> From: Christian Thalinger [mailto:christian.thalinger at oracle.com] >> Sent: Freitag, 21. September 2012 02:43 >> To: Lindenmaier, Goetz >> Cc: hotspot-compiler-dev at openjdk.java.net >> Subject: Re: RFR (S): add CodeComments functionality to assember stubs >> >> >> On Sep 19, 2012, at 5:20 AM, "Lindenmaier, Goetz" wrote: >> >>> Hi, >>> >>> The Assembler and CodeBuffer classes supply CodeComment / block_comment() >>> functionality, which does not work with stubs. The comments are >>> not printed with +PrintStubCode or +PrintInterpreter because the >>> comments are lost when the code is turned into a Stub, while >>> they are kept if the code is copied to a CodeBlob. >>> >>> We fixed this in our SAP JVM, and contributed the change to the >>> ppc-aix-port some while ago, see >>> http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/d65d0876ab43. >>> >>> I propose to add this fix to the OpenJDK mainline. >>> A webrev can be found here: >>> http://cr.openjdk.java.net/~goetz/webrevs/webrev-comments_in_stubs/ >>> >>> Basically the change passes the codeBuffer to the Stub >>> constructor, and adapts the disassembler to print the >>> comments. >>> In the debug build the InterpreterCodelet Stub has a new field >>> holding the code comments. >>> >>> I also added some ttyLocks and \\ns to beautify the output. >> + tty->print("\n"); >> >> Can you replace these with: >> >> + tty->cr(); >> >> Otherwise this looks good and we should integrate it. Thanks for contributing! >> >> -- Chris >> >>> >>> Could somebody please create a bug id for this issue and review the changes? >>> >>> Thank you and best regards, >>> Goetz From vladimir.kozlov at oracle.com Mon Sep 24 10:38:13 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 10:38:13 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <505D5DD2.9040601@oracle.com> References: <505CFB8C.8070706@oracle.com> <505D5DD2.9040601@oracle.com> Message-ID: <50609A85.5090200@oracle.com> Thank you, Dean, for reviews. Unfortunately I can add you as reviewer into changesets comments. thanks, Vladimir Dean Long wrote: > Looks good and works on my test case. > > dl > > On 09/21/2012 04:43 PM, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7200233/webrev >> >> Added missed _bottom_type set in ArchDesc::defineExpand(). >> >> Added missed vector nodes in MatchRule::is_vector() and in vmStructs. >> >> Thanks, >> Vladimir > > From vladimir.kozlov at oracle.com Mon Sep 24 11:09:18 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 11:09:18 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <505F7038.4080208@oracle.com> References: <505F7038.4080208@oracle.com> Message-ID: <5060A1CE.80907@oracle.com> I regenerated webrev using Tom's webrev script so that udiffs are more clear: http://cr.openjdk.java.net/~kvn/7193318/webrev/ Typo "necassary": + // Allocate memory for the necassary number of edges. We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: + // Do we really need to allocate space for _in array to have + // double alignment? May be we do since we are casting it to be + // Node**. Otherwise looks good. thanks, Vladimir Bharadwaj Yadavalli wrote: > > De-couple memory allocation for edges from memory allocation for Node > object. > This allows use of placement new operator of Node, viz., new(size_t, > Compile *) > instead of node(size_t, Compile *, int) thereby eliminating the need to > specify > the number of edges in the new operator. > > Deleted placement new operator of Node - node(size_t, Compile *, int). > > Testing done: jtreg, and JPRT > Benchmarking: refworkload. > > Thanks, > > Bharadwaj From christian.thalinger at oracle.com Mon Sep 24 11:17:42 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 11:17:42 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> <505CEE7F.5030008@oracle.com> <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> Message-ID: On Sep 21, 2012, at 5:46 PM, Christian Thalinger wrote: > > On Sep 21, 2012, at 3:47 PM, Vladimir Kozlov wrote: > >> Looks good. But we usually keep "if" check and it's body on separate lines for debugging purpose. You put them on one line in compileBroker.cpp and method.cpp. > > Ahh, debugging, right. I wanted to make it more compact but you have a good point. I'll undo that. I put the body on separate lines again and updated the webrev. -- Chris > > -- Chris > >> >> Thanks, >> Vladimir >> >> Christian Thalinger wrote: >>> http://cr.openjdk.java.net/~twisti/7200001 >>> 7200001: failed C1 OSR compile doesn't get recompiled with C2 >>> Reviewed-by: >>> When a C1 OSR compile bails out we don't recompile the method in C2 which it should: >>> 3661 3 % 3 com.oracle.nashorn.scripts.Script$mult::bench @ 21 (143 bytes) COMPILE SKIPPED: unlinked call site (FIXME needs patching or recompile support) (retry at different tier) >>> The problem is that we only have one flag that indicates a method is not OSR >>> compilable: >>> JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, >>> Unlike for normal compiles where we have a flag for each compiler: >>> JVM_ACC_NOT_C2_COMPILABLE = 0x02000000, >>> JVM_ACC_NOT_C1_COMPILABLE = 0x04000000, >>> The fix is to set not-OSR-compilable for the current compile level and not any level. Since this problem occurs very rarely as C1 usually can compile all methods >>> we set a method not-C1-compilable when it's not-C1-OSR-compilable: >>> void set_not_c1_osr_compilable() { set_not_c1_compilable(); } >>> and wait for C2 to compile it. >>> If this shows a problem in the future we can sacrifice another bit in the flags. >>> src/share/vm/compiler/compileBroker.cpp >>> src/share/vm/compiler/compileBroker.hpp >>> src/share/vm/compiler/compileLog.cpp >>> src/share/vm/oops/method.cpp >>> src/share/vm/oops/method.hpp >>> src/share/vm/runtime/advancedThresholdPolicy.cpp >>> src/share/vm/runtime/compilationPolicy.cpp >>> src/share/vm/runtime/simpleThresholdPolicy.cpp >>> src/share/vm/runtime/vmStructs.cpp >>> src/share/vm/utilities/accessFlags.hpp > From vladimir.kozlov at oracle.com Mon Sep 24 11:20:20 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 11:20:20 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> <505CEE7F.5030008@oracle.com> <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> Message-ID: <5060A464.2030807@oracle.com> Looks good. thanks, Vladimir Christian Thalinger wrote: > On Sep 21, 2012, at 5:46 PM, Christian Thalinger wrote: > >> On Sep 21, 2012, at 3:47 PM, Vladimir Kozlov wrote: >> >>> Looks good. But we usually keep "if" check and it's body on separate lines for debugging purpose. You put them on one line in compileBroker.cpp and method.cpp. >> Ahh, debugging, right. I wanted to make it more compact but you have a good point. I'll undo that. > > I put the body on separate lines again and updated the webrev. > > -- Chris > >> -- Chris >> >>> Thanks, >>> Vladimir >>> >>> Christian Thalinger wrote: >>>> http://cr.openjdk.java.net/~twisti/7200001 >>>> 7200001: failed C1 OSR compile doesn't get recompiled with C2 >>>> Reviewed-by: >>>> When a C1 OSR compile bails out we don't recompile the method in C2 which it should: >>>> 3661 3 % 3 com.oracle.nashorn.scripts.Script$mult::bench @ 21 (143 bytes) COMPILE SKIPPED: unlinked call site (FIXME needs patching or recompile support) (retry at different tier) >>>> The problem is that we only have one flag that indicates a method is not OSR >>>> compilable: >>>> JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, >>>> Unlike for normal compiles where we have a flag for each compiler: >>>> JVM_ACC_NOT_C2_COMPILABLE = 0x02000000, >>>> JVM_ACC_NOT_C1_COMPILABLE = 0x04000000, >>>> The fix is to set not-OSR-compilable for the current compile level and not any level. Since this problem occurs very rarely as C1 usually can compile all methods >>>> we set a method not-C1-compilable when it's not-C1-OSR-compilable: >>>> void set_not_c1_osr_compilable() { set_not_c1_compilable(); } >>>> and wait for C2 to compile it. >>>> If this shows a problem in the future we can sacrifice another bit in the flags. >>>> src/share/vm/compiler/compileBroker.cpp >>>> src/share/vm/compiler/compileBroker.hpp >>>> src/share/vm/compiler/compileLog.cpp >>>> src/share/vm/oops/method.cpp >>>> src/share/vm/oops/method.hpp >>>> src/share/vm/runtime/advancedThresholdPolicy.cpp >>>> src/share/vm/runtime/compilationPolicy.cpp >>>> src/share/vm/runtime/simpleThresholdPolicy.cpp >>>> src/share/vm/runtime/vmStructs.cpp >>>> src/share/vm/utilities/accessFlags.hpp > From christian.thalinger at oracle.com Mon Sep 24 11:22:00 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 11:22:00 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <505CEB17.1080505@oracle.com> References: <505CEB17.1080505@oracle.com> Message-ID: <0C3B88C9-3B5E-4459-BB9A-84702570C8BD@oracle.com> Looks good. -- Chris On Sep 21, 2012, at 3:32 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200264/webrev > > 7192963 changes disabled shift vectors when count is vector. By accident it also disable supported shift vectors when count is loop invariant value. > > Replaced is_vector_use() call with explicit check for vector shift's count (member of some pack). > > Also fixed the check in main (first) loop in profitable() method to not check for scalar promotion case (inputs are the same) which is already done in is_vector_use(). Otherwise cases when input vectors have different size or alignment may pass this check (currently they don't because constructed packs have different elements (ideal nodes) - packs are not constructed for the same inputs (scalar promotion case)). > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Mon Sep 24 11:21:24 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 11:21:24 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <0C3B88C9-3B5E-4459-BB9A-84702570C8BD@oracle.com> References: <505CEB17.1080505@oracle.com> <0C3B88C9-3B5E-4459-BB9A-84702570C8BD@oracle.com> Message-ID: <5060A4A4.1020809@oracle.com> Thank you, Christian Vladimir Christian Thalinger wrote: > Looks good. -- Chris > > On Sep 21, 2012, at 3:32 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7200264/webrev >> >> 7192963 changes disabled shift vectors when count is vector. By accident it also disable supported shift vectors when count is loop invariant value. >> >> Replaced is_vector_use() call with explicit check for vector shift's count (member of some pack). >> >> Also fixed the check in main (first) loop in profitable() method to not check for scalar promotion case (inputs are the same) which is already done in is_vector_use(). Otherwise cases when input vectors have different size or alignment may pass this check (currently they don't because constructed packs have different elements (ideal nodes) - packs are not constructed for the same inputs (scalar promotion case)). >> >> Thanks, >> Vladimir > From christian.thalinger at oracle.com Mon Sep 24 11:33:02 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 11:33:02 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <5060A1CE.80907@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> Message-ID: <8FD6A5D3-5915-4D9D-934D-4106F67CFE90@oracle.com> On Sep 24, 2012, at 11:09 AM, Vladimir Kozlov wrote: > I regenerated webrev using Tom's webrev script so that udiffs are more clear: > > http://cr.openjdk.java.net/~kvn/7193318/webrev/ > > Typo "necassary": > > + // Allocate memory for the necassary number of edges. > > We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: > > + // Do we really need to allocate space for _in array to have > + // double alignment? May be we do since we are casting it to be > + // Node**. > > Otherwise looks good. > > thanks, > Vladimir > > Bharadwaj Yadavalli wrote: >> De-couple memory allocation for edges from memory allocation for Node object. >> This allows use of placement new operator of Node, viz., new(size_t, Compile *) >> instead of node(size_t, Compile *, int) thereby eliminating the need to specify >> the number of edges in the new operator. >> Deleted placement new operator of Node - node(size_t, Compile *, int). >> Testing done: jtreg, and JPRT >> Benchmarking: refworkload. Did you find any slowdown in compilation speed (with PrintCompilation2)? -- Chris >> Thanks, >> Bharadwaj From vladimir.kozlov at oracle.com Mon Sep 24 11:36:13 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 11:36:13 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <8FD6A5D3-5915-4D9D-934D-4106F67CFE90@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> <8FD6A5D3-5915-4D9D-934D-4106F67CFE90@oracle.com> Message-ID: <5060A81D.5040408@oracle.com> > Did you find any slowdown in compilation speed (with PrintCompilation2)? PrintCompilation2 is difficult to compare. I would build "optimized" version and run with TimeCompiler. Or use -XX:+LogCompilation and then run our src/share/tools/LogCompilation tool with -S flag. Vladimir Christian Thalinger wrote: > On Sep 24, 2012, at 11:09 AM, Vladimir Kozlov wrote: > >> I regenerated webrev using Tom's webrev script so that udiffs are more clear: >> >> http://cr.openjdk.java.net/~kvn/7193318/webrev/ >> >> Typo "necassary": >> >> + // Allocate memory for the necassary number of edges. >> >> We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: >> >> + // Do we really need to allocate space for _in array to have >> + // double alignment? May be we do since we are casting it to be >> + // Node**. >> >> Otherwise looks good. >> >> thanks, >> Vladimir >> >> Bharadwaj Yadavalli wrote: >>> De-couple memory allocation for edges from memory allocation for Node object. >>> This allows use of placement new operator of Node, viz., new(size_t, Compile *) >>> instead of node(size_t, Compile *, int) thereby eliminating the need to specify >>> the number of edges in the new operator. >>> Deleted placement new operator of Node - node(size_t, Compile *, int). >>> Testing done: jtreg, and JPRT >>> Benchmarking: refworkload. > > Did you find any slowdown in compilation speed (with PrintCompilation2)? > > -- Chris > >>> Thanks, >>> Bharadwaj > From bharadwaj.yadavalli at oracle.com Mon Sep 24 11:52:38 2012 From: bharadwaj.yadavalli at oracle.com (Bharadwaj Yadavalli) Date: Mon, 24 Sep 2012 14:52:38 -0400 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <5060A81D.5040408@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> <8FD6A5D3-5915-4D9D-934D-4106F67CFE90@oracle.com> <5060A81D.5040408@oracle.com> Message-ID: <5060ABF6.9000604@oracle.com> On 9/24/2012 2:36 PM, Vladimir Kozlov wrote: > > Did you find any slowdown in compilation speed (with > PrintCompilation2)? > > PrintCompilation2 is difficult to compare. I would build "optimized" > version and run with TimeCompiler. Or use -XX:+LogCompilation and then > run our src/share/tools/LogCompilation tool with -S flag. > Thanks, Vladimir and Christian. I'll do the comparison as suggested. Bharadwaj From christian.thalinger at oracle.com Mon Sep 24 11:57:45 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 11:57:45 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <5060A1CE.80907@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> Message-ID: <70C91AC7-68EE-40B3-A969-DC7AAFC77D49@oracle.com> On Sep 24, 2012, at 11:09 AM, Vladimir Kozlov wrote: > I regenerated webrev using Tom's webrev script so that udiffs are more clear: > > http://cr.openjdk.java.net/~kvn/7193318/webrev/ Looks great. Thanks for doing this cleanup! -- Chris > > Typo "necassary": > > + // Allocate memory for the necassary number of edges. > > We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: > > + // Do we really need to allocate space for _in array to have > + // double alignment? May be we do since we are casting it to be > + // Node**. > > Otherwise looks good. > > thanks, > Vladimir > > Bharadwaj Yadavalli wrote: >> De-couple memory allocation for edges from memory allocation for Node object. >> This allows use of placement new operator of Node, viz., new(size_t, Compile *) >> instead of node(size_t, Compile *, int) thereby eliminating the need to specify >> the number of edges in the new operator. >> Deleted placement new operator of Node - node(size_t, Compile *, int). >> Testing done: jtreg, and JPRT >> Benchmarking: refworkload. >> Thanks, >> Bharadwaj From christian.thalinger at oracle.com Mon Sep 24 12:04:48 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 12:04:48 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <70C91AC7-68EE-40B3-A969-DC7AAFC77D49@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> <70C91AC7-68EE-40B3-A969-DC7AAFC77D49@oracle.com> Message-ID: <699DB0E7-142C-4AD9-8E0C-435BB7D53DE8@oracle.com> On Sep 24, 2012, at 11:57 AM, Christian Thalinger wrote: > > On Sep 24, 2012, at 11:09 AM, Vladimir Kozlov wrote: > >> I regenerated webrev using Tom's webrev script so that udiffs are more clear: >> >> http://cr.openjdk.java.net/~kvn/7193318/webrev/ > > Looks great. Thanks for doing this cleanup! One minor question/suggestion: do we want to replace phase->C and friends with a local C variable? - mul_hi = phase->transform(new (phase->C) ConvL2INode(mul_hi)); + mul_hi = phase->transform(new (C) ConvL2INode(mul_hi)); Would make the code more compact and more readable. -- Chris > > -- Chris > >> >> Typo "necassary": >> >> + // Allocate memory for the necassary number of edges. >> >> We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: >> >> + // Do we really need to allocate space for _in array to have >> + // double alignment? May be we do since we are casting it to be >> + // Node**. >> >> Otherwise looks good. >> >> thanks, >> Vladimir >> >> Bharadwaj Yadavalli wrote: >>> De-couple memory allocation for edges from memory allocation for Node object. >>> This allows use of placement new operator of Node, viz., new(size_t, Compile *) >>> instead of node(size_t, Compile *, int) thereby eliminating the need to specify >>> the number of edges in the new operator. >>> Deleted placement new operator of Node - node(size_t, Compile *, int). >>> Testing done: jtreg, and JPRT >>> Benchmarking: refworkload. >>> Thanks, >>> Bharadwaj > From vladimir.kozlov at oracle.com Mon Sep 24 12:27:34 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Mon, 24 Sep 2012 19:27:34 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7200163: add CodeComments functionality to assember stubs Message-ID: <20120924192738.CBABE47CD3@hg.openjdk.java.net> Changeset: b31471cdc53e Author: kvn Date: 2012-09-24 10:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b31471cdc53e 7200163: add CodeComments functionality to assember stubs Summary: Pass the codeBuffer to the Stub constructor, and adapts the disassembler to print the comments. Reviewed-by: jrose, kvn, twisti Contributed-by: goetz.lindenmaier at sap.com ! src/share/vm/asm/codeBuffer.cpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/code/icBuffer.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/stubs.cpp ! src/share/vm/code/stubs.hpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/compiler/disassembler.hpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreter.hpp ! src/share/vm/runtime/sharedRuntime.cpp From John.Coomes at oracle.com Mon Sep 24 12:34:10 2012 From: John.Coomes at oracle.com (John Coomes) Date: Mon, 24 Sep 2012 12:34:10 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <5060985C.5050507@oracle.com> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> <505C96DF.4020304@oracle.com> <140FA3E3585AD840A3316D2853F974DC1BEC5FBA6C@DEWDFECCR03.wdf.sap.corp> <5060985C.5050507@oracle.com> Message-ID: <20576.46514.709839.204265@oracle.com> Vladimir Kozlov (vladimir.kozlov at oracle.com) wrote: > ... > Here is changeset comment I will use: > > 7200163: add CodeComments functionality to assember stubs > Summary: Pass the codeBuffer to the Stub constructor, and adapts the > disassembler to print the comments. > Reviewed-by: jrose, kvn, twisti > Contributed-by: Goetz Lindenmaier > ... Vladimir will figure this out when jcheck complains, but for the benefit of the list, the 'Contributed-by' line should contain email addresses. See http://openjdk.java.net/guide/producingChangeset.html. -John From christian.thalinger at oracle.com Mon Sep 24 12:37:49 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 12:37:49 -0700 Subject: RFR (L): 7054512: Compress class pointers after perm gen removal In-Reply-To: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> References: <6980759A-600A-440C-9B4F-BC72D08CFD29@oracle.com> Message-ID: <95A84D5B-D743-4CFF-9A59-930A064ADEE3@oracle.com> On Sep 20, 2012, at 9:25 AM, Roland Westrelin wrote: > compilers and SA support for compressed klass pointers. > > http://cr.openjdk.java.net/~roland/7054512/webrev.00/ src/cpu/sparc/vm/sparc.ad: +instruct encodeKlass_not_null(iRegN dst, iRegP src) %{ + format %{ "encode_heap_oop_not_null $src, $dst" %} +instruct decodeKlass_not_null(iRegP dst, iRegN src) %{ + format %{ "decode_heap_oop_not_null $src, $dst" %} Copy-paste typo: oop should be klass. src/cpu/x86/vm/x86_64.ad: +instruct storeImmNKlass(memory mem, immNKlass src) ... + ins_encode %{ + address con = (address)$src$$constant; + __ set_narrow_klass($mem$$Address, (Klass*)$src$$constant); + %} con is unused. I haven't reviewed all files yet but I'm working on it... -- Chris > > Roland. From vladimir.kozlov at oracle.com Mon Sep 24 12:39:05 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 12:39:05 -0700 Subject: RFR (S): add CodeComments functionality to assember stubs In-Reply-To: <20576.46514.709839.204265@oracle.com> References: <140FA3E3585AD840A3316D2853F974DC0974F8874F@DEWDFECCR03.wdf.sap.corp> <7678533A-FA8C-47FD-B818-F4D184A1E95A@oracle.com> <140FA3E3585AD840A3316D2853F974DC097505B4ED@DEWDFECCR03.wdf.sap.corp> <505C96DF.4020304@oracle.com> <140FA3E3585AD840A3316D2853F974DC1BEC5FBA6C@DEWDFECCR03.wdf.sap.corp> <5060985C.5050507@oracle.com> <20576.46514.709839.204265@oracle.com> Message-ID: <5060B6D9.4050203@oracle.com> John Coomes wrote: > Vladimir Kozlov (vladimir.kozlov at oracle.com) wrote: >> ... >> Here is changeset comment I will use: >> >> 7200163: add CodeComments functionality to assember stubs >> Summary: Pass the codeBuffer to the Stub constructor, and adapts the >> disassembler to print the comments. >> Reviewed-by: jrose, kvn, twisti >> Contributed-by: Goetz Lindenmaier >> ... > > Vladimir will figure this out when jcheck complains, but for the > benefit of the list, the 'Contributed-by' line should contain email > addresses. See http://openjdk.java.net/guide/producingChangeset.html. Sorry for the mistake in the email. The final push does have email address in Contributed-by line. Vladimir > > -John From christian.thalinger at oracle.com Mon Sep 24 14:27:54 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Mon, 24 Sep 2012 21:27:54 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 2 new changesets Message-ID: <20120924212801.6DC3747CDA@hg.openjdk.java.net> Changeset: 3a327d0b8586 Author: twisti Date: 2012-09-24 11:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/3a327d0b8586 7188176: The JVM should differentiate between T and M series and adjust GC ergonomics Reviewed-by: kvn Contributed-by: Tao Mao ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.hpp Changeset: f7c1f489db55 Author: twisti Date: 2012-09-24 12:31 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f7c1f489db55 Merge From christian.thalinger at oracle.com Mon Sep 24 17:27:42 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 17:27:42 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <505CFB8C.8070706@oracle.com> References: <505CFB8C.8070706@oracle.com> Message-ID: <377D4524-127D-4C90-886F-D48F3DCFBE67@oracle.com> On Sep 21, 2012, at 4:43 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200233/webrev > > Added missed _bottom_type set in ArchDesc::defineExpand(). > > Added missed vector nodes in MatchRule::is_vector() and in vmStructs. Looks good. But wouldn't it be better to have some kind of array with all the vector names in it for MatchRule::is_vector? -- Chris > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Mon Sep 24 17:30:28 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 25 Sep 2012 00:30:28 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 15 new changesets Message-ID: <20120925003100.C447D47CF8@hg.openjdk.java.net> Changeset: 859cd1a76f8a Author: brutisso Date: 2012-09-13 21:20 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/859cd1a76f8a 7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts Reviewed-by: brutisso, johnc, ysr Contributed-by: Hal Mo ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/memory/blockOffsetTable.hpp Changeset: 2a48c84f1d04 Author: coleenp Date: 2012-09-17 10:46 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/2a48c84f1d04 7197269: NPG: FollowReferences has no ClassLoader -> Class link to follow Summary: restore java/lang/ClassLoader.addClass() upcall Reviewed-by: sspitsyn, dcubed, jmasa ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp Changeset: 9646b7ff4d14 Author: brutisso Date: 2012-09-17 10:33 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9646b7ff4d14 7198130: G1: PrintReferenceGC output comes out of order Summary: Move the first part of the GC logging, including timestamp, to the start of the GC Reviewed-by: johnc, jwilhelm ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/runtime/timer.cpp Changeset: 8da5e203b993 Author: jmasa Date: 2012-09-18 14:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8da5e203b993 7197557: NPG: nsk/sysdict/vm/stress/chain/chain004 hangs intermittently Reviewed-by: johnc, ysr ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp Changeset: 8fbf05030e24 Author: johnc Date: 2012-09-19 08:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8fbf05030e24 7016955: G1: remove the is_zeroed parameter from the HeapRegion constructor Summary: The is_zeroed parameter is no longer used and so can be removed. Reviewed-by: johnc, jmasa, brutisso Contributed-by: Brandon Mitchell ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp Changeset: bc675e55b48c Author: johnc Date: 2012-09-19 15:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/bc675e55b48c 7193946: Move warnings associated with UseMemSetInBOT flag Summary: The warnings associated with the UseMemSetInBOT flag are duplicated in CMS and G1. The separate warnings have been removed and single instance of the warning has been placed in a common location. Reviewed-by: brutisso, ysr ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/runtime/arguments.cpp Changeset: b2ef234911c9 Author: johnc Date: 2012-09-20 09:52 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b2ef234911c9 7190666: G1: assert(_unused == 0) failed: Inconsistency in PLAB stats Summary: Reset the fields in ParGCAllocBuffer, that are used for accumulating values for the ResizePLAB sensors in PLABStats, to zero after flushing the values to the PLABStats fields. Flush PLABStats values only when retiring the final allocation buffers prior to disposing of a G1ParScanThreadState object, rather than when retiring every allocation buffer. Reviewed-by: jwilhelm, jmasa, ysr ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/shared/parGCAllocBuffer.cpp ! src/share/vm/gc_implementation/shared/parGCAllocBuffer.hpp Changeset: e861d44e0c9c Author: jmasa Date: 2012-09-20 12:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e861d44e0c9c 7199923: NPG: tools/javac/T7093325.java timeout Reviewed-by: stefank, coleenp, kvn ! src/share/vm/classfile/classLoaderData.hpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/shared/markSweep.cpp Changeset: 46b3b2dd84db Author: jmasa Date: 2012-09-20 13:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/46b3b2dd84db Merge Changeset: 145ffab733e7 Author: jcoomes Date: 2012-09-20 16:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/145ffab733e7 7199082: write warning messages to stderr Reviewed-by: ysr, dholmes, sla ! src/share/vm/utilities/debug.cpp Changeset: da0d652d0c2f Author: katleman Date: 2012-09-20 13:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/da0d652d0c2f Added tag jdk8-b57 for changeset d70102c4cb73 ! .hgtags Changeset: 5f54277c67f7 Author: amurillo Date: 2012-09-21 14:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5f54277c67f7 Merge ! .hgtags - agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGenGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGenGen.java - agent/src/share/classes/sun/jvm/hotspot/memory/ContigPermSpace.java - agent/src/share/classes/sun/jvm/hotspot/memory/PermGen.java - agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolderKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/KlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodDataKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/MethodKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlassKlass.java - agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadOopTreeNodeAdapter.java - make/solaris/makefiles/reorder_COMPILER1_amd64 - make/solaris/makefiles/reorder_COMPILER1_i486 - make/solaris/makefiles/reorder_COMPILER1_sparc - make/solaris/makefiles/reorder_COMPILER1_sparcv9 - make/solaris/makefiles/reorder_COMPILER2_amd64 - make/solaris/makefiles/reorder_COMPILER2_i486 - make/solaris/makefiles/reorder_COMPILER2_sparc - make/solaris/makefiles/reorder_COMPILER2_sparcv9 - make/solaris/makefiles/reorder_CORE_i486 - make/solaris/makefiles/reorder_CORE_sparc - make/solaris/makefiles/reorder_CORE_sparcv9 - make/solaris/makefiles/reorder_TIERED_amd64 - make/solaris/makefiles/reorder_TIERED_i486 - make/solaris/makefiles/reorder_TIERED_sparc - make/solaris/makefiles/reorder_TIERED_sparcv9 - make/solaris/reorder.sh - src/cpu/sparc/vm/dump_sparc.cpp - src/cpu/x86/vm/dump_x86_32.cpp - src/cpu/x86/vm/dump_x86_64.cpp - src/cpu/zero/vm/dump_zero.cpp - src/share/vm/ci/ciArrayKlassKlass.hpp - src/share/vm/ci/ciCPCache.cpp - src/share/vm/ci/ciCPCache.hpp - src/share/vm/ci/ciInstanceKlassKlass.cpp - src/share/vm/ci/ciInstanceKlassKlass.hpp - src/share/vm/ci/ciKlassKlass.cpp - src/share/vm/ci/ciKlassKlass.hpp - src/share/vm/ci/ciMethodKlass.cpp - src/share/vm/ci/ciMethodKlass.hpp - src/share/vm/ci/ciObjArrayKlassKlass.cpp - src/share/vm/ci/ciObjArrayKlassKlass.hpp - src/share/vm/ci/ciTypeArrayKlassKlass.cpp - src/share/vm/ci/ciTypeArrayKlassKlass.hpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp - src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp - src/share/vm/memory/classify.cpp - src/share/vm/memory/classify.hpp - src/share/vm/memory/compactPermGen.hpp - src/share/vm/memory/compactingPermGenGen.cpp - src/share/vm/memory/compactingPermGenGen.hpp - src/share/vm/memory/dump.cpp - src/share/vm/memory/permGen.cpp - src/share/vm/memory/permGen.hpp - src/share/vm/memory/restore.cpp - src/share/vm/memory/serialize.cpp - src/share/vm/oops/arrayKlassKlass.cpp - src/share/vm/oops/arrayKlassKlass.hpp - src/share/vm/oops/compiledICHolderKlass.cpp - src/share/vm/oops/compiledICHolderKlass.hpp - src/share/vm/oops/compiledICHolderOop.cpp - src/share/vm/oops/compiledICHolderOop.hpp - src/share/vm/oops/constMethodKlass.cpp - src/share/vm/oops/constMethodKlass.hpp - src/share/vm/oops/constMethodOop.cpp - src/share/vm/oops/constMethodOop.hpp - src/share/vm/oops/constantPoolKlass.cpp - src/share/vm/oops/constantPoolKlass.hpp - src/share/vm/oops/constantPoolOop.cpp - src/share/vm/oops/constantPoolOop.hpp - src/share/vm/oops/cpCacheKlass.cpp - src/share/vm/oops/cpCacheKlass.hpp - src/share/vm/oops/cpCacheOop.cpp - src/share/vm/oops/cpCacheOop.hpp - src/share/vm/oops/instanceKlassKlass.cpp - src/share/vm/oops/instanceKlassKlass.hpp - src/share/vm/oops/klassKlass.cpp - src/share/vm/oops/klassKlass.hpp - src/share/vm/oops/klassOop.cpp - src/share/vm/oops/klassOop.hpp - src/share/vm/oops/methodDataKlass.cpp - src/share/vm/oops/methodDataKlass.hpp - src/share/vm/oops/methodDataOop.cpp - src/share/vm/oops/methodDataOop.hpp - src/share/vm/oops/methodKlass.cpp - src/share/vm/oops/methodKlass.hpp - src/share/vm/oops/methodOop.cpp - src/share/vm/oops/methodOop.hpp - src/share/vm/oops/objArrayKlassKlass.cpp - src/share/vm/oops/objArrayKlassKlass.hpp - src/share/vm/oops/typeArrayKlassKlass.cpp - src/share/vm/oops/typeArrayKlassKlass.hpp Changeset: 6bb378c50828 Author: amurillo Date: 2012-09-21 14:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6bb378c50828 Added tag hs25-b02 for changeset 5f54277c67f7 ! .hgtags Changeset: 04ed664b7e30 Author: amurillo Date: 2012-09-21 14:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/04ed664b7e30 7200236: new hotspot build - hs25-b03 Reviewed-by: jcoomes ! make/hotspot_version Changeset: c92f43386117 Author: kvn Date: 2012-09-24 14:46 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c92f43386117 Merge ! src/share/vm/classfile/vmSymbols.hpp From christian.thalinger at oracle.com Mon Sep 24 18:12:49 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 24 Sep 2012 18:12:49 -0700 Subject: Request for reviews(M): 7193318: C2: remove number of inputs requirement from Node's new operator In-Reply-To: <699DB0E7-142C-4AD9-8E0C-435BB7D53DE8@oracle.com> References: <505F7038.4080208@oracle.com> <5060A1CE.80907@oracle.com> <70C91AC7-68EE-40B3-A969-DC7AAFC77D49@oracle.com> <699DB0E7-142C-4AD9-8E0C-435BB7D53DE8@oracle.com> Message-ID: <0C5D86A7-40C6-485F-A7C4-94C147EA7AB2@oracle.com> On Sep 24, 2012, at 12:04 PM, Christian Thalinger wrote: > > On Sep 24, 2012, at 11:57 AM, Christian Thalinger wrote: > >> >> On Sep 24, 2012, at 11:09 AM, Vladimir Kozlov wrote: >> >>> I regenerated webrev using Tom's webrev script so that udiffs are more clear: >>> >>> http://cr.openjdk.java.net/~kvn/7193318/webrev/ >> >> Looks great. Thanks for doing this cleanup! > > One minor question/suggestion: do we want to replace phase->C and friends with a local C variable? > > - mul_hi = phase->transform(new (phase->C) ConvL2INode(mul_hi)); > + mul_hi = phase->transform(new (C) ConvL2INode(mul_hi)); > > Would make the code more compact and more readable. ...but it would be a too big change to integrate it into this one. Let's file another RFE for that. -- Chris > > -- Chris > >> >> -- Chris >> >>> >>> Typo "necassary": >>> >>> + // Allocate memory for the necassary number of edges. >>> >>> We do such alignment for sparc only. See comment in allocation.hpp. Please, change question to statement: >>> >>> + // Do we really need to allocate space for _in array to have >>> + // double alignment? May be we do since we are casting it to be >>> + // Node**. >>> >>> Otherwise looks good. >>> >>> thanks, >>> Vladimir >>> >>> Bharadwaj Yadavalli wrote: >>>> De-couple memory allocation for edges from memory allocation for Node object. >>>> This allows use of placement new operator of Node, viz., new(size_t, Compile *) >>>> instead of node(size_t, Compile *, int) thereby eliminating the need to specify >>>> the number of edges in the new operator. >>>> Deleted placement new operator of Node - node(size_t, Compile *, int). >>>> Testing done: jtreg, and JPRT >>>> Benchmarking: refworkload. >>>> Thanks, >>>> Bharadwaj >> > From vladimir.kozlov at oracle.com Mon Sep 24 18:42:02 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 18:42:02 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50607752.8020801@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> Message-ID: <50610BEA.2050202@oracle.com> http://cr.openjdk.java.net/~kvn/7200264/webrev.01 I added test. And I also added new method Matcher::vector_shift_cnt_in_vreg() to move vector shift count into vector register only on x86 because other platforms may support it in general register. Thanks, Vladimir Vladimir Ivanov wrote: > Vladimir, > > What do you think about adding a simple test (parse output for > TestIntVect) to check that shift vectors are actually used? > > Otherwise, looks good to me. > > Best regards, > Vladimir Ivanov > > On 09/22/12 02:32, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7200264/webrev >> >> 7192963 changes disabled shift vectors when count is vector. By accident >> it also disable supported shift vectors when count is loop invariant value. >> >> Replaced is_vector_use() call with explicit check for vector shift's >> count (member of some pack). >> >> Also fixed the check in main (first) loop in profitable() method to not >> check for scalar promotion case (inputs are the same) which is already >> done in is_vector_use(). Otherwise cases when input vectors have >> different size or alignment may pass this check (currently they don't >> because constructed packs have different elements (ideal nodes) - packs >> are not constructed for the same inputs (scalar promotion case)). >> >> Thanks, >> Vladimir From vladimir.kozlov at oracle.com Mon Sep 24 19:04:13 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 24 Sep 2012 19:04:13 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <377D4524-127D-4C90-886F-D48F3DCFBE67@oracle.com> References: <505CFB8C.8070706@oracle.com> <377D4524-127D-4C90-886F-D48F3DCFBE67@oracle.com> Message-ID: <5061111D.5060801@oracle.com> Christian Thalinger wrote: > On Sep 21, 2012, at 4:43 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7200233/webrev >> >> Added missed _bottom_type set in ArchDesc::defineExpand(). >> >> Added missed vector nodes in MatchRule::is_vector() and in vmStructs. > > Looks good. But wouldn't it be better to have some kind of array with all the vector names in it for MatchRule::is_vector? Done: http://cr.openjdk.java.net/~kvn/7200233/webrev.01 Thanks, Vladimir > > -- Chris > >> Thanks, >> Vladimir > From christian.thalinger at oracle.com Mon Sep 24 20:07:31 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Tue, 25 Sep 2012 03:07:31 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7200001: failed C1 OSR compile doesn't get recompiled with C2 Message-ID: <20120925030736.7F71947D04@hg.openjdk.java.net> Changeset: 9191895df19d Author: twisti Date: 2012-09-24 17:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9191895df19d 7200001: failed C1 OSR compile doesn't get recompiled with C2 Reviewed-by: kvn ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/compiler/compileLog.cpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/runtime/advancedThresholdPolicy.cpp ! src/share/vm/runtime/compilationPolicy.cpp ! src/share/vm/runtime/simpleThresholdPolicy.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/accessFlags.hpp From roland.westrelin at oracle.com Tue Sep 25 00:33:49 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 25 Sep 2012 09:33:49 +0200 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <5061111D.5060801@oracle.com> References: <505CFB8C.8070706@oracle.com> <377D4524-127D-4C90-886F-D48F3DCFBE67@oracle.com> <5061111D.5060801@oracle.com> Message-ID: <5C42F73F-47F2-4F02-8C78-E3D7BE955519@oracle.com> > http://cr.openjdk.java.net/~kvn/7200233/webrev.01 Looks good. Roland. From roland.westrelin at oracle.com Tue Sep 25 00:36:42 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 25 Sep 2012 09:36:42 +0200 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50610BEA.2050202@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> Message-ID: <0F7A4495-DF11-4EE1-8A58-850CD056CE71@oracle.com> > http://cr.openjdk.java.net/~kvn/7200264/webrev.01 Looks good. Roland. From roland.westrelin at oracle.com Tue Sep 25 00:42:14 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 25 Sep 2012 09:42:14 +0200 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> <505CEE7F.5030008@oracle.com> <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> Message-ID: > I put the body on separate lines again and updated the webrev. It looks good. Roland. From bengt.rutisson at oracle.com Tue Sep 25 09:12:10 2012 From: bengt.rutisson at oracle.com (bengt.rutisson at oracle.com) Date: Tue, 25 Sep 2012 16:12:10 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7163863: Updated projectcreator Message-ID: <20120925161214.8BB8647D27@hg.openjdk.java.net> Changeset: 1a9b9cfcef41 Author: neliasso Date: 2012-03-29 16:43 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1a9b9cfcef41 7163863: Updated projectcreator Summary: Enable source browsing for all platform dependent code Reviewed-by: brutisso, coleenp ! make/windows/makefiles/projectcreator.make ! src/share/tools/ProjectCreator/BuildConfig.java - src/share/tools/ProjectCreator/DirectoryTree.java - src/share/tools/ProjectCreator/DirectoryTreeNode.java - src/share/tools/ProjectCreator/FileFormatException.java + src/share/tools/ProjectCreator/FileTreeCreator.java + src/share/tools/ProjectCreator/FileTreeCreatorVC10.java + src/share/tools/ProjectCreator/FileTreeCreatorVC7.java ! src/share/tools/ProjectCreator/ProjectCreator.java ! src/share/tools/ProjectCreator/Util.java ! src/share/tools/ProjectCreator/WinGammaPlatform.java ! src/share/tools/ProjectCreator/WinGammaPlatformVC10.java - src/share/tools/ProjectCreator/WinGammaPlatformVC6.java ! src/share/tools/ProjectCreator/WinGammaPlatformVC7.java From vladimir.kozlov at oracle.com Tue Sep 25 10:03:11 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 25 Sep 2012 10:03:11 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <0F7A4495-DF11-4EE1-8A58-850CD056CE71@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> <0F7A4495-DF11-4EE1-8A58-850CD056CE71@oracle.com> Message-ID: <5061E3CF.2070803@oracle.com> Thank you, Roland, for reviews. Vladimir Roland Westrelin wrote: >> http://cr.openjdk.java.net/~kvn/7200264/webrev.01 > > Looks good. > > Roland. From christian.thalinger at oracle.com Tue Sep 25 10:35:23 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 25 Sep 2012 10:35:23 -0700 Subject: Request for reviews (S): 7200233: C2: can't use expand rules for vector instruction rules In-Reply-To: <5061111D.5060801@oracle.com> References: <505CFB8C.8070706@oracle.com> <377D4524-127D-4C90-886F-D48F3DCFBE67@oracle.com> <5061111D.5060801@oracle.com> Message-ID: On Sep 24, 2012, at 7:04 PM, Vladimir Kozlov wrote: > Christian Thalinger wrote: >> On Sep 21, 2012, at 4:43 PM, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7200233/webrev >>> >>> Added missed _bottom_type set in ArchDesc::defineExpand(). >>> >>> Added missed vector nodes in MatchRule::is_vector() and in vmStructs. >> Looks good. But wouldn't it be better to have some kind of array with all the vector names in it for MatchRule::is_vector? > > Done: > > http://cr.openjdk.java.net/~kvn/7200233/webrev.01 Much better. Thanks. -- Chris > > Thanks, > Vladimir > >> -- Chris >>> Thanks, >>> Vladimir From christian.thalinger at oracle.com Tue Sep 25 10:42:52 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 25 Sep 2012 10:42:52 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50610BEA.2050202@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> Message-ID: <5C09A2B8-0FF3-4480-B495-20B07CFE8B35@oracle.com> Looks good. -- Chris On Sep 24, 2012, at 6:42 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200264/webrev.01 > > I added test. > > And I also added new method Matcher::vector_shift_cnt_in_vreg() to move vector shift count into vector register only on x86 because other platforms may support it in general register. > > Thanks, > Vladimir > > Vladimir Ivanov wrote: >> Vladimir, >> What do you think about adding a simple test (parse output for >> TestIntVect) to check that shift vectors are actually used? >> Otherwise, looks good to me. >> Best regards, >> Vladimir Ivanov >> On 09/22/12 02:32, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7200264/webrev >>> >>> 7192963 changes disabled shift vectors when count is vector. By accident >>> it also disable supported shift vectors when count is loop invariant value. >>> >>> Replaced is_vector_use() call with explicit check for vector shift's >>> count (member of some pack). >>> >>> Also fixed the check in main (first) loop in profitable() method to not >>> check for scalar promotion case (inputs are the same) which is already >>> done in is_vector_use(). Otherwise cases when input vectors have >>> different size or alignment may pass this check (currently they don't >>> because constructed packs have different elements (ideal nodes) - packs >>> are not constructed for the same inputs (scalar promotion case)). >>> >>> Thanks, >>> Vladimir From christian.thalinger at oracle.com Tue Sep 25 10:56:24 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 25 Sep 2012 10:56:24 -0700 Subject: RFR (M): 7200001: failed C1 OSR compile doesn't get recompiled with C2 In-Reply-To: References: <9818C61B-DE2D-4550-8312-DEE18C80D20E@oracle.com> <505CEE7F.5030008@oracle.com> <38C602CC-5161-40B0-8EF3-65FA99443E12@oracle.com> Message-ID: <43F37ADE-59C1-4C0D-8B1E-02E77419F2DB@oracle.com> Thank you, Roland. But unfortunately I've already pushed the change. -- Chris On Sep 25, 2012, at 12:42 AM, Roland Westrelin wrote: >> I put the body on separate lines again and updated the webrev. > > It looks good. > > Roland. From vladimir.x.ivanov at oracle.com Tue Sep 25 12:40:01 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 25 Sep 2012 23:40:01 +0400 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50610BEA.2050202@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> Message-ID: <50620891.1010805@oracle.com> Vladimir, Looks great! =) Best regards, Vladimir Ivanov On 9/25/12 5:42 AM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7200264/webrev.01 > > I added test. > > And I also added new method Matcher::vector_shift_cnt_in_vreg() to move > vector shift count into vector register only on x86 because other > platforms may support it in general register. > > Thanks, > Vladimir > > Vladimir Ivanov wrote: >> Vladimir, >> >> What do you think about adding a simple test (parse output for >> TestIntVect) to check that shift vectors are actually used? >> >> Otherwise, looks good to me. >> >> Best regards, >> Vladimir Ivanov >> >> On 09/22/12 02:32, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7200264/webrev >>> >>> 7192963 changes disabled shift vectors when count is vector. By accident >>> it also disable supported shift vectors when count is loop invariant >>> value. >>> >>> Replaced is_vector_use() call with explicit check for vector shift's >>> count (member of some pack). >>> >>> Also fixed the check in main (first) loop in profitable() method to not >>> check for scalar promotion case (inputs are the same) which is already >>> done in is_vector_use(). Otherwise cases when input vectors have >>> different size or alignment may pass this check (currently they don't >>> because constructed packs have different elements (ideal nodes) - packs >>> are not constructed for the same inputs (scalar promotion case)). >>> >>> Thanks, >>> Vladimir From vladimir.kozlov at oracle.com Tue Sep 25 12:53:13 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 25 Sep 2012 12:53:13 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50620891.1010805@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> <50620891.1010805@oracle.com> Message-ID: <50620BA9.2030503@oracle.com> Thanks, Vladimir Vladimir Ivanov wrote: > Vladimir, > > Looks great! =) > > Best regards, > Vladimir Ivanov > > On 9/25/12 5:42 AM, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7200264/webrev.01 >> >> I added test. >> >> And I also added new method Matcher::vector_shift_cnt_in_vreg() to move >> vector shift count into vector register only on x86 because other >> platforms may support it in general register. >> >> Thanks, >> Vladimir >> >> Vladimir Ivanov wrote: >>> Vladimir, >>> >>> What do you think about adding a simple test (parse output for >>> TestIntVect) to check that shift vectors are actually used? >>> >>> Otherwise, looks good to me. >>> >>> Best regards, >>> Vladimir Ivanov >>> >>> On 09/22/12 02:32, Vladimir Kozlov wrote: >>>> http://cr.openjdk.java.net/~kvn/7200264/webrev >>>> >>>> 7192963 changes disabled shift vectors when count is vector. By >>>> accident >>>> it also disable supported shift vectors when count is loop invariant >>>> value. >>>> >>>> Replaced is_vector_use() call with explicit check for vector shift's >>>> count (member of some pack). >>>> >>>> Also fixed the check in main (first) loop in profitable() method to not >>>> check for scalar promotion case (inputs are the same) which is already >>>> done in is_vector_use(). Otherwise cases when input vectors have >>>> different size or alignment may pass this check (currently they don't >>>> because constructed packs have different elements (ideal nodes) - packs >>>> are not constructed for the same inputs (scalar promotion case)). >>>> >>>> Thanks, >>>> Vladimir From vladimir.kozlov at oracle.com Tue Sep 25 13:13:19 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 25 Sep 2012 20:13:19 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7200233: C2: can't use expand rules for vector instruction rules Message-ID: <20120925201323.55B4547D53@hg.openjdk.java.net> Changeset: 0702f188baeb Author: kvn Date: 2012-09-25 10:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0702f188baeb 7200233: C2: can't use expand rules for vector instruction rules Summary: Added missed _bottom_type set in ArchDesc::defineExpand() and missed vector nodes in MatchRule::is_vector(). Reviewed-by: twisti, roland, dlong ! src/share/vm/adlc/formssel.cpp ! src/share/vm/adlc/output_c.cpp ! src/share/vm/runtime/vmStructs.cpp From vladimir.x.ivanov at oracle.com Tue Sep 25 14:23:00 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 26 Sep 2012 01:23:00 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support Message-ID: <506220B4.9090403@oracle.com> 7177003: C1: LogCompilation support http://cr.openjdk.java.net/~vlivanov/7177003/ LogCompilation support in C1 - both client [1] and tiered [2] modes. These changes are only for Hotspot. LogCompilation tool changes will be sent separately. Also: - print code cache state (after each nmethod installation) Example: - consistent nmethod numbering between ordinary and OSR compilations - correct printing of thread id's - added missed tty locks where necessary Thanks! Best regards, Vladimir Ivanov PS: actually, if it simplifies review, I can send cleanup/small enhancements as a separate change. PPS: phew! Finally deciphered how deoptimization in C1 works =) [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log [2] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log From vladimir.kozlov at oracle.com Tue Sep 25 14:47:29 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 25 Sep 2012 14:47:29 -0700 Subject: Request for reviews (S): 7200264: 7192963 changes disabled shift vectors In-Reply-To: <50620BA9.2030503@oracle.com> References: <505CEB17.1080505@oracle.com> <50607752.8020801@oracle.com> <50610BEA.2050202@oracle.com> <50620891.1010805@oracle.com> <50620BA9.2030503@oracle.com> Message-ID: <50622671.2030602@oracle.com> After some discussion and more thinking I decided to remove my hack, method Matcher::vector_shift_cnt_in_vreg(), from these changes and do proper fix in separate changes. I don't like such platform special code in general code. New implementation will use new ideal (vector?) node for vector shift count so that each platform will have own mach node implementation for it. Thanks, Vladimir Vladimir Kozlov wrote: > Thanks, Vladimir > > Vladimir Ivanov wrote: >> Vladimir, >> >> Looks great! =) >> >> Best regards, >> Vladimir Ivanov >> >> On 9/25/12 5:42 AM, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7200264/webrev.01 >>> >>> I added test. >>> >>> And I also added new method Matcher::vector_shift_cnt_in_vreg() to move >>> vector shift count into vector register only on x86 because other >>> platforms may support it in general register. >>> >>> Thanks, >>> Vladimir >>> >>> Vladimir Ivanov wrote: >>>> Vladimir, >>>> >>>> What do you think about adding a simple test (parse output for >>>> TestIntVect) to check that shift vectors are actually used? >>>> >>>> Otherwise, looks good to me. >>>> >>>> Best regards, >>>> Vladimir Ivanov >>>> >>>> On 09/22/12 02:32, Vladimir Kozlov wrote: >>>>> http://cr.openjdk.java.net/~kvn/7200264/webrev >>>>> >>>>> 7192963 changes disabled shift vectors when count is vector. By >>>>> accident >>>>> it also disable supported shift vectors when count is loop invariant >>>>> value. >>>>> >>>>> Replaced is_vector_use() call with explicit check for vector shift's >>>>> count (member of some pack). >>>>> >>>>> Also fixed the check in main (first) loop in profitable() method to >>>>> not >>>>> check for scalar promotion case (inputs are the same) which is already >>>>> done in is_vector_use(). Otherwise cases when input vectors have >>>>> different size or alignment may pass this check (currently they don't >>>>> because constructed packs have different elements (ideal nodes) - >>>>> packs >>>>> are not constructed for the same inputs (scalar promotion case)). >>>>> >>>>> Thanks, >>>>> Vladimir From vladimir.kozlov at oracle.com Tue Sep 25 15:47:32 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 25 Sep 2012 15:47:32 -0700 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <506220B4.9090403@oracle.com> References: <506220B4.9090403@oracle.com> Message-ID: <50623484.3020805@oracle.com> Good changes! Small thing: in method.cpp and deoptimization.cpp remove (int) cast from os::current_thread_id() if you want tou use UINTX format (it reads 64bit in 64b VM). Thanks, Vladimir Vladimir Ivanov wrote: > 7177003: C1: LogCompilation support > http://cr.openjdk.java.net/~vlivanov/7177003/ > > LogCompilation support in C1 - both client [1] and tiered [2] modes. > > These changes are only for Hotspot. LogCompilation tool changes will be > sent separately. > > Also: > - print code cache state (after each nmethod installation) > Example: > total_blobs='258' > nmethods='50' > adapters='133' > free_code_cache='98839808' > largest_free_block='98832512'/> > > - consistent nmethod numbering between ordinary and OSR compilations > - correct printing of thread id's > - added missed tty locks where necessary > > Thanks! > > Best regards, > Vladimir Ivanov > > PS: actually, if it simplifies review, I can send cleanup/small > enhancements as a separate change. > > PPS: phew! Finally deciphered how deoptimization in C1 works =) > > [1] > http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log > > [2] > http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log > From christian.thalinger at oracle.com Tue Sep 25 16:03:29 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 25 Sep 2012 16:03:29 -0700 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <506220B4.9090403@oracle.com> References: <506220B4.9090403@oracle.com> Message-ID: On Sep 25, 2012, at 2:23 PM, Vladimir Ivanov wrote: > 7177003: C1: LogCompilation support > http://cr.openjdk.java.net/~vlivanov/7177003/ src/share/vm/runtime/globals.hpp: - develop(bool, CICountOSR, true, \ + develop(bool, CICountOSR, false, \ Why did you change this one? Because of the consistent method numbering? src/share/vm/c1/c1_GraphBuilder.cpp: - print_inlining(callee, ""); + print_inlining(callee, "receiver is statically known"); Not sure about this change. PrintInlining will now print this line for all inlinees. -- Chris > > LogCompilation support in C1 - both client [1] and tiered [2] modes. > > These changes are only for Hotspot. LogCompilation tool changes will be sent separately. > > Also: > - print code cache state (after each nmethod installation) > Example: > total_blobs='258' > nmethods='50' > adapters='133' > free_code_cache='98839808' > largest_free_block='98832512'/> > > - consistent nmethod numbering between ordinary and OSR compilations > - correct printing of thread id's > - added missed tty locks where necessary > > Thanks! > > Best regards, > Vladimir Ivanov > > PS: actually, if it simplifies review, I can send cleanup/small enhancements as a separate change. > > PPS: phew! Finally deciphered how deoptimization in C1 works =) > > [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log > [2] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log From vladimir.x.ivanov at oracle.com Tue Sep 25 16:55:35 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 26 Sep 2012 03:55:35 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: References: <506220B4.9090403@oracle.com> Message-ID: <50624477.9080504@oracle.com> >> 7177003: C1: LogCompilation support >> http://cr.openjdk.java.net/~vlivanov/7177003/ > > src/share/vm/runtime/globals.hpp: > > - develop(bool, CICountOSR, true, \ > + develop(bool, CICountOSR, false, \ > > Why did you change this one? Because of the consistent method numbering? Exactly. Otherwise, nmethod's id is ambiguous. For debugging purposes it's easy to explicitly enable it. > src/share/vm/c1/c1_GraphBuilder.cpp: > > - print_inlining(callee, ""); > + print_inlining(callee, "receiver is statically known"); > > Not sure about this change. PrintInlining will now print this line for all inlinees. Good catch, missed that. I agree that PrintInlining output for C1 is too overloaded with this change. Formally speaking, there are 2 other messages for successful inlining("force inline by annotation" and "intrinsic") for C1, but these cases are rare. Do you want to keep the current PrintInlining output format or does more compact message work as well? I'm asking because C2 prints "inline (hot)" message for majority of inlined methods. I envision more detailed messages could replace generic "statically known", but it requires considerable code overhaul in GraphBuilder::invoke and I decided to leave it out for now. Best regards, Vladimir Ivanov > > -- Chris > >> >> LogCompilation support in C1 - both client [1] and tiered [2] modes. >> >> These changes are only for Hotspot. LogCompilation tool changes will be sent separately. >> >> Also: >> - print code cache state (after each nmethod installation) >> Example: >> > total_blobs='258' >> nmethods='50' >> adapters='133' >> free_code_cache='98839808' >> largest_free_block='98832512'/> >> >> - consistent nmethod numbering between ordinary and OSR compilations > >> - correct printing of thread id's >> - added missed tty locks where necessary >> >> Thanks! >> >> Best regards, >> Vladimir Ivanov >> >> PS: actually, if it simplifies review, I can send cleanup/small enhancements as a separate change. >> >> PPS: phew! Finally deciphered how deoptimization in C1 works =) >> >> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >> [2] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log > From vladimir.kozlov at oracle.com Tue Sep 25 18:18:45 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Wed, 26 Sep 2012 01:18:45 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7200264: 7192963 changes disabled shift vectors Message-ID: <20120926011851.2F16947D61@hg.openjdk.java.net> Changeset: 06f52c4d0e18 Author: kvn Date: 2012-09-25 15:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/06f52c4d0e18 7200264: 7192963 changes disabled shift vectors Summary: Replaced is_vector_use() call with explicit check for vector shift's count. Reviewed-by: twisti, roland, dlong, vlivanov ! src/share/vm/opto/superword.cpp + test/compiler/7200264/Test7200264.sh + test/compiler/7200264/TestIntVect.java From vladimir.kozlov at oracle.com Tue Sep 25 18:52:02 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 25 Sep 2012 18:52:02 -0700 Subject: Request for reviews (M): 7201026: add vector for shift count Message-ID: <50625FC2.1050900@oracle.com> http://cr.openjdk.java.net/~kvn/7201026/webrev Add generation of vectors for scalar shift count (same for all shift vector's elements). Fixed Test7200264.sh test for RShiftVI case. Thanks, Vladimir From vladimir.x.ivanov at oracle.com Wed Sep 26 08:13:59 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 26 Sep 2012 19:13:59 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <50623484.3020805@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> Message-ID: <50631BB7.7010201@oracle.com> Thank you, Vladimir and Chris. Here are updated changes [1]: - merged with the latest changes in hotspot-comp - removed intx->int conversion as you suggested - removed "receiver is statically known" message from PrintInlining output, but left in it the log Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ On 09/26/12 02:47, Vladimir Kozlov wrote: > Good changes! > > Small thing: in method.cpp and deoptimization.cpp remove (int) cast from > os::current_thread_id() if you want tou use UINTX format (it reads 64bit > in 64b VM). > > Thanks, > Vladimir > > Vladimir Ivanov wrote: >> 7177003: C1: LogCompilation support >> http://cr.openjdk.java.net/~vlivanov/7177003/ >> >> LogCompilation support in C1 - both client [1] and tiered [2] modes. >> >> These changes are only for Hotspot. LogCompilation tool changes will >> be sent separately. >> >> Also: >> - print code cache state (after each nmethod installation) >> Example: >> > total_blobs='258' >> nmethods='50' >> adapters='133' >> free_code_cache='98839808' >> largest_free_block='98832512'/> >> >> - consistent nmethod numbering between ordinary and OSR compilations >> - correct printing of thread id's >> - added missed tty locks where necessary >> >> Thanks! >> >> Best regards, >> Vladimir Ivanov >> >> PS: actually, if it simplifies review, I can send cleanup/small >> enhancements as a separate change. >> PPS: phew! Finally deciphered how deoptimization in C1 works =) >> >> [1] >> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >> >> [2] >> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >> From andrew_nuss at yahoo.com Wed Sep 26 09:39:18 2012 From: andrew_nuss at yahoo.com (Andy Nuss) Date: Wed, 26 Sep 2012 09:39:18 -0700 (PDT) Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> Message-ID: <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> I tested TLAB allocations in single threaded microbenchmark, and when no GC was involved, it seems like it was about 5 nanos overhead to create a small object.? That is plenty fast enough. However, now I'm wondering about my chained objects.? My long running execution function unlinks and relinks many types of chains.? The question is, how strong is the guarantee of co-location with a thread, i.e. when many Java threads are calling this execution function that iteratively creates small objects per thread.? (NOTE: simultaneous calls of the execution function do not share objects in any way).? I.e. is TLAB a threadlocal approach that uses a reasonable sized block of known free memory for each thread? ________________________________ From: Christian Thalinger To: Andy Nuss Cc: hotspot Sent: Monday, September 17, 2012 11:39 AM Subject: Re: hotspot heap and L1 and L2 cache misses On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > Hi, > > Lets say I have a function which mutates a finite automata.? It creates lots of small objects (my own link and double-link structures).? It also does a lot of puts in my own maps.? The objects and maps in turn have references to arrays and some immutable objects. > > My question is, all these arrays and objects created in one function that has to do a ton of construction, are there any things to watchout for so that hotspot will try to create all the objects in this one function/thread colocated on the heap so that L1/L2 cache misses are reduced when the finite automata is executed against data? > > Ideally, someone could tell me that when my class constructors in turn creates new instances of other various size other objects and arrays, they are all colocated on the heap. > > Ideally, someone could tell me that when I have a looping function that creates alot of very small Linked List objects in succession, again they are colocated. > > In general, how does hotspot try with creating new objects to help the L1/L2 caches? > > By the way, I did a test port of my automata to C++ where for objects like the above, I had big memory chunks that my inplace constructors just subdivided the memory chunk that it owned so that all the subobjects were absolutely as colocated as possible. > > This C++ ported automata out-performed my java version by 5x in execution against data.? And in cases where I tested the performance of construction-time cost of the automata where the comparison is between the hotspot new, versus my simple inplace C++ member functions which basically just return the current chunk cursor, after calculating the size of the object, and updating the chunk cursor to point beyond the new size, in those cases I saw 25x performance differences (5 yrs ago). TLAB allocations do the same pointer-bump in HotSpot.? Do the 5x really come from co-located data?? Did you measure it?? And maybe you should redo your 25x experiment.? 5 years is a long time... -- Chris > > Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120926/f5ce18fc/attachment.html From vladimir.kozlov at oracle.com Wed Sep 26 09:54:12 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 26 Sep 2012 09:54:12 -0700 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <50631BB7.7010201@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> Message-ID: <50633334.5050006@oracle.com> Looks good. thanks, Vladimir Vladimir Ivanov wrote: > Thank you, Vladimir and Chris. > > Here are updated changes [1]: > - merged with the latest changes in hotspot-comp > - removed intx->int conversion as you suggested > - removed "receiver is statically known" message from PrintInlining > output, but left in it the log > > Best regards, > Vladimir Ivanov > > [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ > > On 09/26/12 02:47, Vladimir Kozlov wrote: >> Good changes! >> >> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >> in 64b VM). >> >> Thanks, >> Vladimir >> >> Vladimir Ivanov wrote: >>> 7177003: C1: LogCompilation support >>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>> >>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>> >>> These changes are only for Hotspot. LogCompilation tool changes will >>> be sent separately. >>> >>> Also: >>> - print code cache state (after each nmethod installation) >>> Example: >>> >> total_blobs='258' >>> nmethods='50' >>> adapters='133' >>> free_code_cache='98839808' >>> largest_free_block='98832512'/> >>> >>> - consistent nmethod numbering between ordinary and OSR compilations >>> - correct printing of thread id's >>> - added missed tty locks where necessary >>> >>> Thanks! >>> >>> Best regards, >>> Vladimir Ivanov >>> >>> PS: actually, if it simplifies review, I can send cleanup/small >>> enhancements as a separate change. >>> PPS: phew! Finally deciphered how deoptimization in C1 works =) >>> >>> [1] >>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>> >>> [2] >>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >>> From john.cuthbertson at oracle.com Wed Sep 26 10:05:13 2012 From: john.cuthbertson at oracle.com (John Cuthbertson) Date: Wed, 26 Sep 2012 10:05:13 -0700 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> Message-ID: <506335C9.7080203@oracle.com> Hi Andy, TLAB is short for Thread Local Allocation Buffer. Each Java thread has a TLAB and satisfies most allocations from there. When the TLAB is full (or doesn't have enough space to satisfy the current allocation request), it is retired and a new TLAB is allocated (from the shared eden) for the thread. Threads that are allocating either more frequently (or larger objects) will be filling up their TLABs, retiring them, and getting new TLABs faster than other threads. Since (IIRC) you app performs most of its allocations in a small number of threads - you'll mostly get the co-location you're looking for. I say mostly because other threads will fill up their TLAB, retire it, and allocate a new TLAB while your main allocating thread(s) is/are doing the same. So your eden may contain TLABs from your main allocating thread(s) periodically inter-spaced with the retired TLAB from one of the other threads. I also said that most objects will be TLAB allocated. Obviously if the object is larger than the TLAB size it will be allocated in shared eden. Also (IIRC) arrays larger than a certain length are allocated in shared eden. Since you're interested in object co-location you should also research the meaning of the terms "depth-first" and "breadth-first". HTHs JohnC On 09/26/12 09:39, Andy Nuss wrote: > I tested TLAB allocations in single threaded microbenchmark, and when > no GC was involved, it seems like it was about 5 nanos overhead to > create a small object. That is plenty fast enough. > > However, now I'm wondering about my chained objects. My long running > execution function unlinks and relinks many types of chains. The > question is, how strong is the guarantee of co-location with a thread, > i.e. when many Java threads are calling this execution function that > iteratively creates small objects per thread. (NOTE: simultaneous > calls of the execution function do not share objects in any way). > I.e. is TLAB a threadlocal approach that uses a reasonable sized block > of known free memory for each thread? > > ------------------------------------------------------------------------ > *From:* Christian Thalinger > *To:* Andy Nuss > *Cc:* hotspot > *Sent:* Monday, September 17, 2012 11:39 AM > *Subject:* Re: hotspot heap and L1 and L2 cache misses > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss > wrote: > > > Hi, > > > > Lets say I have a function which mutates a finite automata. It > creates lots of small objects (my own link and double-link > structures). It also does a lot of puts in my own maps. The objects > and maps in turn have references to arrays and some immutable objects. > > > > My question is, all these arrays and objects created in one function > that has to do a ton of construction, are there any things to watchout > for so that hotspot will try to create all the objects in this one > function/thread colocated on the heap so that L1/L2 cache misses are > reduced when the finite automata is executed against data? > > > > Ideally, someone could tell me that when my class constructors in > turn creates new instances of other various size other objects and > arrays, they are all colocated on the heap. > > > > Ideally, someone could tell me that when I have a looping function > that creates alot of very small Linked List objects in succession, > again they are colocated. > > > > In general, how does hotspot try with creating new objects to help > the L1/L2 caches? > > > > By the way, I did a test port of my automata to C++ where for > objects like the above, I had big memory chunks that my inplace > constructors just subdivided the memory chunk that it owned so that > all the subobjects were absolutely as colocated as possible. > > > > This C++ ported automata out-performed my java version by 5x in > execution against data. And in cases where I tested the performance > of construction-time cost of the automata where the comparison is > between the hotspot new, versus my simple inplace C++ member functions > which basically just return the current chunk cursor, after > calculating the size of the object, and updating the chunk cursor to > point beyond the new size, in those cases I saw 25x performance > differences (5 yrs ago). > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x > really come from co-located data? Did you measure it? And maybe you > should redo your 25x experiment. 5 years is a long time... > > -- Chris > > > > > Andy > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120926/f34d07a7/attachment-0001.html From vladimir.x.ivanov at oracle.com Wed Sep 26 10:04:55 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 26 Sep 2012 21:04:55 +0400 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> Message-ID: <506335B7.2000906@oracle.com> Andy, TLAB stands for Thread-Local Allocation Buffer :-) So the answer for your question is: definitely yes. There's nice article [1] about TLAB sizing on the web. Best regards, Vladimir Ivanov [1] https://blogs.oracle.com/daviddetlefs/entry/tlab_sizing_an_annoying_little On 09/26/12 20:39, Andy Nuss wrote: > I tested TLAB allocations in single threaded microbenchmark, and when no > GC was involved, it seems like it was about 5 nanos overhead to create a > small object. That is plenty fast enough. > > However, now I'm wondering about my chained objects. My long running > execution function unlinks and relinks many types of chains. The > question is, how strong is the guarantee of co-location with a thread, > i.e. when many Java threads are calling this execution function that > iteratively creates small objects per thread. (NOTE: simultaneous calls > of the execution function do not share objects in any way). I.e. is > TLAB a threadlocal approach that uses a reasonable sized block of known > free memory for each thread? > > ------------------------------------------------------------------------ > *From:* Christian Thalinger > *To:* Andy Nuss > *Cc:* hotspot > *Sent:* Monday, September 17, 2012 11:39 AM > *Subject:* Re: hotspot heap and L1 and L2 cache misses > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss > wrote: > >> Hi, >> >> Lets say I have a function which mutates a finite automata. It > creates lots of small objects (my own link and double-link structures). > It also does a lot of puts in my own maps. The objects and maps in turn > have references to arrays and some immutable objects. >> >> My question is, all these arrays and objects created in one function > that has to do a ton of construction, are there any things to watchout > for so that hotspot will try to create all the objects in this one > function/thread colocated on the heap so that L1/L2 cache misses are > reduced when the finite automata is executed against data? >> >> Ideally, someone could tell me that when my class constructors in turn > creates new instances of other various size other objects and arrays, > they are all colocated on the heap. >> >> Ideally, someone could tell me that when I have a looping function > that creates alot of very small Linked List objects in succession, again > they are colocated. >> >> In general, how does hotspot try with creating new objects to help the > L1/L2 caches? >> >> By the way, I did a test port of my automata to C++ where for objects > like the above, I had big memory chunks that my inplace constructors > just subdivided the memory chunk that it owned so that all the > subobjects were absolutely as colocated as possible. >> >> This C++ ported automata out-performed my java version by 5x in > execution against data. And in cases where I tested the performance of > construction-time cost of the automata where the comparison is between > the hotspot new, versus my simple inplace C++ member functions which > basically just return the current chunk cursor, after calculating the > size of the object, and updating the chunk cursor to point beyond the > new size, in those cases I saw 25x performance differences (5 yrs ago). > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really > come from co-located data? Did you measure it? And maybe you should > redo your 25x experiment. 5 years is a long time... > > -- Chris > >> >> Andy > > > From vitalyd at gmail.com Wed Sep 26 10:19:25 2012 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Wed, 26 Sep 2012 13:19:25 -0400 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> Message-ID: Andy, You probably want to move this thread to hotspot-gc-use and remove compiler. TLAB is thread local at a given time (but can be multiplexed over time). You can view TLAB stats via XX:+PrintTLAB. There are other flags that let you tune TLAB sizing that you can play with. It's not clear what exactly you mean by "link and unlink" but if you're updating references of objects with different lifetime, you may want to turn on conditional card marking for multi threaded scenarios if you're on a recent enough hotspot version -- http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-March/005056.html Sent from my phone On Sep 26, 2012 12:40 PM, "Andy Nuss" wrote: > I tested TLAB allocations in single threaded microbenchmark, and when no > GC was involved, it seems like it was about 5 nanos overhead to create a > small object. That is plenty fast enough. > > However, now I'm wondering about my chained objects. My long running > execution function unlinks and relinks many types of chains. The question > is, how strong is the guarantee of co-location with a thread, i.e. when > many Java threads are calling this execution function that iteratively > creates small objects per thread. (NOTE: simultaneous calls of the > execution function do not share objects in any way). I.e. is TLAB a > threadlocal approach that uses a reasonable sized block of known free > memory for each thread? > > ------------------------------ > *From:* Christian Thalinger > *To:* Andy Nuss > *Cc:* hotspot > *Sent:* Monday, September 17, 2012 11:39 AM > *Subject:* Re: hotspot heap and L1 and L2 cache misses > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > > > Hi, > > > > Lets say I have a function which mutates a finite automata. It creates > lots of small objects (my own link and double-link structures). It also > does a lot of puts in my own maps. The objects and maps in turn have > references to arrays and some immutable objects. > > > > My question is, all these arrays and objects created in one function > that has to do a ton of construction, are there any things to watchout for > so that hotspot will try to create all the objects in this one > function/thread colocated on the heap so that L1/L2 cache misses are > reduced when the finite automata is executed against data? > > > > Ideally, someone could tell me that when my class constructors in turn > creates new instances of other various size other objects and arrays, they > are all colocated on the heap. > > > > Ideally, someone could tell me that when I have a looping function that > creates alot of very small Linked List objects in succession, again they > are colocated. > > > > In general, how does hotspot try with creating new objects to help the > L1/L2 caches? > > > > By the way, I did a test port of my automata to C++ where for objects > like the above, I had big memory chunks that my inplace constructors just > subdivided the memory chunk that it owned so that all the subobjects were > absolutely as colocated as possible. > > > > This C++ ported automata out-performed my java version by 5x in > execution against data. And in cases where I tested the performance of > construction-time cost of the automata where the comparison is between the > hotspot new, versus my simple inplace C++ member functions which basically > just return the current chunk cursor, after calculating the size of the > object, and updating the chunk cursor to point beyond the new size, in > those cases I saw 25x performance differences (5 yrs ago). > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really > come from co-located data? Did you measure it? And maybe you should redo > your 25x experiment. 5 years is a long time... > > -- Chris > > > > > Andy > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120926/c7f4462a/attachment.html From ysr1729 at gmail.com Thu Sep 27 00:36:00 2012 From: ysr1729 at gmail.com (Srinivas Ramakrishna) Date: Thu, 27 Sep 2012 00:36:00 -0700 Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: <506335C9.7080203@oracle.com> References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> <506335C9.7080203@oracle.com> Message-ID: Hi Andy -- What John said, but I think asking about TLABs may be the wrong question if the automata construction occurs over a period of time, and the size of the automaton is large. In that case, minor gc's will definitely intervene and by the time you've finished contructing the entire automaton and start executing it, the state and transition objects are no longer in TLABs, they are probably by now in the old generation. So, what matters is what kind of co-location you are looking for (hence John's note about "breadth first" vs "depth first"). Most GC's in HotSpot will relocate objects via a depth-first evacuation into tenured space, and either sliding compaction or depth-first evacuation in tenured space (or leave them alone). I suspect that with almost any automaton with a reasonably large state space and a reasonably large input alphabet (i.e. unless these automata are thin and linear, and have very regular and local transitions), i'd expect that with HotSpot's GC's any hope of colocation of "adjacent states" are likely remote. But with modern cache architectures and large caches, perhaps cache misses aren't quite as bad as you might think. It's best to measure cache misses to see how bad it is compared to your custom allocator which knew where to place the states so as to colocate them. You might compare that with running with a huge Eden so as to compare with the benefits of "TLAB colocation". -- ramki On Wed, Sep 26, 2012 at 10:05 AM, John Cuthbertson < john.cuthbertson at oracle.com> wrote: > ** > Hi Andy, > > TLAB is short for Thread Local Allocation Buffer. Each Java thread has a > TLAB and satisfies most allocations from there. When the TLAB is full (or > doesn't have enough space to satisfy the current allocation request), it is > retired and a new TLAB is allocated (from the shared eden) for the thread. > Threads that are allocating either more frequently (or larger objects) will > be filling up their TLABs, retiring them, and getting new TLABs faster than > other threads. Since (IIRC) you app performs most of its allocations in a > small number of threads - you'll mostly get the co-location you're looking > for. I say mostly because other threads will fill up their TLAB, retire it, > and allocate a new TLAB while your main allocating thread(s) is/are doing > the same. So your eden may contain TLABs from your main allocating > thread(s) periodically inter-spaced with the retired TLAB from one of the > other threads. > > I also said that most objects will be TLAB allocated. Obviously if the > object is larger than the TLAB size it will be allocated in shared eden. > Also (IIRC) arrays larger than a certain length are allocated in shared > eden. > > Since you're interested in object co-location you should also research > the meaning of the terms "depth-first" and "breadth-first". > > HTHs > > JohnC > > > On 09/26/12 09:39, Andy Nuss wrote: > > I tested TLAB allocations in single threaded microbenchmark, and when no > GC was involved, it seems like it was about 5 nanos overhead to create a > small object. That is plenty fast enough. > > However, now I'm wondering about my chained objects. My long running > execution function unlinks and relinks many types of chains. The question > is, how strong is the guarantee of co-location with a thread, i.e. when > many Java threads are calling this execution function that iteratively > creates small objects per thread. (NOTE: simultaneous calls of the > execution function do not share objects in any way). I.e. is TLAB a > threadlocal approach that uses a reasonable sized block of known free > memory for each thread? > > ------------------------------ > *From:* Christian Thalinger > *To:* Andy Nuss > *Cc:* hotspot > *Sent:* Monday, September 17, 2012 11:39 AM > *Subject:* Re: hotspot heap and L1 and L2 cache misses > > > On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: > > > Hi, > > > > Lets say I have a function which mutates a finite automata. It creates > lots of small objects (my own link and double-link structures). It also > does a lot of puts in my own maps. The objects and maps in turn have > references to arrays and some immutable objects. > > > > My question is, all these arrays and objects created in one function > that has to do a ton of construction, are there any things to watchout for > so that hotspot will try to create all the objects in this one > function/thread colocated on the heap so that L1/L2 cache misses are > reduced when the finite automata is executed against data? > > > > Ideally, someone could tell me that when my class constructors in turn > creates new instances of other various size other objects and arrays, they > are all colocated on the heap. > > > > Ideally, someone could tell me that when I have a looping function that > creates alot of very small Linked List objects in succession, again they > are colocated. > > > > In general, how does hotspot try with creating new objects to help the > L1/L2 caches? > > > > By the way, I did a test port of my automata to C++ where for objects > like the above, I had big memory chunks that my inplace constructors just > subdivided the memory chunk that it owned so that all the subobjects were > absolutely as colocated as possible. > > > > This C++ ported automata out-performed my java version by 5x in > execution against data. And in cases where I tested the performance of > construction-time cost of the automata where the comparison is between the > hotspot new, versus my simple inplace C++ member functions which basically > just return the current chunk cursor, after calculating the size of the > object, and updating the chunk cursor to point beyond the new size, in > those cases I saw 25x performance differences (5 yrs ago). > > TLAB allocations do the same pointer-bump in HotSpot. Do the 5x really > come from co-located data? Did you measure it? And maybe you should redo > your 25x experiment. 5 years is a long time... > > -- Chris > > > > > Andy > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120927/a844b236/attachment.html From Patrick.Metzler at gmx.net Thu Sep 27 01:10:08 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Thu, 27 Sep 2012 10:10:08 +0200 Subject: Branch removal In-Reply-To: <505C1DE1.2000405@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> Message-ID: <506409E0.8040700@gmx.net> Hi, Again, I have a question about replacing Phi nodes with CMove nodes. I managed to do this for cases where I delete the corresponding Region; but when I just replace a Phi with a CMove (without deleting the Region), early schedule fails. I placed the replacement in PhaseIdealLoop::build_and_optimize() after invocation of super word. I also tried out to place it in split_if_with_blocks_pre, as an alternative to conditional_move(), but got also an 'early schedule failed'. I used set_ctrl() as conditional_move(), but have to admit that I didn't get the concept of that. I know early schedule fails because of a missing block selection at node cmovP_reg. How can I correct it? I would appreciate your help, also a reference if there is no simple answer. Best regards, Patrick From andrew_nuss at yahoo.com Thu Sep 27 04:13:18 2012 From: andrew_nuss at yahoo.com (Andy Nuss) Date: Thu, 27 Sep 2012 04:13:18 -0700 (PDT) Subject: hotspot heap and L1 and L2 cache misses In-Reply-To: References: <1347735827.58850.YahooMailNeo@web120306.mail.ne1.yahoo.com> <1348677558.86208.YahooMailNeo@web120301.mail.ne1.yahoo.com> <506335C9.7080203@oracle.com> Message-ID: <1348744398.78430.YahooMailNeo@web120301.mail.ne1.yahoo.com> Hi Srinivas, My current game plan is that for the finite automata data structure, when finally constructed, I will have no choice but to represent it in primarily an array of ints (split into int[][] when big).? There may be supplemental array of Object.? This will give me enough colocation for the automata, even though array access measures as 4x slower in java than class member access for me, most likely because of having to make crashes impossible even with bad indices. What I am really concerned with is my linked lists that are created during the execution of the automata against a string.? My automata are really like NFA, in that multiple states are possible even after construction, so to execute them while looking at one character at a time, I have to build 3 types of chains whose elements are being created, added to chain, and unlinked as well depending on transitions.?? Assuming you are matching the whole document with the automata, you don't want to be hitting eden space hard for each new chain elem or that causes gc slowdown.? But if you avoid that by having free lists for the chains, then after even 1000 chars are matched, you start adding on to the chains with elements that are completely shuffled in memory.? That is the tradeoff. Andy ________________________________ From: Srinivas Ramakrishna To: John Cuthbertson Cc: Andy Nuss ; hotspot ; Christian Thalinger Sent: Thursday, September 27, 2012 12:36 AM Subject: Re: hotspot heap and L1 and L2 cache misses Hi Andy -- What John said, but I think asking about TLABs may be the wrong question if the automata construction occurs over a period of time, and the size of the automaton is large. In that case, minor gc's will definitely intervene and by the time you've finished contructing the entire automaton and start executing it, the state and transition objects are no longer in TLABs, they are probably by now in the old generation. So, what matters is what kind of co-location you are looking for (hence John's note about "breadth first" vs "depth first"). Most GC's in HotSpot will relocate objects via a depth-first evacuation into tenured space, and either sliding compaction or depth-first evacuation in tenured space (or leave them alone). I suspect that with almost any automaton with a reasonably large state space and a reasonably large input alphabet (i.e. unless these automata are thin and linear, and have very regular and local transitions), i'd expect that with HotSpot's GC's any hope of colocation of "adjacent states" are likely remote. But with modern cache architectures and large caches, perhaps cache misses aren't quite as bad as you might think. It's best to measure cache misses to see how bad it is compared to your custom allocator which knew where to place the states so as to colocate them. You might compare that with running with a huge Eden so as to compare with the benefits of "TLAB colocation". -- ramki On Wed, Sep 26, 2012 at 10:05 AM, John Cuthbertson wrote: >Hi Andy, > >TLAB is short for Thread Local Allocation Buffer. Each Java thread has a TLAB and satisfies most allocations from there. When the TLAB is full (or doesn't have enough space to satisfy the current allocation request), it is retired and a new TLAB is allocated (from the shared eden) for the thread. Threads that are allocating either more frequently (or larger objects) will be filling up their TLABs, retiring them, and getting new TLABs faster than other threads. Since (IIRC) you app performs most of its allocations in a small number of threads - you'll mostly get the co-location you're looking for. I say mostly because other threads will fill up their TLAB, retire it, and allocate a new TLAB while your main allocating thread(s) is/are doing the same. So your eden may contain TLABs from your main allocating thread(s) periodically inter-spaced with the retired TLAB from one of the other threads. > >I also said that most objects will be TLAB allocated. Obviously if the object is larger than the TLAB size it will be allocated in shared eden. Also (IIRC) arrays larger than a certain length are allocated in shared eden. > >Since you're interested in object co-location you should also research? the meaning of the terms "depth-first" and "breadth-first". > >HTHs > >JohnC > > >On 09/26/12 09:39, Andy Nuss wrote: >I tested TLAB allocations in single threaded microbenchmark, and when no GC was involved, it seems like it was about 5 nanos overhead to create a small object.? That is plenty fast enough. >> >> >>However, now I'm wondering about my chained objects.? My long running execution function unlinks and relinks many types of chains.? The question is, how strong is the guarantee of co-location with a thread, i.e. when many Java threads are calling this execution function that iteratively creates small objects per thread.? (NOTE: simultaneous calls of the execution function do not share objects in any way).? I.e. is TLAB a threadlocal approach that uses a reasonable sized block of known free memory for each thread? >> >> >> >> >>________________________________ >> From: Christian Thalinger >>To: Andy Nuss >>Cc: hotspot >>Sent: Monday, September 17, 2012 11:39 AM >>Subject: Re: hotspot heap and L1 and L2 cache misses >> >> >>On Sep 15, 2012, at 12:03 PM, Andy Nuss wrote: >> >>> Hi, >>> >>> Lets say I have a function which mutates a finite automata.? It creates lots of small objects (my own link and double-link structures).? It also does a lot of puts in my own maps.? The objects and maps in turn have references to arrays and some immutable objects. >>> >>> My question is, all these arrays and objects created in one function that has to do a ton of construction, are there any things to watchout for so that hotspot will try to create all the objects in this one function/thread colocated on the heap so that L1/L2 cache misses are reduced when the finite automata is executed against data? >>> >>> Ideally, someone could tell me that when my class constructors in turn creates new instances of other various size other objects and arrays, they are all colocated on the heap. >>> >>> Ideally, someone could tell me that when I have a looping function that creates alot of very small Linked List objects in succession, again they are colocated. >>> >>> In general, how does hotspot try with creating new objects to help the L1/L2 caches? >>> >>> By the way, I did a test port of my automata to C++ where for objects like the above, I had big memory chunks that my inplace constructors just subdivided the memory chunk that it owned so that all the subobjects were absolutely as colocated as possible. >>> >>> This C++ ported automata out-performed my java version by 5x in execution against data.? And in cases where I tested the performance of construction-time cost of the automata where the comparison is between the hotspot new, versus my simple inplace C++ member functions which basically just return the current chunk cursor, after calculating the size of the object, and updating the chunk cursor to point beyond the new size, in those cases I saw 25x performance differences (5 yrs ago). >> >>TLAB allocations do the same pointer-bump in HotSpot.? Do the 5x really come from co-located data?? Did you measure it?? And maybe you should redo your 25x experiment.? 5 years is a long time... >> >>-- Chris >> >>> >>> Andy >> >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120927/8e8e408b/attachment-0001.html From vladimir.kozlov at oracle.com Thu Sep 27 08:45:45 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 08:45:45 -0700 Subject: Branch removal In-Reply-To: <506409E0.8040700@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> Message-ID: <506474A9.9080202@oracle.com> Patrick Metzler wrote: > Hi, > > Again, I have a question about replacing Phi nodes with CMove nodes. I > managed to do this for cases where I delete the corresponding Region; > but when I just replace a Phi with a CMove (without deleting the > Region), early schedule fails. By delete you mean replace it with control edge of If node. Right? Also you can't delete it if there are other Phis attached to it. Vladimir > > I placed the replacement in PhaseIdealLoop::build_and_optimize() after > invocation of super word. I also tried out to place it in > split_if_with_blocks_pre, as an alternative to conditional_move(), but > got also an 'early schedule failed'. I used set_ctrl() as > conditional_move(), but have to admit that I didn't get the concept of > that. > > I know early schedule fails because of a missing block selection at node > cmovP_reg. How can I correct it? > > I would appreciate your help, also a reference if there is no simple > answer. > > Best regards, > Patrick From Patrick.Metzler at gmx.net Thu Sep 27 09:41:37 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Thu, 27 Sep 2012 18:41:37 +0200 Subject: Branch removal In-Reply-To: <506474A9.9080202@oracle.com> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> Message-ID: <506481C1.20006@gmx.net> Hi Vladimir, Thanks for your reply. >> Again, I have a question about replacing Phi nodes with CMove nodes. >> I managed to do this for cases where I delete the corresponding >> Region; but when I just replace a Phi with a CMove (without deleting >> the Region), early schedule fails. > > By delete you mean replace it with control edge of If node. Right? Also > you can't delete it if there are other Phis attached to it. Sorry, I should have been more precise. For example, I want this: Ctrl Bool \ / If / \ ... IfTrue IfFalse / \ Iffalse \ / \ / Region D1 D2 / \/ / Phi Phi be replaced by this: _____ Ctrl ... | \ / | \ Iffalse | Bool \ / | / \ / || D1 D2 Region || / / / CMove Phi So it is not possible because there is another Phi at Region? Best regards, Patrick From vladimir.kozlov at oracle.com Thu Sep 27 10:44:46 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 10:44:46 -0700 Subject: Branch removal In-Reply-To: <506481C1.20006@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> Message-ID: <5064908E.4000809@oracle.com> You can't replace such Phi because its data inputs come from different conditions (If nodes). You can only replace Phi from "diamond" shaped graphs: Ctrl Bool \ / If / \ IfTrue IfFalse \ / Region D1 D2 \/ / Phi Could you give a java code example you are trying to optimize? Regards, Vladimir Patrick Metzler wrote: > Hi Vladimir, > > Thanks for your reply. > >>> Again, I have a question about replacing Phi nodes with CMove nodes. >>> I managed to do this for cases where I delete the corresponding >>> Region; but when I just replace a Phi with a CMove (without deleting >>> the Region), early schedule fails. >> >> By delete you mean replace it with control edge of If node. Right? Also >> you can't delete it if there are other Phis attached to it. > > Sorry, I should have been more precise. For example, I want this: > > Ctrl Bool > \ / > If > / \ ... > IfTrue IfFalse / > \ Iffalse > \ / > \ / > Region D1 D2 > / \/ / > Phi Phi > > be replaced by this: > > _____ Ctrl ... > | \ / > | \ Iffalse > | Bool \ / > | / \ / > || D1 D2 Region > || / / / > CMove Phi > > > So it is not possible because there is another Phi at Region? > > Best regards, > Patrick From Patrick.Metzler at gmx.net Thu Sep 27 11:36:16 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Thu, 27 Sep 2012 20:36:16 +0200 Subject: Branch removal In-Reply-To: <5064908E.4000809@oracle.com> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> Message-ID: <50649CA0.2040602@gmx.net> Hi Vladimir, Thanks for your fast answers. > Could you give a java code example you are trying to optimize? A minimized source code example would be (see below for the complete example I'm working on): MyObject a, aSwap; // ... code left out here ... for (E e : arrayList) { aSwap = a.getCopy(); aSwap.do(); if (e.condition()) a = aSwap; } I want the assignment following 'if' to be a 'conditional move'. After parsing, the two branches resulting of the 'if' statement are connected to two different Loop nodes: ... ____ | | | Loop | / | __ ... | | | / | | Loop | | \ | | ... ... ... \ | | If ... ... / \ | | IfTrue IfFalse | |__/ \_| (Here, IfTrue corresponds to e.condition()==false, i.e. the assignment is not executed. '...' stands for multiple basic blocks here.) I want to delete the else (IfTrue) branch, which is empty in the source code but not in the IDEA graph, including the second Loop. Then I want to provide the data input to CallStaticJava (a.getCopy()) through the CMove. > You can't replace such Phi because its data inputs come from different > conditions (If nodes). You can only replace Phi from "diamond" shaped > graphs: Is it possible to first transform the sub graph into a CFG diamond and then optimize it? Best regards, Patrick Complete source code (borrowed from the JGraphT library, http://jgrapht.org/): public void runKruskal(final Graph graph) { Forest forest = new Forest(graph.vertexSet()); Forest forestSwap; double spanningTreeCost; Set edgeList; Set edgeListSwap; ArrayList allEdges = new ArrayList(graph.edgeSet()); Collections.sort(allEdges, new Comparator() { @Override public int compare(E edge1, E edge2) { return Double.valueOf(graph.getEdgeWeight(edge1)) .compareTo(graph.getEdgeWeight(edge2)); } }); spanningTreeCost = 0; edgeList = new HashSet(); for (E edge : allEdges) { forestSwap = forest.getCopy(); edgeListSwap = new HashSet(edgeList); V source = graph.getEdgeSource(edge); V target = graph.getEdgeTarget(edge); forestSwap.union(source, target); edgeListSwap.add(edge); /* Branch to eliminate */ if (!forestSwap.find(source).equals(forestSwap.find(target))) { forest = forestSwap; edgeList = edgeListSwap; spanningTreeCost += graph.getEdgeWeight(edge); } } } From vladimir.kozlov at oracle.com Thu Sep 27 12:01:23 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Thu, 27 Sep 2012 19:01:23 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7193318: C2: remove number of inputs requirement from Node's new operator Message-ID: <20120927190127.E0CA4470CD@hg.openjdk.java.net> Changeset: e626685e9f6c Author: kvn Date: 2012-09-27 09:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e626685e9f6c 7193318: C2: remove number of inputs requirement from Node's new operator Summary: Deleted placement new operator of Node - node(size_t, Compile *, int). Reviewed-by: kvn, twisti Contributed-by: bharadwaj.yadavalli at oracle.com ! src/share/vm/adlc/output_c.cpp ! src/share/vm/opto/addnode.cpp ! src/share/vm/opto/block.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/callnode.cpp ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/divnode.cpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/generateOptoStub.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/graphKit.hpp ! src/share/vm/opto/idealKit.cpp ! src/share/vm/opto/idealKit.hpp ! src/share/vm/opto/ifnode.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/loopPredicate.cpp ! src/share/vm/opto/loopTransform.cpp ! src/share/vm/opto/loopUnswitch.cpp ! src/share/vm/opto/loopnode.cpp ! src/share/vm/opto/loopopts.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/macro.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/mulnode.cpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/output.cpp ! src/share/vm/opto/parse1.cpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/parse3.cpp ! src/share/vm/opto/parseHelper.cpp ! src/share/vm/opto/phaseX.cpp ! src/share/vm/opto/reg_split.cpp ! src/share/vm/opto/split_if.cpp ! src/share/vm/opto/stringopts.cpp ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/superword.cpp ! src/share/vm/opto/vectornode.cpp From vladimir.kozlov at oracle.com Thu Sep 27 12:04:59 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 12:04:59 -0700 Subject: Branch removal In-Reply-To: <50649CA0.2040602@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> Message-ID: <5064A35B.4030506@oracle.com> I think the best solution for you is to modify the java code: aSwap = a.getCopy(); for (E e : arrayList) { aSwap.do(); if (e.condition()) a = aSwap; aSwap = a.getCopy(); } Vladimir Patrick Metzler wrote: > Hi Vladimir, > > Thanks for your fast answers. > > > Could you give a java code example you are trying to optimize? > > A minimized source code example would be (see below for the complete > example I'm working on): > > MyObject a, aSwap; > // ... code left out here ... > for (E e : arrayList) { > aSwap = a.getCopy(); > aSwap.do(); > if (e.condition()) > a = aSwap; > } > > I want the assignment following 'if' to be a 'conditional move'. > > After parsing, the two branches resulting of the 'if' statement are > connected to two different Loop nodes: > > ... ____ > | | | > Loop | > / | > __ ... | > | | / | > | Loop | > | \ | > | ... ... > ... \ | > | If ... > ... / \ | > | IfTrue IfFalse | > |__/ \_| > > (Here, IfTrue corresponds to e.condition()==false, i.e. the assignment > is not executed. '...' stands for multiple basic blocks here.) > > I want to delete the else (IfTrue) branch, which is empty in the source > code but not in the IDEA graph, including the second Loop. Then I want > to provide the data input to CallStaticJava (a.getCopy()) through the > CMove. > > > You can't replace such Phi because its data inputs come from different > > conditions (If nodes). You can only replace Phi from "diamond" shaped > > graphs: > > Is it possible to first transform the sub graph into a CFG diamond and > then optimize it? > > Best regards, > Patrick > > Complete source code (borrowed from the JGraphT library, > http://jgrapht.org/): > > public void runKruskal(final Graph graph) { > Forest forest = new Forest(graph.vertexSet()); > Forest forestSwap; > double spanningTreeCost; > Set edgeList; > Set edgeListSwap; > ArrayList allEdges = new ArrayList(graph.edgeSet()); > Collections.sort(allEdges, new Comparator() { > @Override > public int compare(E edge1, E edge2) { > return Double.valueOf(graph.getEdgeWeight(edge1)) > .compareTo(graph.getEdgeWeight(edge2)); > } > }); > > spanningTreeCost = 0; > edgeList = new HashSet(); > > for (E edge : allEdges) { > forestSwap = forest.getCopy(); > edgeListSwap = new HashSet(edgeList); > V source = graph.getEdgeSource(edge); > V target = graph.getEdgeTarget(edge); > > forestSwap.union(source, target); > edgeListSwap.add(edge); > > /* Branch to eliminate */ > if (!forestSwap.find(source).equals(forestSwap.find(target))) { > forest = forestSwap; > edgeList = edgeListSwap; > spanningTreeCost += graph.getEdgeWeight(edge); > } > } > } From Patrick.Metzler at gmx.net Thu Sep 27 12:37:35 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Thu, 27 Sep 2012 21:37:35 +0200 Subject: Branch removal In-Reply-To: <5064A35B.4030506@oracle.com> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> <5064A35B.4030506@oracle.com> Message-ID: <5064AAFF.7010600@gmx.net> Hi Vladimir, On 09/27/2012 09:04 PM, Vladimir Kozlov wrote: > I think the best solution for you is to modify the java code: Ok, I think I'll take this solution and stick with a non-general transformation. Just out of curiosity, to implement this in C2, would it be necessary to change many existent optimizations or would it be possible by just inserting the new optimization? Thank you for your kind help. Best regards, Patrick From vladimir.kozlov at oracle.com Thu Sep 27 12:56:59 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 12:56:59 -0700 Subject: RFR (L): 7173584: Implement arraycopy as a macro node In-Reply-To: <9CAF8242-736B-4B8B-8926-3451DA87AF70@oracle.com> References: <9CAF8242-736B-4B8B-8926-3451DA87AF70@oracle.com> Message-ID: <5064AF8B.1090509@oracle.com> Sorry, somehow I missed this. Roland Westrelin wrote: > Here is a new one for this (ignore the comments below the file names. They are broken): > > http://cr.openjdk.java.net/~roland/7173584/webrev.01/ > > The 2 changes are: > > - the fix for 7174363 is merged > - I hit an assert once during testing: > assert(proj->_con == predicate_proj->_con, "must match"); > loopPredicate.cpp line 825 > One of the predicates added for an array copy is mistaken for a range check predicate but with the IfTrue/IfFalse projections swapped so I tried to change the code so that proj->_con != predicate_proj->_con is supported. I am not comfortable with this predicate change. The check come from generate_limit_guard() : if (a.length u< offset+copy_length) uncommon_trap; else arraycopy; which is reversed by igvn to if (offset+copy_length u< a.length) arraycopy; else uncommon_trap; So it should not be IfFalse projection. Can you explain the case which you hit? Also instead of duplicating gen_subtype_check() in macroArrayCopy.cpp can you modify the original one to work for you (by passing additional flag)? Thanks, Vlaidmir > > Roland. From vladimir.kozlov at oracle.com Thu Sep 27 13:20:26 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 13:20:26 -0700 Subject: Branch removal In-Reply-To: <5064AAFF.7010600@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> <5064A35B.4030506@oracle.com> <5064AAFF.7010600@gmx.net> Message-ID: <5064B50A.2020908@oracle.com> Patrick Metzler wrote: > Hi Vladimir, > > On 09/27/2012 09:04 PM, Vladimir Kozlov wrote: >> I think the best solution for you is to modify the java code: > > Ok, I think I'll take this solution and stick with a non-general > transformation. > > Just out of curiosity, to implement this in C2, would it be necessary to > change many existent optimizations or would it be possible by just > inserting the new optimization? My original suggestion is not valid for your case because loop optimizations modified the graph in such way that you can not use your transformation. Lets do opposite: insert you optimization just after first igvn.optimize() in Compile::Optimize(). I would hope that you still have "diamond" shape graph at that point. Vladimir > > Thank you for your kind help. > > Best regards, > Patrick From Patrick.Metzler at gmx.net Thu Sep 27 13:40:32 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Thu, 27 Sep 2012 22:40:32 +0200 Subject: Branch removal In-Reply-To: <5064B50A.2020908@oracle.com> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> <5064A35B.4030506@oracle.com> <5064AAFF.7010600@gmx.net> <5064B50A.2020908@oracle.com> Message-ID: <5064B9C0.7050903@gmx.net> > My original suggestion is not valid for your case because loop > optimizations modified the graph in such way that you can not use your > transformation. Lets do opposite: insert you optimization just after > first igvn.optimize() in Compile::Optimize(). I would hope that you > still have "diamond" shape graph at that point. Ideal Graph Visualizer shows this CFG (non-empty else branch) already after parsing. Also after the first igvn.iptimize(), there are two basic blocks in the else branch. Best regards, Patrick From vladimir.x.ivanov at oracle.com Thu Sep 27 14:07:22 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Fri, 28 Sep 2012 01:07:22 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <50633334.5050006@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> <50633334.5050006@oracle.com> Message-ID: <5064C00A.8070700@oracle.com> Thank you, Vladimir. Best regards, Vladimir Ivanov On 9/26/12 8:54 PM, Vladimir Kozlov wrote: > Looks good. > > thanks, > Vladimir > > Vladimir Ivanov wrote: >> Thank you, Vladimir and Chris. >> >> Here are updated changes [1]: >> - merged with the latest changes in hotspot-comp >> - removed intx->int conversion as you suggested >> - removed "receiver is statically known" message from PrintInlining >> output, but left in it the log >> >> Best regards, >> Vladimir Ivanov >> >> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ >> >> On 09/26/12 02:47, Vladimir Kozlov wrote: >>> Good changes! >>> >>> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >>> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >>> in 64b VM). >>> >>> Thanks, >>> Vladimir >>> >>> Vladimir Ivanov wrote: >>>> 7177003: C1: LogCompilation support >>>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>>> >>>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>>> >>>> These changes are only for Hotspot. LogCompilation tool changes will >>>> be sent separately. >>>> >>>> Also: >>>> - print code cache state (after each nmethod installation) >>>> Example: >>>> >>> total_blobs='258' >>>> nmethods='50' >>>> adapters='133' >>>> free_code_cache='98839808' >>>> largest_free_block='98832512'/> >>>> >>>> - consistent nmethod numbering between ordinary and OSR >>>> compilations >>>> - correct printing of thread id's >>>> - added missed tty locks where necessary >>>> >>>> Thanks! >>>> >>>> Best regards, >>>> Vladimir Ivanov >>>> >>>> PS: actually, if it simplifies review, I can send cleanup/small >>>> enhancements as a separate change. PPS: phew! Finally deciphered how >>>> deoptimization in C1 works =) >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>>> >>>> >>>> [2] >>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >>>> >>>> From christian.thalinger at oracle.com Thu Sep 27 15:15:08 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 27 Sep 2012 15:15:08 -0700 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <50631BB7.7010201@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> Message-ID: On Sep 26, 2012, at 8:13 AM, Vladimir Ivanov wrote: > Thank you, Vladimir and Chris. > > Here are updated changes [1]: > - merged with the latest changes in hotspot-comp > - removed intx->int conversion as you suggested > - removed "receiver is statically known" message from PrintInlining > output, but left in it the log Looking at this code: void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) { + CompileLog* log = compilation()->log(); + if (log != NULL) { + if (success) { + if (strcmp(msg,"") != 0) + log->inline_success(msg); + else + log->inline_success("receiver is statically known"); + } else { + log->inline_fail(msg); + } + } + if (!PrintInlining) return; assert(msg != NULL, "must be"); CompileTask::print_inlining(callee, scope()->level(), bci(), msg); if (success && CIPrintMethodCodes) { callee->print_codes(); I noticed that we now can pass in NULL as msg since CompileTask::print_inlining takes care of that (the code before I moved it to CompileTask probably didn't and that's why the assert is there). I suggest to remove the above assert, default GraphBuilder::print_inlining's msg argument to NULL and change: - print_inlining(callee, ""); + print_inlining(callee); Then we can get rid of the strcmp as well. -- Chris > > Best regards, > Vladimir Ivanov > > [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ > > On 09/26/12 02:47, Vladimir Kozlov wrote: >> Good changes! >> >> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >> in 64b VM). >> >> Thanks, >> Vladimir >> >> Vladimir Ivanov wrote: >>> 7177003: C1: LogCompilation support >>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>> >>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>> >>> These changes are only for Hotspot. LogCompilation tool changes will >>> be sent separately. >>> >>> Also: >>> - print code cache state (after each nmethod installation) >>> Example: >>> >> total_blobs='258' >>> nmethods='50' >>> adapters='133' >>> free_code_cache='98839808' >>> largest_free_block='98832512'/> >>> >>> - consistent nmethod numbering between ordinary and OSR compilations >>> - correct printing of thread id's >>> - added missed tty locks where necessary >>> >>> Thanks! >>> >>> Best regards, >>> Vladimir Ivanov >>> >>> PS: actually, if it simplifies review, I can send cleanup/small >>> enhancements as a separate change. >>> PPS: phew! Finally deciphered how deoptimization in C1 works =) >>> >>> [1] >>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>> >>> [2] >>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >>> From vladimir.kozlov at oracle.com Thu Sep 27 15:41:51 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 15:41:51 -0700 Subject: Request for reviews (S): 7198084: NPG: addcaps03 looks like it exceeds it's code buffer Message-ID: <5064D62F.9040403@oracle.com> http://cr.openjdk.java.net/~kvn/7198084/webrev We should not use some short branches (T4 SPARC cbcond) in method InterpreterMacroAssembler::test_invocation_counter_for_mdp() because in debug VM with Jvmti events enabled and CodeCache allocation far from runtime functions the code generated by call_VM() and by following test_backedge_count_for_osr() is large. The distance to Lforward label can't be encoded into short branch instructions. Note: bug's synopsis is incorrect, I will change it. Thanks, Vladimir From christian.thalinger at oracle.com Thu Sep 27 15:50:58 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 27 Sep 2012 15:50:58 -0700 Subject: Request for reviews (S): 7198084: NPG: addcaps03 looks like it exceeds it's code buffer In-Reply-To: <5064D62F.9040403@oracle.com> References: <5064D62F.9040403@oracle.com> Message-ID: Looks good. -- Chris On Sep 27, 2012, at 3:41 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7198084/webrev > > We should not use some short branches (T4 SPARC cbcond) in method InterpreterMacroAssembler::test_invocation_counter_for_mdp() because in debug VM with Jvmti events enabled and CodeCache allocation far from runtime functions the code generated by call_VM() and by following test_backedge_count_for_osr() is large. The distance to Lforward label can't be encoded into short branch instructions. > > Note: bug's synopsis is incorrect, I will change it. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Thu Sep 27 15:52:19 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Sep 2012 15:52:19 -0700 Subject: Request for reviews (S): 7198084: NPG: addcaps03 looks like it exceeds it's code buffer In-Reply-To: References: <5064D62F.9040403@oracle.com> Message-ID: <5064D8A3.2030701@oracle.com> Thanks, Christian Vladimir Christian Thalinger wrote: > Looks good. -- Chris > > On Sep 27, 2012, at 3:41 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7198084/webrev >> >> We should not use some short branches (T4 SPARC cbcond) in method InterpreterMacroAssembler::test_invocation_counter_for_mdp() because in debug VM with Jvmti events enabled and CodeCache allocation far from runtime functions the code generated by call_VM() and by following test_backedge_count_for_osr() is large. The distance to Lforward label can't be encoded into short branch instructions. >> >> Note: bug's synopsis is incorrect, I will change it. >> >> Thanks, >> Vladimir > From christian.thalinger at oracle.com Thu Sep 27 16:34:50 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 27 Sep 2012 16:34:50 -0700 Subject: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path Message-ID: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> http://cr.openjdk.java.net/~twisti/7200949 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path Reviewed-by: The problem is in the declared signature returned by ciBytecodeStream::get_method which was added with 7192406. We create a ciSignature object with the constant pool holder as accessing class. ciEnv::get_klass_by_name_impl doesn't delegate to its parent class loaders and we can't call SystemDictionary::resolve_or_null because we are in the compiler thread. Thus all lookups happen in the class loader of the accessing class. This leads to supposedly unloaded classes like org/jruby/RubyString or even java/lang/Object. The fix is to store the MethodType in the constant pool cache and using that type information instead of the declared method signature to create a ciSignature. src/cpu/x86/vm/templateTable_x86_32.cpp src/cpu/x86/vm/templateTable_x86_64.cpp src/share/vm/ci/ciClassList.hpp src/share/vm/ci/ciObject.hpp src/share/vm/ci/ciObjectFactory.cpp src/share/vm/ci/ciSignature.cpp src/share/vm/ci/ciSignature.hpp src/share/vm/ci/ciStreams.cpp src/share/vm/ci/ciStreams.hpp src/share/vm/classfile/systemDictionary.cpp src/share/vm/classfile/systemDictionary.hpp src/share/vm/interpreter/interpreterRuntime.cpp src/share/vm/interpreter/linkResolver.cpp src/share/vm/interpreter/linkResolver.hpp src/share/vm/interpreter/rewriter.cpp src/share/vm/interpreter/rewriter.hpp src/share/vm/oops/constantPool.cpp src/share/vm/oops/constantPool.hpp src/share/vm/oops/cpCache.cpp src/share/vm/oops/cpCache.hpp From john.r.rose at oracle.com Thu Sep 27 17:24:43 2012 From: john.r.rose at oracle.com (John Rose) Date: Thu, 27 Sep 2012 17:24:43 -0700 Subject: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path In-Reply-To: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> References: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> Message-ID: <01D3593F-FA5E-47BF-B884-FA2EA97D1A11@oracle.com> On Sep 27, 2012, at 4:34 PM, Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7200949 > > 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path > Reviewed-by: It looks good. (Having all the references to the jli.MethodType objects makes me wonder if we should have a JVM-internal analog MethodType, to represent resolved signatures. I suppose what we have is reasonably economical.) I'm not fully comfortable with the handshake between Rewriter and CPCache (last diff hunk in cpCache.cpp). Ideally, if you were to redefine _indy_appendix_offset=1 and _indy_method_type_offset=0 it would either Just Work (tm) or throw an assert. It's not clear that this is the case here. Maybe this code would help in rewriter.cpp: int ref_index = appendix_index - _indy_appendix_offset; assert(ref_index == method_type_index - _indy_method_type_offset, "consistent offsets"); ... use ref_index in sequel ... And something similar in cpCache.cpp, using a neutral ref_index value. ? John From vladimir.kozlov at oracle.com Thu Sep 27 20:37:01 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 28 Sep 2012 03:37:01 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp() Message-ID: <20120928033706.37018470DA@hg.openjdk.java.net> Changeset: 69fb89ec6fa7 Author: kvn Date: 2012-09-27 15:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/69fb89ec6fa7 7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp() Summary: use long branches in test_invocation_counter_for_mdp() Reviewed-by: twisti ! src/cpu/sparc/vm/interp_masm_sparc.cpp From vladimir.x.ivanov at oracle.com Fri Sep 28 05:08:30 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Fri, 28 Sep 2012 16:08:30 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> Message-ID: <5065933E.3020303@oracle.com> Chris, Nice code cleanup! How about that? [1] Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.02 On 09/28/12 02:15, Christian Thalinger wrote: > > On Sep 26, 2012, at 8:13 AM, Vladimir Ivanov wrote: > >> Thank you, Vladimir and Chris. >> >> Here are updated changes [1]: >> - merged with the latest changes in hotspot-comp >> - removed intx->int conversion as you suggested >> - removed "receiver is statically known" message from PrintInlining >> output, but left in it the log > > Looking at this code: > > void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) { > > + CompileLog* log = compilation()->log(); > + if (log != NULL) { > + if (success) { > + if (strcmp(msg,"") != 0) > + log->inline_success(msg); > + else > + log->inline_success("receiver is statically known"); > + } else { > + log->inline_fail(msg); > + } > + } > + > > if (!PrintInlining) return; > assert(msg != NULL, "must be"); > CompileTask::print_inlining(callee, scope()->level(), bci(), msg); > if (success && CIPrintMethodCodes) { > callee->print_codes(); > > I noticed that we now can pass in NULL as msg since CompileTask::print_inlining takes care of that (the code before I moved it to CompileTask probably didn't and that's why the assert is there). > > I suggest to remove the above assert, default GraphBuilder::print_inlining's msg argument to NULL and change: > > - print_inlining(callee, ""); > + print_inlining(callee); > > Then we can get rid of the strcmp as well. > > -- Chris > >> >> Best regards, >> Vladimir Ivanov >> >> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ >> >> On 09/26/12 02:47, Vladimir Kozlov wrote: >>> Good changes! >>> >>> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >>> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >>> in 64b VM). >>> >>> Thanks, >>> Vladimir >>> >>> Vladimir Ivanov wrote: >>>> 7177003: C1: LogCompilation support >>>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>>> >>>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>>> >>>> These changes are only for Hotspot. LogCompilation tool changes will >>>> be sent separately. >>>> >>>> Also: >>>> - print code cache state (after each nmethod installation) >>>> Example: >>>> >>> total_blobs='258' >>>> nmethods='50' >>>> adapters='133' >>>> free_code_cache='98839808' >>>> largest_free_block='98832512'/> >>>> >>>> - consistent nmethod numbering between ordinary and OSR compilations >>>> - correct printing of thread id's >>>> - added missed tty locks where necessary >>>> >>>> Thanks! >>>> >>>> Best regards, >>>> Vladimir Ivanov >>>> >>>> PS: actually, if it simplifies review, I can send cleanup/small >>>> enhancements as a separate change. >>>> PPS: phew! Finally deciphered how deoptimization in C1 works =) >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>>> >>>> [2] >>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >>>> > From Patrick.Metzler at gmx.net Fri Sep 28 05:09:46 2012 From: Patrick.Metzler at gmx.net (Patrick Metzler) Date: Fri, 28 Sep 2012 14:09:46 +0200 Subject: Branch removal In-Reply-To: <5064B9C0.7050903@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> <5064A35B.4030506@oracle.com> <5064AAFF.7010600@gmx.net> <5064B50A.2020908@oracle.com> <5064B9C0.7050903@gmx.net> Message-ID: <5065938A.50706@gmx.net> Hi Vladimir, On 09/27/2012 09:04 PM, Vladimir Kozlov wrote: > I think the best solution for you is to modify the java code: > > aSwap = a.getCopy(); > for (E e : arrayList) { > aSwap.do(); > if (e.condition()) > a = aSwap; > aSwap = a.getCopy(); > } I changed the source code like above and adapted my transformation. It seems to work now, but I still need to test whether the result of the algorithm is correct. It would be interesting to know why a loop with only one back edge in bytecode gets two back edges in IDEAL directly after parsing and how common/uncommon this is. Maybe I'll investigate this further, but for now I'll stick with the working (non-general) solution. Thanks again for your advise. Best regards, Patrick From roland.westrelin at oracle.com Fri Sep 28 07:51:37 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 28 Sep 2012 16:51:37 +0200 Subject: RFR (L): 7173584: Implement arraycopy as a macro node In-Reply-To: <5064AF8B.1090509@oracle.com> References: <9CAF8242-736B-4B8B-8926-3451DA87AF70@oracle.com> <5064AF8B.1090509@oracle.com> Message-ID: <335A7D52-EE29-451A-8E21-1DF5E578406A@oracle.com> Vladimir, Thanks for taking a look at this. > I am not comfortable with this predicate change. The check come from generate_limit_guard() : > > if (a.length u< offset+copy_length) uncommon_trap; else arraycopy; > > which is reversed by igvn to > > if (offset+copy_length u< a.length) arraycopy; else uncommon_trap; > > So it should not be IfFalse projection. Can you explain the case which you hit? This is the java code that triggers this: for (int i=0; i Also instead of duplicating gen_subtype_check() in macroArrayCopy.cpp can you modify the original one to work for you (by passing additional flag)? Ok I'll do that. Roland. From christian.thalinger at oracle.com Fri Sep 28 08:55:58 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 28 Sep 2012 08:55:58 -0700 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <5065933E.3020303@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> <5065933E.3020303@oracle.com> Message-ID: <7DE0FB6F-A4BC-4BAC-B6B0-5E8D2701901F@oracle.com> That looks good. I guess you tested a debug build with PrintCompilation and LogCompilation? -- Chris On Sep 28, 2012, at 5:08 AM, Vladimir Ivanov wrote: > Chris, > > Nice code cleanup! > How about that? [1] > > Best regards, > Vladimir Ivanov > > [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.02 > > On 09/28/12 02:15, Christian Thalinger wrote: >> >> On Sep 26, 2012, at 8:13 AM, Vladimir Ivanov wrote: >> >>> Thank you, Vladimir and Chris. >>> >>> Here are updated changes [1]: >>> - merged with the latest changes in hotspot-comp >>> - removed intx->int conversion as you suggested >>> - removed "receiver is statically known" message from PrintInlining >>> output, but left in it the log >> >> Looking at this code: >> >> void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) { >> >> + CompileLog* log = compilation()->log(); >> + if (log != NULL) { >> + if (success) { >> + if (strcmp(msg,"") != 0) >> + log->inline_success(msg); >> + else >> + log->inline_success("receiver is statically known"); >> + } else { >> + log->inline_fail(msg); >> + } >> + } >> + >> >> if (!PrintInlining) return; >> assert(msg != NULL, "must be"); >> CompileTask::print_inlining(callee, scope()->level(), bci(), msg); >> if (success && CIPrintMethodCodes) { >> callee->print_codes(); >> >> I noticed that we now can pass in NULL as msg since CompileTask::print_inlining takes care of that (the code before I moved it to CompileTask probably didn't and that's why the assert is there). >> >> I suggest to remove the above assert, default GraphBuilder::print_inlining's msg argument to NULL and change: >> >> - print_inlining(callee, ""); >> + print_inlining(callee); >> >> Then we can get rid of the strcmp as well. >> >> -- Chris >> >>> >>> Best regards, >>> Vladimir Ivanov >>> >>> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ >>> >>> On 09/26/12 02:47, Vladimir Kozlov wrote: >>>> Good changes! >>>> >>>> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >>>> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >>>> in 64b VM). >>>> >>>> Thanks, >>>> Vladimir >>>> >>>> Vladimir Ivanov wrote: >>>>> 7177003: C1: LogCompilation support >>>>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>>>> >>>>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>>>> >>>>> These changes are only for Hotspot. LogCompilation tool changes will >>>>> be sent separately. >>>>> >>>>> Also: >>>>> - print code cache state (after each nmethod installation) >>>>> Example: >>>>> >>>> total_blobs='258' >>>>> nmethods='50' >>>>> adapters='133' >>>>> free_code_cache='98839808' >>>>> largest_free_block='98832512'/> >>>>> >>>>> - consistent nmethod numbering between ordinary and OSR compilations >>>>> - correct printing of thread id's >>>>> - added missed tty locks where necessary >>>>> >>>>> Thanks! >>>>> >>>>> Best regards, >>>>> Vladimir Ivanov >>>>> >>>>> PS: actually, if it simplifies review, I can send cleanup/small >>>>> enhancements as a separate change. >>>>> PPS: phew! Finally deciphered how deoptimization in C1 works =) >>>>> >>>>> [1] >>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>>>> >>>>> [2] >>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >> From vladimir.x.ivanov at oracle.com Fri Sep 28 10:02:02 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Fri, 28 Sep 2012 21:02:02 +0400 Subject: RFR (M): 7177003 C1: LogCompilation support In-Reply-To: <7DE0FB6F-A4BC-4BAC-B6B0-5E8D2701901F@oracle.com> References: <506220B4.9090403@oracle.com> <50623484.3020805@oracle.com> <50631BB7.7010201@oracle.com> <5065933E.3020303@oracle.com> <7DE0FB6F-A4BC-4BAC-B6B0-5E8D2701901F@oracle.com> Message-ID: <5065D80A.80705@oracle.com> Thanks you, Chris. Yes, I tested these changes. Best regards, Vladimir Ivanov On 09/28/12 19:55, Christian Thalinger wrote: > That looks good. I guess you tested a debug build with PrintCompilation and LogCompilation? > > -- Chris > > On Sep 28, 2012, at 5:08 AM, Vladimir Ivanov wrote: > >> Chris, >> >> Nice code cleanup! >> How about that? [1] >> >> Best regards, >> Vladimir Ivanov >> >> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.02 >> >> On 09/28/12 02:15, Christian Thalinger wrote: >>> >>> On Sep 26, 2012, at 8:13 AM, Vladimir Ivanov wrote: >>> >>>> Thank you, Vladimir and Chris. >>>> >>>> Here are updated changes [1]: >>>> - merged with the latest changes in hotspot-comp >>>> - removed intx->int conversion as you suggested >>>> - removed "receiver is statically known" message from PrintInlining >>>> output, but left in it the log >>> >>> Looking at this code: >>> >>> void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) { >>> >>> + CompileLog* log = compilation()->log(); >>> + if (log != NULL) { >>> + if (success) { >>> + if (strcmp(msg,"") != 0) >>> + log->inline_success(msg); >>> + else >>> + log->inline_success("receiver is statically known"); >>> + } else { >>> + log->inline_fail(msg); >>> + } >>> + } >>> + >>> >>> if (!PrintInlining) return; >>> assert(msg != NULL, "must be"); >>> CompileTask::print_inlining(callee, scope()->level(), bci(), msg); >>> if (success && CIPrintMethodCodes) { >>> callee->print_codes(); >>> >>> I noticed that we now can pass in NULL as msg since CompileTask::print_inlining takes care of that (the code before I moved it to CompileTask probably didn't and that's why the assert is there). >>> >>> I suggest to remove the above assert, default GraphBuilder::print_inlining's msg argument to NULL and change: >>> >>> - print_inlining(callee, ""); >>> + print_inlining(callee); >>> >>> Then we can get rid of the strcmp as well. >>> >>> -- Chris >>> >>>> >>>> Best regards, >>>> Vladimir Ivanov >>>> >>>> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/ >>>> >>>> On 09/26/12 02:47, Vladimir Kozlov wrote: >>>>> Good changes! >>>>> >>>>> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from >>>>> os::current_thread_id() if you want tou use UINTX format (it reads 64bit >>>>> in 64b VM). >>>>> >>>>> Thanks, >>>>> Vladimir >>>>> >>>>> Vladimir Ivanov wrote: >>>>>> 7177003: C1: LogCompilation support >>>>>> http://cr.openjdk.java.net/~vlivanov/7177003/ >>>>>> >>>>>> LogCompilation support in C1 - both client [1] and tiered [2] modes. >>>>>> >>>>>> These changes are only for Hotspot. LogCompilation tool changes will >>>>>> be sent separately. >>>>>> >>>>>> Also: >>>>>> - print code cache state (after each nmethod installation) >>>>>> Example: >>>>>> >>>>> total_blobs='258' >>>>>> nmethods='50' >>>>>> adapters='133' >>>>>> free_code_cache='98839808' >>>>>> largest_free_block='98832512'/> >>>>>> >>>>>> - consistent nmethod numbering between ordinary and OSR compilations >>>>>> - correct printing of thread id's >>>>>> - added missed tty locks where necessary >>>>>> >>>>>> Thanks! >>>>>> >>>>>> Best regards, >>>>>> Vladimir Ivanov >>>>>> >>>>>> PS: actually, if it simplifies review, I can send cleanup/small >>>>>> enhancements as a separate change. >>>>>> PPS: phew! Finally deciphered how deoptimization in C1 works =) >>>>>> >>>>>> [1] >>>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log >>>>>> >>>>>> [2] >>>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log >>> From vladimir.kozlov at oracle.com Fri Sep 28 11:01:25 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 28 Sep 2012 11:01:25 -0700 Subject: Branch removal In-Reply-To: <5065938A.50706@gmx.net> References: <50598580.7070302@gmx.net> <505B8E6A.6020907@oracle.com> <505C1DE1.2000405@gmx.net> <506409E0.8040700@gmx.net> <506474A9.9080202@oracle.com> <506481C1.20006@gmx.net> <5064908E.4000809@oracle.com> <50649CA0.2040602@gmx.net> <5064A35B.4030506@oracle.com> <5064AAFF.7010600@gmx.net> <5064B50A.2020908@oracle.com> <5064B9C0.7050903@gmx.net> <5065938A.50706@gmx.net> Message-ID: <5065E5F5.4080806@oracle.com> Add flags -XX:+PrintCompilation -XX:+PrintInlining (and may be -XX:-TieredCompilation to look only on C2 compilations). Could be one of inlined method has loop. The graph could be also complicated if it is OSR compilation (there is % next to compilation number in PrintCompilation output). Vladimir Patrick Metzler wrote: > Hi Vladimir, > > On 09/27/2012 09:04 PM, Vladimir Kozlov wrote: > > I think the best solution for you is to modify the java code: > > > > aSwap = a.getCopy(); > > for (E e : arrayList) { > > aSwap.do(); > > if (e.condition()) > > a = aSwap; > > aSwap = a.getCopy(); > > } > > I changed the source code like above and adapted my transformation. It > seems to work now, but I still need to test whether the result of the > algorithm is correct. > > It would be interesting to know why a loop with only one back edge in > bytecode gets two back edges in IDEAL directly after parsing and how > common/uncommon this is. Maybe I'll investigate this further, but for > now I'll stick with the working (non-general) solution. > > Thanks again for your advise. > > Best regards, > Patrick From christian.thalinger at oracle.com Fri Sep 28 14:36:21 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 28 Sep 2012 14:36:21 -0700 Subject: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path In-Reply-To: <01D3593F-FA5E-47BF-B884-FA2EA97D1A11@oracle.com> References: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> <01D3593F-FA5E-47BF-B884-FA2EA97D1A11@oracle.com> Message-ID: <99DB5CF1-1AFE-4B95-BC5F-5604084F9E3E@oracle.com> On Sep 27, 2012, at 5:24 PM, John Rose wrote: > On Sep 27, 2012, at 4:34 PM, Christian Thalinger wrote: > >> http://cr.openjdk.java.net/~twisti/7200949 >> >> 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path >> Reviewed-by: > > It looks good. > > (Having all the references to the jli.MethodType objects makes me wonder if we should have a JVM-internal analog MethodType, to represent resolved signatures. I suppose what we have is reasonably economical.) > > I'm not fully comfortable with the handshake between Rewriter and CPCache (last diff hunk in cpCache.cpp). Ideally, if you were to redefine _indy_appendix_offset=1 and _indy_method_type_offset=0 it would either Just Work (tm) or throw an assert. It's not clear that this is the case here. The problem is the interpreter: it uses f1 to read the appendix. So the appendix has to be at offset 0 and other data after that. I can either: a) add the offset to the index in the interpreter (then it's fool-proof) or b) add an assert to TemplateTable::prepare_invoke: + assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "index points to 0"); I did the latter, made rewriter and cpCache change more generic and updated the webrev. -- Chris > > Maybe this code would help in rewriter.cpp: > > int ref_index = appendix_index - _indy_appendix_offset; > assert(ref_index == method_type_index - _indy_method_type_offset, "consistent offsets"); > ... use ref_index in sequel ... > > And something similar in cpCache.cpp, using a neutral ref_index value. > > ? John From john.r.rose at oracle.com Fri Sep 28 14:46:00 2012 From: john.r.rose at oracle.com (John Rose) Date: Fri, 28 Sep 2012 14:46:00 -0700 Subject: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path In-Reply-To: <99DB5CF1-1AFE-4B95-BC5F-5604084F9E3E@oracle.com> References: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> <01D3593F-FA5E-47BF-B884-FA2EA97D1A11@oracle.com> <99DB5CF1-1AFE-4B95-BC5F-5604084F9E3E@oracle.com> Message-ID: <313C5F88-615A-4580-BC49-84B9356E82D1@oracle.com> On Sep 28, 2012, at 2:36 PM, Christian Thalinger wrote: > I did the latter, made rewriter and cpCache change more generic and updated the webrev. Good; ship it! ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120928/c355b3f6/attachment.html From vladimir.kozlov at oracle.com Fri Sep 28 15:05:11 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 28 Sep 2012 15:05:11 -0700 Subject: RFR (L): 7173584: Implement arraycopy as a macro node In-Reply-To: <335A7D52-EE29-451A-8E21-1DF5E578406A@oracle.com> References: <9CAF8242-736B-4B8B-8926-3451DA87AF70@oracle.com> <5064AF8B.1090509@oracle.com> <335A7D52-EE29-451A-8E21-1DF5E578406A@oracle.com> Message-ID: <50661F17.8030304@oracle.com> Thank you for the case. I did go through the code and this change looks fine. Thanks, Vladimir Roland Westrelin wrote: > Vladimir, > > Thanks for taking a look at this. > >> I am not comfortable with this predicate change. The check come from generate_limit_guard() : >> >> if (a.length u< offset+copy_length) uncommon_trap; else arraycopy; >> >> which is reversed by igvn to >> >> if (offset+copy_length u< a.length) arraycopy; else uncommon_trap; >> >> So it should not be IfFalse projection. Can you explain the case which you hit? > > > This is the java code that triggers this: > > for (int i=0; i > a2 = new ?[a3.length+a1.length-i-1]; > > System.arraycopy(a3, 0, a2, 0, a3.length); > System.arraycopy(a1, i+1, a2, a3.length, a1.length-i-1); > } > > For the first arraycopy, one of the check is: > > if (a2.length < a3.length) uncommon_trap; else arraycopy; > > if (a3.length + a1.length-i-1 < a3.length) uncommon_trap; else arraycopy; > > a1.length is 5 > > if (a3.length + 4 - i < a3.length) uncommon_trap; else arraycopy; > > a3.length is a loop invariant. > > >> Also instead of duplicating gen_subtype_check() in macroArrayCopy.cpp can you modify the original one to work for you (by passing additional flag)? > > Ok I'll do that. > > Roland. From vladimir.kozlov at oracle.com Fri Sep 28 15:54:45 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 28 Sep 2012 15:54:45 -0700 Subject: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path In-Reply-To: <99DB5CF1-1AFE-4B95-BC5F-5604084F9E3E@oracle.com> References: <959EED70-8E45-494E-827F-FC3520F23D93@oracle.com> <01D3593F-FA5E-47BF-B884-FA2EA97D1A11@oracle.com> <99DB5CF1-1AFE-4B95-BC5F-5604084F9E3E@oracle.com> Message-ID: <50662AB5.5060507@oracle.com> Looks good. Vladimir Christian Thalinger wrote: > On Sep 27, 2012, at 5:24 PM, John Rose wrote: > >> On Sep 27, 2012, at 4:34 PM, Christian Thalinger wrote: >> >>> http://cr.openjdk.java.net/~twisti/7200949 >>> >>> 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path >>> Reviewed-by: >> It looks good. >> >> (Having all the references to the jli.MethodType objects makes me wonder if we should have a JVM-internal analog MethodType, to represent resolved signatures. I suppose what we have is reasonably economical.) >> >> I'm not fully comfortable with the handshake between Rewriter and CPCache (last diff hunk in cpCache.cpp). Ideally, if you were to redefine _indy_appendix_offset=1 and _indy_method_type_offset=0 it would either Just Work (tm) or throw an assert. It's not clear that this is the case here. > > The problem is the interpreter: it uses f1 to read the appendix. So the appendix has to be at offset 0 and other data after that. > > I can either: > > a) add the offset to the index in the interpreter (then it's fool-proof) or > b) add an assert to TemplateTable::prepare_invoke: > > + assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "index points to 0"); > > I did the latter, made rewriter and cpCache change more generic and updated the webrev. > > -- Chris > >> Maybe this code would help in rewriter.cpp: >> >> int ref_index = appendix_index - _indy_appendix_offset; >> assert(ref_index == method_type_index - _indy_method_type_offset, "consistent offsets"); >> ... use ref_index in sequel ... >> >> And something similar in cpCache.cpp, using a neutral ref_index value. >> >> ? John > From mark.reinhold at oracle.com Fri Sep 28 17:26:05 2012 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Fri, 28 Sep 2012 17:26:05 -0700 (PDT) Subject: JEP 164: Leverage CPU Instructions for AES Cryptography Message-ID: <20120929002605.6A910C23@eggemoggin.niobe.net> Posted: http://openjdk.java.net/jeps/164 - Mark From mark.reinhold at oracle.com Fri Sep 28 17:26:35 2012 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Fri, 28 Sep 2012 17:26:35 -0700 (PDT) Subject: JEP 165: Compiler control Message-ID: <20120929002635.3BDD1C23@eggemoggin.niobe.net> Posted: http://openjdk.java.net/jeps/165 - Mark From alejandro.murillo at oracle.com Fri Sep 28 17:40:59 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 29 Sep 2012 00:40:59 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 30 new changesets Message-ID: <20120929004200.CC2E747116@hg.openjdk.java.net> Changeset: fac3dd92ebaf Author: bpittore Date: 2012-09-19 17:22 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/fac3dd92ebaf 7195372: Wrong copyright in new files Summary: Fixed copyrights Reviewed-by: dholmes Contributed-by: Bill Pittore ! agent/make/saenv.sh ! agent/make/start-debug-server-proc.sh ! agent/src/share/classes/sun/jvm/hotspot/debugger/ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/amd64/AMD64ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/ia64/IA64ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/sparc/SPARCThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/x86/X86ThreadContext.java ! make/linux/makefiles/sa.make Changeset: ef7fe63a2d39 Author: vladidan Date: 2012-09-24 19:00 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/ef7fe63a2d39 Merge Changeset: 15ba0e7a3ff4 Author: sla Date: 2012-09-17 11:46 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/15ba0e7a3ff4 7193201: [OS X] The development launcher should be signed and given task_for_pid privileges Reviewed-by: sspitsyn, nloodin, mgronlun, coleenp ! make/bsd/makefiles/launcher.make + src/os/bsd/launcher/Info-privileged.plist Changeset: a7509aff1b06 Author: dholmes Date: 2012-09-17 07:36 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a7509aff1b06 7194254: jstack reports wrong thread priorities Reviewed-by: dholmes, sla, fparain Contributed-by: Dmytro Sheyko ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/thread.cpp + test/runtime/7194254/Test7194254.java Changeset: 7b41bee02500 Author: dholmes Date: 2012-09-17 08:44 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7b41bee02500 Merge Changeset: 716e6ef4482a Author: zgu Date: 2012-09-17 10:20 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/716e6ef4482a 7190089: NMT ON: NMT failed assertion on thread's stack base address Summary: Solaris only, record stack info to NMT after stack size adjustment was made for primordial threads Reviewed-by: kvn, acorn, coleenp ! src/os/solaris/vm/os_solaris.cpp ! src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp ! src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp ! src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp ! src/os_cpu/linux_x86/vm/os_linux_x86.cpp ! src/os_cpu/linux_zero/vm/os_linux_zero.cpp ! src/os_cpu/windows_x86/vm/os_windows_x86.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: c088e2e95e69 Author: zgu Date: 2012-09-17 13:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c088e2e95e69 Merge ! src/share/vm/runtime/thread.cpp Changeset: 9a86ddfc6c8f Author: zgu Date: 2012-09-17 16:37 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9a86ddfc6c8f 7188594: Print statistic collected by NMT with VM flag Summary: Print out statistics of collected NMT data if it is on at VM exits Reviewed-by: kvn, coleenp, twisti ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/services/memTracker.hpp Changeset: 45f22ba9348d Author: zgu Date: 2012-09-18 11:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/45f22ba9348d Merge Changeset: 1cb8583c3da8 Author: minqi Date: 2012-09-18 10:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1cb8583c3da8 7191786: retransformClasses() does not pass in LocalVariableTypeTable of a method Summary: JVMTI REtruncformClasses must support LocalVariableTypeTable attribute Reviewed-by: dcubed, dsamersoff, rbackman Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.hpp Changeset: 26994b6e10d5 Author: minqi Date: 2012-09-19 08:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/26994b6e10d5 Merge Changeset: 989cf02ca531 Author: ihse Date: 2012-09-17 11:46 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/989cf02ca531 7172012: Make test-in-build an option (Queens) Reviewed-by: ohair, dholmes ! make/bsd/Makefile ! make/defs.make ! make/linux/Makefile ! make/solaris/Makefile Changeset: 06be7f06c2de Author: ohair Date: 2012-09-18 10:25 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/06be7f06c2de Merge Changeset: 37518f191ddb Author: ohair Date: 2012-09-18 13:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/37518f191ddb 7198329: Add $(sort) to object files used in links makes binarties more consistent Reviewed-by: dholmes, tbell, erikj, ihse, ohrstrom ! make/bsd/makefiles/launcher.make ! make/bsd/makefiles/vm.make ! make/linux/makefiles/launcher.make ! make/linux/makefiles/vm.make ! make/solaris/makefiles/launcher.make ! make/solaris/makefiles/vm.make Changeset: 0e5be2138cd6 Author: jcoomes Date: 2012-09-18 19:44 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0e5be2138cd6 Merge Changeset: 2c527daec02c Author: jcoomes Date: 2012-09-19 16:18 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/2c527daec02c Merge Changeset: 6af8f3562069 Author: kevinw Date: 2012-09-19 15:24 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6af8f3562069 7196045: Possible JVM deadlock in ThreadTimesClosure when using HotspotInternal non-public API. Reviewed-by: sspitsyn, dholmes ! src/share/vm/services/management.cpp + test/runtime/7196045/Test7196045.java Changeset: 8440414b0fd8 Author: kevinw Date: 2012-09-20 03:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8440414b0fd8 Merge Changeset: b711844284e2 Author: nloodin Date: 2012-09-21 10:56 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b711844284e2 7200092: Make NMT a bit friendlier to work with Reviewed-by: kvn, ysr, azeemj ! src/share/vm/services/memTracker.cpp Changeset: 5a98bf7d847b Author: minqi Date: 2012-09-24 12:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5a98bf7d847b 6879063: SA should use hsdis for disassembly Summary: We should in SA to use hsdis for it like the JVM does to replace the current java based disassembler. Reviewed-by: twisti, jrose, sla Contributed-by: yumin.qi at oracle.com - agent/make/ClosureFinder.java ! agent/make/Makefile ! agent/src/os/bsd/MacosxDebuggerLocal.m ! agent/src/os/linux/Makefile ! agent/src/os/linux/mapfile ! agent/src/os/solaris/proc/Makefile ! agent/src/os/solaris/proc/mapfile ! agent/src/os/win32/windbg/Makefile ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java - agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/Address.java - agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java - agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java ! agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java - agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java ! agent/src/share/classes/sun/jvm/hotspot/asm/InstructionVisitor.java - agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java - agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FP2RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IllegalInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RestoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RettDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCAtomicLoadStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCDisassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFP2RegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFlushInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCJmplInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCNoopInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCOpcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRestoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStbarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSwapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCTrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCUnimpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV8Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ConditionFlags.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9DoneInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FlushwInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9IlltrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ImpdepInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MembarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PopcInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrefetchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RetryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SavedInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCWriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SethiDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/StoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/TrapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpacePrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CCBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CasDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9DoneRetryDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FlushwDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntRegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PopcDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrivilegedReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RdprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ConditionalJmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatGRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/GRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/MoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/RotateDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSELogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CondJmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86DirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86IllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterDirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisterAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegisters.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java ! agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Bytes.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64JavaCallWrapper.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64RegisterMap.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/cInterpreter.java - agent/src/share/classes/sun/jvm/hotspot/runtime/linux_ia64/LinuxIA64JavaThreadPDAccess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RegisterMap.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js + agent/src/share/native/sadis.c ! agent/test/jdi/jstack.sh ! agent/test/jdi/jstack64.sh ! agent/test/jdi/runsa.sh ! agent/test/jdi/sasanity.sh ! agent/test/libproc/libproctest.sh ! agent/test/libproc/libproctest64.sh ! make/bsd/makefiles/sa.make ! make/bsd/makefiles/saproc.make ! make/linux/makefiles/sa.make ! make/linux/makefiles/saproc.make ! make/sa.files ! make/solaris/makefiles/sa.make ! make/solaris/makefiles/saproc.make ! make/windows/makefiles/sa.make ! src/share/tools/hsdis/Makefile ! src/share/tools/hsdis/README ! src/share/tools/hsdis/hsdis-demo.c ! src/share/tools/hsdis/hsdis.c ! src/share/tools/hsdis/hsdis.h ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/compiler/disassembler.hpp Changeset: 3d739d45d9fd Author: minqi Date: 2012-09-24 20:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/3d739d45d9fd Merge - agent/make/ClosureFinder.java - agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/Address.java - agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java - agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java - agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java - agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FP2RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IllegalInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RestoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RettDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCAtomicLoadStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCDisassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFP2RegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFlushInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCJmplInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCNoopInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCOpcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRestoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStbarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSwapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCTrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCUnimpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV8Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ConditionFlags.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9DoneInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FlushwInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9IlltrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ImpdepInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MembarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PopcInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrefetchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RetryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SavedInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCWriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SethiDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/StoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/TrapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpacePrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CCBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CasDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9DoneRetryDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FlushwDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntRegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PopcDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrivilegedReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RdprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ConditionalJmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatGRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/GRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/MoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/RotateDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSELogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CondJmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86DirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86IllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterDirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisterAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegisters.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64JavaCallWrapper.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64RegisterMap.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/cInterpreter.java - agent/src/share/classes/sun/jvm/hotspot/runtime/linux_ia64/LinuxIA64JavaThreadPDAccess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java Changeset: 45535ab90688 Author: dholmes Date: 2012-09-25 07:58 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/45535ab90688 7200065: Cross-compilation changes to support the new-build Reviewed-by: dholmes, ohair Contributed-by: Fredrik Ohrstrom ! make/linux/makefiles/adlc.make ! make/linux/makefiles/defs.make Changeset: b86575d092a2 Author: dsamersoff Date: 2012-09-27 20:22 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b86575d092a2 Merge - agent/make/ClosureFinder.java - agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/Address.java - agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java - agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java - agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java - agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java - agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FP2RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IllegalInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RestoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RettDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCAtomicLoadStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCDisassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFP2RegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFlushInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCHelper.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCJmplInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCNoopInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCOpcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRestoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStbarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSwapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCTrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCUnimpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV8Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ConditionFlags.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9DoneInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FlushwInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9IlltrapInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ImpdepInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVrInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MembarInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PopcInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrefetchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterBranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RetryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SavedInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisterInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCWriteInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SethiDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/StoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/TrapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpacePrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceSwapDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CCBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CasDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9DoneRetryDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop1Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop2Decoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FlushwDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntRegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntegerBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVccDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVrDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PopcDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrefetchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrivilegedReadWriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RdprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/sparc/WriteDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/BranchDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/CallDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ConditionalJmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPLoadDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPStoreDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatGRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/GRPDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/InstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/MoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/RotateDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEArithmeticDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEInstructionDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSELogicalDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/ShiftDecoder.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86BranchInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CallInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CondJmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86DirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Disassembler.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPArithmeticInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86IllegalInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Instruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactory.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86LogicInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveStoreInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Opcodes.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86PCRelativeAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Register.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterDirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Registers.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisterAddress.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java - agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegisters.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64JavaCallWrapper.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64RegisterMap.java - agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/cInterpreter.java - agent/src/share/classes/sun/jvm/hotspot/runtime/linux_ia64/LinuxIA64JavaThreadPDAccess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java ! make/linux/makefiles/sa.make ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/runtime/arguments.cpp Changeset: 5baec2e69518 Author: jmasa Date: 2012-09-25 07:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5baec2e69518 7200615: NPG: optimized VM build is broken Reviewed-by: kvn ! src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp ! src/share/vm/memory/metaspace.cpp Changeset: 8966c2d65d96 Author: brutisso Date: 2012-09-25 14:58 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8966c2d65d96 7200470: KeepAliveClosure not needed in CodeCache::do_unloading Summary: Removed the unused keep_alive parameter Reviewed-by: stefank, dholmes, kamg, coleenp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/memory/genMarkSweep.cpp Changeset: 7c2fd5948145 Author: brutisso Date: 2012-09-25 18:28 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7c2fd5948145 Merge Changeset: 15fba4382765 Author: stefank Date: 2012-09-28 14:14 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/15fba4382765 Merge Changeset: f2e12eb74117 Author: kvn Date: 2012-09-28 10:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f2e12eb74117 Merge - src/share/tools/ProjectCreator/DirectoryTree.java - src/share/tools/ProjectCreator/DirectoryTreeNode.java - src/share/tools/ProjectCreator/FileFormatException.java - src/share/tools/ProjectCreator/WinGammaPlatformVC6.java ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/compiler/disassembler.hpp Changeset: 9f008ad79470 Author: amurillo Date: 2012-09-28 13:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9f008ad79470 Added tag hs25-b03 for changeset f2e12eb74117 ! .hgtags Changeset: 1b582b1bf7cb Author: amurillo Date: 2012-09-28 14:36 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1b582b1bf7cb 8000251: new hotspot build - hs25-b04 Reviewed-by: jcoomes ! make/hotspot_version