From alejandro.murillo at oracle.com Fri Jun 1 19:26:59 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 02 Jun 2012 02:26:59 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7173635: jprt.properties should include release jdk7u6 Message-ID: <20120602022705.5BF5A4769B@hg.openjdk.java.net> Changeset: 7bc2d5136f54 Author: amurillo Date: 2012-06-01 11:25 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7bc2d5136f54 7173635: jprt.properties should include release jdk7u6 Reviewed-by: jcoomes ! make/jprt.properties From vladimir.kozlov at oracle.com Sat Jun 2 20:19:08 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Sat, 02 Jun 2012 20:19:08 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4F7B2D71.1040703@oracle.com> References: <4F7B2D71.1040703@oracle.com> Message-ID: <4FCAD7AC.8020604@oracle.com> Most changes after latest Tom's review were done in superword.cpp and added regression tests. I think I nailed down latest issues I had with superword code. The changes pass all testing I did. Please, review it (same web link). Thanks, Vladimir On 4/3/12 10:03 AM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7119644/webrev > > 7119644: Increase superword's vector size up to 256 bits > > Increase superword's vector size up to 256-bits for YMM AVX registers on x86. Added generation of different vector sizes > for different types of arrays in the same loop. Allow to generate small (4 bytes) vectors for loops which were unrolled > small number of iterations. > Add new C2 types for vectors and rework VectorNode implementation. Used MachTypeNode as base node for vector mach nodes > to keep vector type. > Moved XMM registers definition and vector instructions into one file x86.ad (have to rename eRegI to rRegI in x86_32.ad). > > Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. > > Thanks, > Vladimir From christian.thalinger at oracle.com Mon Jun 4 11:26:47 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 4 Jun 2012 11:26:47 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4FCAD7AC.8020604@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> Message-ID: <8A73CF83-C0C9-41D6-895C-93831C1920E2@oracle.com> On Jun 2, 2012, at 8:19 PM, Vladimir Kozlov wrote: > Most changes after latest Tom's review were done in superword.cpp and added regression tests. I think I nailed down latest issues I had with superword code. The changes pass all testing I did. Please, review it (same web link). src/cpu/sparc/vm/sparc.ad: It seems Repl8B_reg_helper (and probably the other helpers too) are only used once and so is enc_repl8b. Can't we just move the code into the instruct itself using the MacroAssembler? But I guess you want to keep this change small given it's already big. src/cpu/x86/vm/x86.ad: + reg_def XMM0 ( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()); + reg_def XMM0b( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()); + reg_def XMM0c( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()); + reg_def XMM0d( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()); + reg_def XMM0e( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()); + reg_def XMM0f( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()); + reg_def XMM0g( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()); + reg_def XMM0h( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()->next()); Maybe we should use a macro for this block instead of replicating it 16 times. src/share/vm/opto/superword.cpp: 276 // Second, removed already constructed packs of the same type. Typo "removed". + // Reconect loads back to upper_insert_pt. Typo. I didn't check all the tests but I guess they are okay. About Op_Vec names, how about using the bit size as suffix: Op_Vec32, Op_Vec64, Op_Vec128, Op_Vec256? Because most of the time when we speak about vectors it's about bit sizes like "7119644: Increase superword's vector size up to 256 bits". -- Chris > > Thanks, > Vladimir > > On 4/3/12 10:03 AM, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7119644/webrev >> >> 7119644: Increase superword's vector size up to 256 bits >> >> Increase superword's vector size up to 256-bits for YMM AVX registers on x86. Added generation of different vector sizes >> for different types of arrays in the same loop. Allow to generate small (4 bytes) vectors for loops which were unrolled >> small number of iterations. >> Add new C2 types for vectors and rework VectorNode implementation. Used MachTypeNode as base node for vector mach nodes >> to keep vector type. >> Moved XMM registers definition and vector instructions into one file x86.ad (have to rename eRegI to rRegI in x86_32.ad). >> >> Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. >> >> Thanks, >> Vladimir From vladimir.kozlov at oracle.com Mon Jun 4 11:56:40 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 04 Jun 2012 11:56:40 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <8A73CF83-C0C9-41D6-895C-93831C1920E2@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> <8A73CF83-C0C9-41D6-895C-93831C1920E2@oracle.com> Message-ID: <4FCD04E8.40906@oracle.com> Christian Thalinger wrote: > On Jun 2, 2012, at 8:19 PM, Vladimir Kozlov wrote: > >> Most changes after latest Tom's review were done in superword.cpp and added regression tests. I think I nailed down latest issues I had with superword code. The changes pass all testing I did. Please, review it (same web link). > > src/cpu/sparc/vm/sparc.ad: > > It seems Repl8B_reg_helper (and probably the other helpers too) are only used once and so is enc_repl8b. Can't we just move the code into the instruct itself using the MacroAssembler? But I guess you want to keep this change small given it's already big. I keep it because of regL_to_stkD() usage but it looks like it is also used only by Repl instructions. I will inline them and use masm instructions instead. > > src/cpu/x86/vm/x86.ad: > > + reg_def XMM0 ( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()); > + reg_def XMM0b( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()); > + reg_def XMM0c( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()); > + reg_def XMM0d( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()); > + reg_def XMM0e( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()); > + reg_def XMM0f( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()); > + reg_def XMM0g( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()); > + reg_def XMM0h( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()->next()); > > Maybe we should use a macro for this block instead of replicating it 16 times. Yes, it is annoying but ADLC parser does not support complex macros. > > src/share/vm/opto/superword.cpp: > > 276 // Second, removed already constructed packs of the same type. > > Typo "removed". Fixed. > > + // Reconect loads back to upper_insert_pt. > > Typo. Fixed. > > I didn't check all the tests but I guess they are okay. > > About Op_Vec names, how about using the bit size as suffix: Op_Vec32, Op_Vec64, Op_Vec128, Op_Vec256? Because most of the time when we speak about vectors it's about bit sizes like "7119644: Increase superword's vector size up to 256 bits". ADLC parser does not work with such names. It distinguish registers by last letter. Thanks, Vladimir > > -- Chris > >> Thanks, >> Vladimir >> >> On 4/3/12 10:03 AM, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7119644/webrev >>> >>> 7119644: Increase superword's vector size up to 256 bits >>> >>> Increase superword's vector size up to 256-bits for YMM AVX registers on x86. Added generation of different vector sizes >>> for different types of arrays in the same loop. Allow to generate small (4 bytes) vectors for loops which were unrolled >>> small number of iterations. >>> Add new C2 types for vectors and rework VectorNode implementation. Used MachTypeNode as base node for vector mach nodes >>> to keep vector type. >>> Moved XMM registers definition and vector instructions into one file x86.ad (have to rename eRegI to rRegI in x86_32.ad). >>> >>> Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. >>> >>> Thanks, >>> Vladimir > From christian.thalinger at oracle.com Mon Jun 4 12:38:43 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 4 Jun 2012 12:38:43 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4FCD04E8.40906@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> <8A73CF83-C0C9-41D6-895C-93831C1920E2@oracle.com> <4FCD04E8.40906@oracle.com> Message-ID: On Jun 4, 2012, at 11:56 AM, Vladimir Kozlov wrote: > Christian Thalinger wrote: >> On Jun 2, 2012, at 8:19 PM, Vladimir Kozlov wrote: >>> Most changes after latest Tom's review were done in superword.cpp and added regression tests. I think I nailed down latest issues I had with superword code. The changes pass all testing I did. Please, review it (same web link). >> src/cpu/sparc/vm/sparc.ad: >> It seems Repl8B_reg_helper (and probably the other helpers too) are only used once and so is enc_repl8b. Can't we just move the code into the instruct itself using the MacroAssembler? But I guess you want to keep this change small given it's already big. > > I keep it because of regL_to_stkD() usage but it looks like it is also used only by Repl instructions. I will inline them and use masm instructions instead. > >> src/cpu/x86/vm/x86.ad: >> + reg_def XMM0 ( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()); >> + reg_def XMM0b( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()); >> + reg_def XMM0c( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()); >> + reg_def XMM0d( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()); >> + reg_def XMM0e( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()); >> + reg_def XMM0f( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()); >> + reg_def XMM0g( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()); >> + reg_def XMM0h( SOC, SOC, Op_RegF, 0, xmm0->as_VMReg()->next()->next()->next()->next()->next()->next()->next()); >> Maybe we should use a macro for this block instead of replicating it 16 times. > > Yes, it is annoying but ADLC parser does not support complex macros. Ok. > >> src/share/vm/opto/superword.cpp: >> 276 // Second, removed already constructed packs of the same type. >> Typo "removed". > > Fixed. > >> + // Reconect loads back to upper_insert_pt. >> Typo. > > Fixed. > >> I didn't check all the tests but I guess they are okay. >> About Op_Vec names, how about using the bit size as suffix: Op_Vec32, Op_Vec64, Op_Vec128, Op_Vec256? Because most of the time when we speak about vectors it's about bit sizes like "7119644: Increase superword's vector size up to 256 bits". > > ADLC parser does not work with such names. It distinguish registers by last letter. Grrr. Stupid parser. -- Chris > > Thanks, > Vladimir > >> -- Chris >>> Thanks, >>> Vladimir >>> >>> On 4/3/12 10:03 AM, Vladimir Kozlov wrote: >>>> http://cr.openjdk.java.net/~kvn/7119644/webrev >>>> >>>> 7119644: Increase superword's vector size up to 256 bits >>>> >>>> Increase superword's vector size up to 256-bits for YMM AVX registers on x86. Added generation of different vector sizes >>>> for different types of arrays in the same loop. Allow to generate small (4 bytes) vectors for loops which were unrolled >>>> small number of iterations. >>>> Add new C2 types for vectors and rework VectorNode implementation. Used MachTypeNode as base node for vector mach nodes >>>> to keep vector type. >>>> Moved XMM registers definition and vector instructions into one file x86.ad (have to rename eRegI to rRegI in x86_32.ad). >>>> >>>> Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. >>>> >>>> Thanks, >>>> Vladimir From vladimir.kozlov at oracle.com Mon Jun 4 19:19:28 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 04 Jun 2012 19:19:28 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4FCAD7AC.8020604@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> Message-ID: <4FCD6CB0.6090503@oracle.com> I found an other problem. My new regression test TestShortVect failed in the overlapping case (load and store from the same array with offset). Superword code thinks store into short[] array is char store and different from short load from short[] so it allows overlapping. It happened because C2 has only one StoreC node for 2 bytes stores but different LoadS and LoadUS nodes for loads. And these load nodes has different memory type: T_SHORT and T_CHAR. The simplest change is to add new StoreS node with memory type T_SHORT. I like this approach and will go with it if nobody object. An other solution is to extract element type from address type instead of memory_type() for memory nodes. But it is duplication of parser code. Note, memory_type() is called in other C2 places only to determine element size. But in Superword it is used to construct the vectors type table. Thanks, Vladimir Vladimir Kozlov wrote: > Most changes after latest Tom's review were done in superword.cpp and > added regression tests. I think I nailed down latest issues I had with > superword code. The changes pass all testing I did. Please, review it > (same web link). > > Thanks, > Vladimir > > On 4/3/12 10:03 AM, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7119644/webrev >> >> 7119644: Increase superword's vector size up to 256 bits >> >> Increase superword's vector size up to 256-bits for YMM AVX registers >> on x86. Added generation of different vector sizes >> for different types of arrays in the same loop. Allow to generate >> small (4 bytes) vectors for loops which were unrolled >> small number of iterations. >> Add new C2 types for vectors and rework VectorNode implementation. >> Used MachTypeNode as base node for vector mach nodes >> to keep vector type. >> Moved XMM registers definition and vector instructions into one file >> x86.ad (have to rename eRegI to rRegI in x86_32.ad). >> >> Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. >> >> Thanks, >> Vladimir From roland.westrelin at oracle.com Tue Jun 5 01:15:04 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 5 Jun 2012 10:15:04 +0200 Subject: Request for review (M): 7171890: C1: add Class.isInstance intrinsic In-Reply-To: References: Message-ID: > Could I have a couple of review for this change, please? > https://gist.github.com/2830194#file_c1_is_instance.patch Hi Krys, That looks good to me and testing is ok so I will push this today. Roland. From rednaxelafx at gmail.com Tue Jun 5 02:02:53 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Tue, 5 Jun 2012 17:02:53 +0800 Subject: Request for review (M): 7171890: C1: add Class.isInstance intrinsic In-Reply-To: References: Message-ID: Thanks, Roland! - Kris On Tue, Jun 5, 2012 at 4:15 PM, Roland Westrelin < roland.westrelin at oracle.com> wrote: > > Could I have a couple of review for this change, please? > > https://gist.github.com/2830194#file_c1_is_instance.patch > > Hi Krys, > > That looks good to me and testing is ok so I will push this today. > > Roland. > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120605/d89c6457/attachment.html From roland.westrelin at oracle.com Tue Jun 5 04:15:05 2012 From: roland.westrelin at oracle.com (roland.westrelin at oracle.com) Date: Tue, 05 Jun 2012 11:15:05 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7171890: C1: add Class.isInstance intrinsic Message-ID: <20120605111510.D0CBC476FB@hg.openjdk.java.net> Changeset: 8f37087fc13f Author: roland Date: 2012-06-05 10:15 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8f37087fc13f 7171890: C1: add Class.isInstance intrinsic Summary: Class.cast which calls Class.isInstance is heavily used by the new JSR 292 implementation Reviewed-by: roland Contributed-by: Krystal Mok ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp From roland.westrelin at oracle.com Tue Jun 5 08:10:47 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 05 Jun 2012 17:10:47 +0200 Subject: RFR (L): 7173584: Implement arraycopy as a macro node Message-ID: http://cr.openjdk.java.net/~roland/7173584/webrev.00/ When arraycopy is intrinsified, it is converted as calls to specialized stubs based on what's known from the context of the arraycopy. Right now, this is done at parsing. By using a new macro node for arraycopy that is expanded later, the compiler may be able to gather more data on the context of the arraycopy and make a better choice for the stub to call. This also opens the door to other optimizations such as inlining small copies in a series of loads/stores. This also impacts clone and Arrays.copyOf's implementations because they rely on the arraycopy stubs as well. Roland. From vladimir.x.ivanov at oracle.com Tue Jun 5 15:31:00 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 06 Jun 2012 02:31:00 +0400 Subject: RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) Message-ID: <4FCE88A4.3000109@oracle.com> http://cr.openjdk.java.net/~vi/7169782/webrev.01/ During compilation, u0 in long_by_long_mulhi can become dead during interim transformations. It makes locally cached node pointer useless and the compiler crashes when trying to traverse node's dependencies. The fix is to artificially keep u0 node alive till the end of the graph construction using dummy hook node trick. Also: - did a cleanup: fixed lifetimes of other shared interim nodes to avoid similar problems in the future - added a regression test for 6732154 Testing: VM regression tests Thanks! Best regards, Vladimir Ivanov From vladimir.kozlov at oracle.com Tue Jun 5 18:01:01 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 05 Jun 2012 18:01:01 -0700 Subject: RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) In-Reply-To: <4FCE88A4.3000109@oracle.com> References: <4FCE88A4.3000109@oracle.com> Message-ID: <4FCEABCD.5030509@oracle.com> Looks good and thank you for adding regression test from old bug. One thing about code style in Hotspot - we use 2 spaces indents and no tabs: + if (igvn != NULL) { + igvn->remove_dead_node(hook); + } else { + for (int i = 0; i < 4; i++) { + hook->set_req(i, NULL); + } + } Also, please, run full CTW testing. And I will do the push for you tomorrow. Thanks, Vladimir On 6/5/12 3:31 PM, Vladimir Ivanov wrote: > http://cr.openjdk.java.net/~vi/7169782/webrev.01/ > > During compilation, u0 in long_by_long_mulhi can become dead during interim transformations. It makes locally cached > node pointer useless and the compiler crashes when trying to traverse node's dependencies. The fix is to artificially > keep u0 node alive till the end of the graph construction using dummy hook node trick. > > Also: > - did a cleanup: fixed lifetimes of other shared interim nodes to avoid similar problems in the future > - added a regression test for 6732154 > > Testing: VM regression tests > > Thanks! > > Best regards, > Vladimir Ivanov From vladimir.x.ivanov at oracle.com Wed Jun 6 02:22:17 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Wed, 06 Jun 2012 13:22:17 +0400 Subject: RFR (M): 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable Message-ID: <4FCF2149.8070609@oracle.com> http://cr.openjdk.java.net/~vi/7173340/webrev.01/ The idea is to replace the following patterns with a single call to a corresponding method from PhaseIterGVN: 1) igvn.hash_delete(n); n->set_req(i, in); igvn._worklist.push(n); 2) hash_delete(n); n->del_req(i); _worklist.push(n); 3) hash_delete(n); _worklist.push(n); to 1) PhaseIterGVN::replace_edge_of(Node*, int, Node*) 2) PhaseIterGVN::delete_edge_of(Node*, int) 3) PhaseIterGVN::rehash_node_delayed(Node*) I reordered code in some places, but it should be safe. Please, confirm. Testing: VM tests, VM regression tests Thanks! Best regards, Vladimir Ivanov From christian.thalinger at oracle.com Wed Jun 6 09:58:13 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 6 Jun 2012 09:58:13 -0700 Subject: RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) In-Reply-To: <4FCE88A4.3000109@oracle.com> References: <4FCE88A4.3000109@oracle.com> Message-ID: <153090F8-7DA0-4821-867A-3A2C4BDDF055@oracle.com> Looks good. -- Chris On Jun 5, 2012, at 3:31 PM, Vladimir Ivanov wrote: > http://cr.openjdk.java.net/~vi/7169782/webrev.01/ > > During compilation, u0 in long_by_long_mulhi can become dead during interim transformations. It makes locally cached node pointer useless and the compiler crashes when trying to traverse node's dependencies. The fix is to artificially keep u0 node alive till the end of the graph construction using dummy hook node trick. > > Also: > - did a cleanup: fixed lifetimes of other shared interim nodes to avoid similar problems in the future > - added a regression test for 6732154 > > Testing: VM regression tests > > Thanks! > > Best regards, > Vladimir Ivanov From vladimir.kozlov at oracle.com Wed Jun 6 11:15:17 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 06 Jun 2012 11:15:17 -0700 Subject: RFR (M): 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable In-Reply-To: <4FCF2149.8070609@oracle.com> References: <4FCF2149.8070609@oracle.com> Message-ID: <4FCF9E35.6060804@oracle.com> Vladimir, Next code is wrong, use_clone edge update should be after use node update since it is used there: ! _igvn.replace_edge_of(use_clone, LoopNode::LoopBackControl, C->top()); ! _igvn.rehash_node_delayed(use); // Multiple edge updates use->set_req(LoopNode::EntryControl, use_clone->in(LoopNode::LoopBackControl)); use->set_req(LoopNode::LoopBackControl, C->top()); Could you also define rehash_node_delayed() first and use it in replace_edge_of() and delete_edge_of() methods since it is not required to have set_req() and del_req() before _worklist.push()? It was my suggestion to use 'edge' in new methods name but I think it is not accurate. Methods update only input edges so it would be better to call methods replace_input_of() and delete_input_of(). Thanks, Vladimir Vladimir Ivanov wrote: > http://cr.openjdk.java.net/~vi/7173340/webrev.01/ > > The idea is to replace the following patterns with a single call to > a corresponding method from PhaseIterGVN: > 1) igvn.hash_delete(n); > n->set_req(i, in); > igvn._worklist.push(n); > > 2) hash_delete(n); > n->del_req(i); > _worklist.push(n); > > 3) hash_delete(n); > _worklist.push(n); > to > 1) PhaseIterGVN::replace_edge_of(Node*, int, Node*) > 2) PhaseIterGVN::delete_edge_of(Node*, int) > 3) PhaseIterGVN::rehash_node_delayed(Node*) > > I reordered code in some places, but it should be safe. Please, confirm. > > Testing: VM tests, VM regression tests > > Thanks! > > Best regards, > Vladimir Ivanov From christian.thalinger at oracle.com Wed Jun 6 14:59:43 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 6 Jun 2012 14:59:43 -0700 Subject: Request for reviews (XXS): 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set Message-ID: http://cr.openjdk.java.net/~twisti/7174884 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set Reviewed-by: It seems we are passing the wrong state to InstanceOf. Tested with CTW using jruby.jar src/share/vm/c1/c1_Canonicalizer.cpp From vladimir.kozlov at oracle.com Wed Jun 6 15:09:35 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 06 Jun 2012 15:09:35 -0700 Subject: Request for reviews (XXS): 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set In-Reply-To: References: Message-ID: <4FCFD51F.4010007@oracle.com> Good. Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7174884 > > 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set > Reviewed-by: > > It seems we are passing the wrong state to InstanceOf. > > Tested with CTW using jruby.jar > > src/share/vm/c1/c1_Canonicalizer.cpp > From vladimir.x.ivanov at oracle.com Wed Jun 6 16:35:36 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 07 Jun 2012 03:35:36 +0400 Subject: RFR (M): 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable In-Reply-To: <4FCF9E35.6060804@oracle.com> References: <4FCF2149.8070609@oracle.com> <4FCF9E35.6060804@oracle.com> Message-ID: <4FCFE948.3070700@oracle.com> Vladimir, Thanks for the review and for catching the wrong code! It was caused by a last minute change to eliminate multiple rehash requests from consequent replace_input_of calls. I was sure I couldn't break anything. How wrong I was... =) Updated webrev with all your suggestions incorporated: http://cr.openjdk.java.net/~vi/7173340/webrev.02/ Testing of the latest changes are in progress. Will notify you when it's finished. Best regards, Vladimir Ivanov On 6/6/12 10:15 PM, Vladimir Kozlov wrote: > Vladimir, > > Next code is wrong, use_clone edge update should be after use node > update since it is used there: > > ! _igvn.replace_edge_of(use_clone, LoopNode::LoopBackControl, C->top()); > ! _igvn.rehash_node_delayed(use); // Multiple edge updates > use->set_req(LoopNode::EntryControl, > use_clone->in(LoopNode::LoopBackControl)); > use->set_req(LoopNode::LoopBackControl, C->top()); > > Could you also define rehash_node_delayed() first and use it in > replace_edge_of() and delete_edge_of() methods since it is not required > to have set_req() and del_req() before _worklist.push()? > > It was my suggestion to use 'edge' in new methods name but I think it is > not accurate. Methods update only input edges so it would be better to > call methods replace_input_of() and delete_input_of(). > > Thanks, > Vladimir > > Vladimir Ivanov wrote: >> http://cr.openjdk.java.net/~vi/7173340/webrev.01/ >> >> The idea is to replace the following patterns with a single call to >> a corresponding method from PhaseIterGVN: >> 1) igvn.hash_delete(n); >> n->set_req(i, in); >> igvn._worklist.push(n); >> >> 2) hash_delete(n); >> n->del_req(i); >> _worklist.push(n); >> >> 3) hash_delete(n); >> _worklist.push(n); >> to >> 1) PhaseIterGVN::replace_edge_of(Node*, int, Node*) >> 2) PhaseIterGVN::delete_edge_of(Node*, int) >> 3) PhaseIterGVN::rehash_node_delayed(Node*) >> >> I reordered code in some places, but it should be safe. Please, confirm. >> >> Testing: VM tests, VM regression tests >> >> Thanks! >> >> Best regards, >> Vladimir Ivanov From vladimir.x.ivanov at oracle.com Wed Jun 6 17:35:07 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 07 Jun 2012 04:35:07 +0400 Subject: RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) In-Reply-To: <4FCEABCD.5030509@oracle.com> References: <4FCE88A4.3000109@oracle.com> <4FCEABCD.5030509@oracle.com> Message-ID: <4FCFF73B.4010802@oracle.com> Vladimir, Chris, thanks for the review! FYI, I just finished full CTW run on linux-i586. Results are clean. Best regards, Vladimir Ivanov On 6/6/12 5:01 AM, Vladimir Kozlov wrote: > Looks good and thank you for adding regression test from old bug. > One thing about code style in Hotspot - we use 2 spaces indents and no > tabs: > > + if (igvn != NULL) { > + igvn->remove_dead_node(hook); > + } else { > + for (int i = 0; i < 4; i++) { > + hook->set_req(i, NULL); > + } > + } > > Also, please, run full CTW testing. And I will do the push for you > tomorrow. > > Thanks, > Vladimir > > On 6/5/12 3:31 PM, Vladimir Ivanov wrote: >> http://cr.openjdk.java.net/~vi/7169782/webrev.01/ >> >> During compilation, u0 in long_by_long_mulhi can become dead during >> interim transformations. It makes locally cached >> node pointer useless and the compiler crashes when trying to traverse >> node's dependencies. The fix is to artificially >> keep u0 node alive till the end of the graph construction using dummy >> hook node trick. >> >> Also: >> - did a cleanup: fixed lifetimes of other shared interim nodes to >> avoid similar problems in the future >> - added a regression test for 6732154 >> >> Testing: VM regression tests >> >> Thanks! >> >> Best regards, >> Vladimir Ivanov From vladimir.kozlov at oracle.com Wed Jun 6 17:40:08 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 06 Jun 2012 17:40:08 -0700 Subject: RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) In-Reply-To: <4FCFF73B.4010802@oracle.com> References: <4FCE88A4.3000109@oracle.com> <4FCEABCD.5030509@oracle.com> <4FCFF73B.4010802@oracle.com> Message-ID: <4FCFF868.7000307@oracle.com> Thank you, Vladimir I will push this and an other your changes after I do sync with main repo tomorrow. Thanks, Vladimir Vladimir Ivanov wrote: > Vladimir, Chris, thanks for the review! > > FYI, I just finished full CTW run on linux-i586. Results are clean. > > Best regards, > Vladimir Ivanov > > On 6/6/12 5:01 AM, Vladimir Kozlov wrote: >> Looks good and thank you for adding regression test from old bug. >> One thing about code style in Hotspot - we use 2 spaces indents and no >> tabs: >> >> + if (igvn != NULL) { >> + igvn->remove_dead_node(hook); >> + } else { >> + for (int i = 0; i < 4; i++) { >> + hook->set_req(i, NULL); >> + } >> + } >> >> Also, please, run full CTW testing. And I will do the push for you >> tomorrow. >> >> Thanks, >> Vladimir >> >> On 6/5/12 3:31 PM, Vladimir Ivanov wrote: >>> http://cr.openjdk.java.net/~vi/7169782/webrev.01/ >>> >>> During compilation, u0 in long_by_long_mulhi can become dead during >>> interim transformations. It makes locally cached >>> node pointer useless and the compiler crashes when trying to traverse >>> node's dependencies. The fix is to artificially >>> keep u0 node alive till the end of the graph construction using dummy >>> hook node trick. >>> >>> Also: >>> - did a cleanup: fixed lifetimes of other shared interim nodes to >>> avoid similar problems in the future >>> - added a regression test for 6732154 >>> >>> Testing: VM regression tests >>> >>> Thanks! >>> >>> Best regards, >>> Vladimir Ivanov From christian.thalinger at oracle.com Wed Jun 6 18:36:47 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Thu, 07 Jun 2012 01:36:47 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set Message-ID: <20120607013651.678084776C@hg.openjdk.java.net> Changeset: e1635876b206 Author: twisti Date: 2012-06-06 15:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e1635876b206 7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set Reviewed-by: kvn ! src/share/vm/c1/c1_Canonicalizer.cpp From rednaxelafx at gmail.com Wed Jun 6 19:57:28 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 7 Jun 2012 10:57:28 +0800 Subject: Request for review (M): 7174218: remove AtomicLongCSImpl intrinsics Message-ID: Hi all, Could I get a couple of review on this change, please? https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_hotspot.patch 7174218: remove AtomicLongCSImpl intrinsics There is some very old code that intrinsifies sun.misc.AtomicLongCSImpl.get and attemptUpdate. Since AtomicLongCSImpl got removed in JDK 7 (and doesn't exist in OpenJDK at all), we should also remove the intrinsic code in C1 and C2 (including MachNodes and other stuff). This change removed sun.misc.AtomicLongCSImpl from the list of well-known classes and the list of declared intrinsics, and removed the corresponding intrinsic implementation in C1 and C2. For C2, LoadLLockedNode was found to be only used in these intrinsics, thus also removed. (StoreLConditionalNode is used in PhaseMacroExpand::expand_lock_node(), so it has to be kept.) Tested with SPECjvm2008 base run on 64-bit Client and Server VM on x86-64, and CTW on SPECjvm2008.jar and jruby.jar. Results are clean. P.S. There's a typo in jvm.h in the jdk workspace. The following patch syncs the change in this change to fix the typo. Could anybody help push it to the jdk workspace? https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_jdk.patch diff -r 7def50698e78 src/share/javavm/export/jvm.h --- a/src/share/javavm/export/jvm.h Thu May 24 16:15:58 2012 -0700 +++ b/src/share/javavm/export/jvm.h Wed Jun 06 01:15:50 2012 +0800 @@ -595,7 +595,7 @@ JVM_AssertionStatusDirectives(JNIEnv *env, jclass unused); /* - * java.util.concurrent.AtomicLong + * java.util.concurrent.atomic.AtomicLong */ JNIEXPORT jboolean JNICALL JVM_SupportsCX8(void); Regards, Kris -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120607/7783fcb6/attachment.html From roland.westrelin at oracle.com Thu Jun 7 09:17:46 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 07 Jun 2012 18:17:46 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 Message-ID: http://cr.openjdk.java.net/~roland/7174532/webrev.00/ pow and exp as computed by the new intrinsics on x86 do not provide sufficiently precise results. This change increases the precision for the steps of the pow and exp computation. Roland. From vladimir.kozlov at oracle.com Thu Jun 7 09:43:04 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 07 Jun 2012 09:43:04 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: References: Message-ID: <4FD0DA18.5050805@oracle.com> Thank you, Roland Could you rename verify_ctw() to verify_fpu_ctw() since there are other control words. Could you explain why it is only problem in VM 32-bit and add comment? Thanks, Vladimir Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7174532/webrev.00/ > > pow and exp as computed by the new intrinsics on x86 do not provide > sufficiently precise results. This change increases the precision for > the steps of the pow and exp computation. > > Roland. From roland.westrelin at oracle.com Thu Jun 7 09:47:26 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 07 Jun 2012 18:47:26 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <4FD0DA18.5050805@oracle.com> References: <4FD0DA18.5050805@oracle.com> Message-ID: > Could you rename verify_ctw() to verify_fpu_ctw() since there are other control > words. Could you explain why it is only problem in VM 32-bit and add comment? It's 32bit only because on 64 bit the fpu cw it set to extended precision (it seems to be the default for the process?). Do we want to extend verify_fpu_ctw() so it checks the control world on 64 bit as well? It's not checked anywhere else even though I think, in other places than exp and pow, we make assumptions about the control word on 64 bit (that uses the fpu won't trigger exceptions for instance). Roland. From roland.westrelin at oracle.com Thu Jun 7 10:01:41 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 07 Jun 2012 19:01:41 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: References: <4FD0DA18.5050805@oracle.com> Message-ID: >> Could you rename verify_ctw() to verify_fpu_ctw() since there are other control >> words. Could you explain why it is only problem in VM 32-bit and add comment? > > It's 32bit only because on 64 bit the fpu cw it set to extended precision (it seems to be the default for the process?). Do we want to extend verify_fpu_ctw() so it checks the control world on 64 bit as well? It's not checked anywhere else even though I think, in other places than exp and pow, we make assumptions about the control word on 64 bit (that uses the fpu won't trigger exceptions for instance). It's not that simple. We had the failure on windows-x64 (but not solaris-x64 or linux-x64). So something needs to be done on 64 bit as well. Roland. From vladimir.x.ivanov at oracle.com Thu Jun 7 10:27:35 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Thu, 07 Jun 2012 21:27:35 +0400 Subject: RFR (M): 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable In-Reply-To: <4FCFE948.3070700@oracle.com> References: <4FCF2149.8070609@oracle.com> <4FCF9E35.6060804@oracle.com> <4FCFE948.3070700@oracle.com> Message-ID: <4FD0E487.9010405@oracle.com> Vladimir, FYI, CTW testing is finished. Results are clean. Best regards, Vladimir Ivanov On 06/07/12 03:35, Vladimir Ivanov wrote: > Vladimir, > > Thanks for the review and for catching the wrong code! It was caused by > a last minute change to eliminate multiple rehash requests from > consequent replace_input_of calls. I was sure I couldn't break anything. > How wrong I was... =) > > Updated webrev with all your suggestions incorporated: > http://cr.openjdk.java.net/~vi/7173340/webrev.02/ > > Testing of the latest changes are in progress. Will notify you when it's > finished. > > Best regards, > Vladimir Ivanov > > On 6/6/12 10:15 PM, Vladimir Kozlov wrote: >> Vladimir, >> >> Next code is wrong, use_clone edge update should be after use node >> update since it is used there: >> >> ! _igvn.replace_edge_of(use_clone, LoopNode::LoopBackControl, C->top()); >> ! _igvn.rehash_node_delayed(use); // Multiple edge updates >> use->set_req(LoopNode::EntryControl, >> use_clone->in(LoopNode::LoopBackControl)); >> use->set_req(LoopNode::LoopBackControl, C->top()); >> >> Could you also define rehash_node_delayed() first and use it in >> replace_edge_of() and delete_edge_of() methods since it is not required >> to have set_req() and del_req() before _worklist.push()? >> >> It was my suggestion to use 'edge' in new methods name but I think it is >> not accurate. Methods update only input edges so it would be better to >> call methods replace_input_of() and delete_input_of(). >> >> Thanks, >> Vladimir >> >> Vladimir Ivanov wrote: >>> http://cr.openjdk.java.net/~vi/7173340/webrev.01/ >>> >>> The idea is to replace the following patterns with a single call to >>> a corresponding method from PhaseIterGVN: >>> 1) igvn.hash_delete(n); >>> n->set_req(i, in); >>> igvn._worklist.push(n); >>> >>> 2) hash_delete(n); >>> n->del_req(i); >>> _worklist.push(n); >>> >>> 3) hash_delete(n); >>> _worklist.push(n); >>> to >>> 1) PhaseIterGVN::replace_edge_of(Node*, int, Node*) >>> 2) PhaseIterGVN::delete_edge_of(Node*, int) >>> 3) PhaseIterGVN::rehash_node_delayed(Node*) >>> >>> I reordered code in some places, but it should be safe. Please, confirm. >>> >>> Testing: VM tests, VM regression tests >>> >>> Thanks! >>> >>> Best regards, >>> Vladimir Ivanov From vladimir.kozlov at oracle.com Thu Jun 7 10:38:48 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 07 Jun 2012 10:38:48 -0700 Subject: RFR (M): 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable In-Reply-To: <4FD0E487.9010405@oracle.com> References: <4FCF2149.8070609@oracle.com> <4FCF9E35.6060804@oracle.com> <4FCFE948.3070700@oracle.com> <4FD0E487.9010405@oracle.com> Message-ID: <4FD0E728.9040208@oracle.com> Thank you. Vladimir Vladimir Ivanov wrote: > Vladimir, > > FYI, CTW testing is finished. Results are clean. > > Best regards, > Vladimir Ivanov > > On 06/07/12 03:35, Vladimir Ivanov wrote: >> Vladimir, >> >> Thanks for the review and for catching the wrong code! It was caused by >> a last minute change to eliminate multiple rehash requests from >> consequent replace_input_of calls. I was sure I couldn't break anything. >> How wrong I was... =) >> >> Updated webrev with all your suggestions incorporated: >> http://cr.openjdk.java.net/~vi/7173340/webrev.02/ >> >> Testing of the latest changes are in progress. Will notify you when it's >> finished. >> >> Best regards, >> Vladimir Ivanov >> >> On 6/6/12 10:15 PM, Vladimir Kozlov wrote: >>> Vladimir, >>> >>> Next code is wrong, use_clone edge update should be after use node >>> update since it is used there: >>> >>> ! _igvn.replace_edge_of(use_clone, LoopNode::LoopBackControl, C->top()); >>> ! _igvn.rehash_node_delayed(use); // Multiple edge updates >>> use->set_req(LoopNode::EntryControl, >>> use_clone->in(LoopNode::LoopBackControl)); >>> use->set_req(LoopNode::LoopBackControl, C->top()); >>> >>> Could you also define rehash_node_delayed() first and use it in >>> replace_edge_of() and delete_edge_of() methods since it is not required >>> to have set_req() and del_req() before _worklist.push()? >>> >>> It was my suggestion to use 'edge' in new methods name but I think it is >>> not accurate. Methods update only input edges so it would be better to >>> call methods replace_input_of() and delete_input_of(). >>> >>> Thanks, >>> Vladimir >>> >>> Vladimir Ivanov wrote: >>>> http://cr.openjdk.java.net/~vi/7173340/webrev.01/ >>>> >>>> The idea is to replace the following patterns with a single call to >>>> a corresponding method from PhaseIterGVN: >>>> 1) igvn.hash_delete(n); >>>> n->set_req(i, in); >>>> igvn._worklist.push(n); >>>> >>>> 2) hash_delete(n); >>>> n->del_req(i); >>>> _worklist.push(n); >>>> >>>> 3) hash_delete(n); >>>> _worklist.push(n); >>>> to >>>> 1) PhaseIterGVN::replace_edge_of(Node*, int, Node*) >>>> 2) PhaseIterGVN::delete_edge_of(Node*, int) >>>> 3) PhaseIterGVN::rehash_node_delayed(Node*) >>>> >>>> I reordered code in some places, but it should be safe. Please, confirm. >>>> >>>> Testing: VM tests, VM regression tests >>>> >>>> Thanks! >>>> >>>> Best regards, >>>> Vladimir Ivanov From vladimir.kozlov at oracle.com Thu Jun 7 10:45:12 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 07 Jun 2012 10:45:12 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: References: <4FD0DA18.5050805@oracle.com> Message-ID: <4FD0E8A8.1000307@oracle.com> Roland Westrelin wrote: >>> Could you rename verify_ctw() to verify_fpu_ctw() since there are >>> other control >>> words. Could you explain why it is only problem in VM 32-bit and add >>> comment? >> >> It's 32bit only because on 64 bit the fpu cw it set to extended >> precision (it seems to be the default for the process?). Do we want to >> extend verify_fpu_ctw() so it checks the control world on 64 bit as >> well? It's not checked anywhere else even though I think, in other >> places than exp and pow, we make assumptions about the control word on >> 64 bit (that uses the fpu won't trigger exceptions for instance). > > It's not that simple. We had the failure on windows-x64 (but not > solaris-x64 or linux-x64). So something needs to be done on 64 bit as well. Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I surprise that we don't have problems with Log and Trigonometric instructions. An other thing to test is to run 32bit VM with UseSSE=0. Thanks, Vladimir > > Roland. From roland.westrelin at oracle.com Thu Jun 7 11:02:07 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 7 Jun 2012 20:02:07 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <4FD0E8A8.1000307@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> Message-ID: <95805C82-13E8-4D82-9634-5891A1AC244F@oracle.com> > Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I surprise that we don't have problems with Log and Trigonometric instructions. Are you saying I should save/restore the control word on 32bit and 64bit or should I keep the code I sent for review on 32bit and save/restore on 64bit? > An other thing to test is to run 32bit VM with UseSSE=0. Ok. Roland. From christian.thalinger at oracle.com Thu Jun 7 11:22:20 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 7 Jun 2012 11:22:20 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <4FD0DA18.5050805@oracle.com> References: <4FD0DA18.5050805@oracle.com> Message-ID: <98CFA0A1-9415-4EB3-A33B-58BED654AA8F@oracle.com> On Jun 7, 2012, at 9:43 AM, Vladimir Kozlov wrote: > Thank you, Roland > > Could you rename verify_ctw() to verify_fpu_ctw() Could we please name it verify_fpu_control_word? ctw is kind of overloaded. -- Chris > since there are other control words. Could you explain why it is only problem in VM 32-bit and add comment? > > Thanks, > Vladimir > > Roland Westrelin wrote: >> http://cr.openjdk.java.net/~roland/7174532/webrev.00/ >> pow and exp as computed by the new intrinsics on x86 do not provide sufficiently precise results. This change increases the precision for the steps of the pow and exp computation. >> Roland. From christian.thalinger at oracle.com Thu Jun 7 12:34:15 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 7 Jun 2012 12:34:15 -0700 Subject: Request for review (M): 7174218: remove AtomicLongCSImpl intrinsics In-Reply-To: References: Message-ID: On Jun 6, 2012, at 7:57 PM, Krystal Mok wrote: > Hi all, > > Could I get a couple of review on this change, please? > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_hotspot.patch > > 7174218: remove AtomicLongCSImpl intrinsics > > There is some very old code that intrinsifies sun.misc.AtomicLongCSImpl.get and attemptUpdate. Since AtomicLongCSImpl got removed in JDK 7 (and doesn't exist in OpenJDK at all), we should also remove the intrinsic code in C1 and C2 (including MachNodes and other stuff). > > This change removed sun.misc.AtomicLongCSImpl from the list of well-known classes and the list of declared intrinsics, and removed the corresponding intrinsic implementation in C1 and C2. > For C2, LoadLLockedNode was found to be only used in these intrinsics, thus also removed. > (StoreLConditionalNode is used in PhaseMacroExpand::expand_lock_node(), so it has to be kept.) > > Tested with SPECjvm2008 base run on 64-bit Client and Server VM on x86-64, and CTW on SPECjvm2008.jar and jruby.jar. Results are clean. Looks good. Thank you for doing this. > > P.S. There's a typo in jvm.h in the jdk workspace. The following patch syncs the change in this change to fix the typo. Could anybody help push it to the jdk workspace? > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_jdk.patch > > diff -r 7def50698e78 src/share/javavm/export/jvm.h > --- a/src/share/javavm/export/jvm.h Thu May 24 16:15:58 2012 -0700 > +++ b/src/share/javavm/export/jvm.h Wed Jun 06 01:15:50 2012 +0800 > @@ -595,7 +595,7 @@ > JVM_AssertionStatusDirectives(JNIEnv *env, jclass unused); > > /* > - * java.util.concurrent.AtomicLong > + * java.util.concurrent.atomic.AtomicLong > */ > JNIEXPORT jboolean JNICALL > JVM_SupportsCX8(void); Try to contact someone on core-libs-dev. -- Chris > > Regards, > Kris -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120607/66f642af/attachment.html From rednaxelafx at gmail.com Thu Jun 7 13:00:52 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Fri, 8 Jun 2012 04:00:52 +0800 Subject: Request for review (M): 7174218: remove AtomicLongCSImpl intrinsics In-Reply-To: References: Message-ID: Thank you, Chris. I'll repost the JDK part of this change on core-libs-dev. - Kris On Fri, Jun 8, 2012 at 3:34 AM, Christian Thalinger < christian.thalinger at oracle.com> wrote: > > On Jun 6, 2012, at 7:57 PM, Krystal Mok wrote: > > Hi all, > > Could I get a couple of review on this change, please? > > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_hotspot.patch > > 7174218: remove AtomicLongCSImpl intrinsics > > There is some very old code that intrinsifies > sun.misc.AtomicLongCSImpl.get and attemptUpdate. Since AtomicLongCSImpl > got removed in JDK 7 (and doesn't exist in OpenJDK at all), we should also > remove the intrinsic code in C1 and C2 (including MachNodes and other > stuff). > > This change removed sun.misc.AtomicLongCSImpl from the list of well-known > classes and the list of declared intrinsics, and removed the corresponding > intrinsic implementation in C1 and C2. > For C2, LoadLLockedNode was found to be only used in these intrinsics, > thus also removed. > (StoreLConditionalNode is used in PhaseMacroExpand::expand_lock_node(), so > it has to be kept.) > > Tested with SPECjvm2008 base run on 64-bit Client and Server VM on x86-64, > and CTW on SPECjvm2008.jar and jruby.jar. Results are clean. > > > Looks good. Thank you for doing this. > > > P.S. There's a typo in jvm.h in the jdk workspace. The following patch > syncs the change in this change to fix the typo. Could anybody help push it > to the jdk workspace? > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_jdk.patch > > diff -r 7def50698e78 src/share/javavm/export/jvm.h > --- a/src/share/javavm/export/jvm.h Thu May 24 16:15:58 2012 -0700 > +++ b/src/share/javavm/export/jvm.h Wed Jun 06 01:15:50 2012 +0800 > @@ -595,7 +595,7 @@ > JVM_AssertionStatusDirectives(JNIEnv *env, jclass unused); > > /* > - * java.util.concurrent.AtomicLong > + * java.util.concurrent.atomic.AtomicLong > */ > JNIEXPORT jboolean JNICALL > JVM_SupportsCX8(void); > > > Try to contact someone on core-libs-dev. > > -- Chris > > > Regards, > Kris > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120608/63a2498c/attachment.html From vladimir.kozlov at oracle.com Thu Jun 7 13:47:09 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 07 Jun 2012 13:47:09 -0700 Subject: Request for review (M): 7174218: remove AtomicLongCSImpl intrinsics In-Reply-To: References: Message-ID: <4FD1134D.3030009@oracle.com> This looks good. Thanks, Vladimir Krystal Mok wrote: > Hi all, > > Could I get a couple of review on this change, please? > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_hotspot.patch > > 7174218: remove AtomicLongCSImpl intrinsics > > There is some very old code that intrinsifies > sun.misc.AtomicLongCSImpl.get and attemptUpdate. Since AtomicLongCSImpl > got removed in JDK 7 (and doesn't exist in OpenJDK at all), we should > also remove the intrinsic code in C1 and C2 (including MachNodes and > other stuff). > > This change removed sun.misc.AtomicLongCSImpl from the list of > well-known classes and the list of declared intrinsics, and removed the > corresponding intrinsic implementation in C1 and C2. > For C2, LoadLLockedNode was found to be only used in these intrinsics, > thus also removed. > (StoreLConditionalNode is used in PhaseMacroExpand::expand_lock_node(), > so it has to be kept.) > > Tested with SPECjvm2008 base run on 64-bit Client and Server VM on > x86-64, and CTW on SPECjvm2008.jar and jruby.jar. Results are clean. > > P.S. There's a typo in jvm.h in the jdk workspace. The following patch > syncs the change in this change to fix the typo. Could anybody help push > it to the jdk workspace? > https://gist.github.com/2876357#file_remove_atomic_long_cs_impl_jdk.patch > > diff -r 7def50698e78 src/share/javavm/export/jvm.h > --- a/src/share/javavm/export/jvm.h Thu May 24 16:15:58 2012 -0700 > +++ b/src/share/javavm/export/jvm.h Wed Jun 06 01:15:50 2012 +0800 > @@ -595,7 +595,7 @@ > JVM_AssertionStatusDirectives(JNIEnv *env, jclass unused); > > /* > - * java.util.concurrent.AtomicLong > + * java.util.concurrent.atomic.AtomicLong > */ > JNIEXPORT jboolean JNICALL > JVM_SupportsCX8(void); > > Regards, > Kris From rednaxelafx at gmail.com Thu Jun 7 13:48:20 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Fri, 8 Jun 2012 04:48:20 +0800 Subject: Request for review (M): 7174218: remove AtomicLongCSImpl intrinsics In-Reply-To: <4FD1134D.3030009@oracle.com> References: <4FD1134D.3030009@oracle.com> Message-ID: Thank you, Vladimir. - Kris On Fri, Jun 8, 2012 at 4:47 AM, Vladimir Kozlov wrote: > This looks good. > > Thanks, > Vladimir > > > Krystal Mok wrote: > >> Hi all, >> >> Could I get a couple of review on this change, please? >> https://gist.github.com/**2876357#file_remove_atomic_** >> long_cs_impl_hotspot.patch >> >> 7174218: remove AtomicLongCSImpl intrinsics >> >> There is some very old code that intrinsifies >> sun.misc.AtomicLongCSImpl.get and attemptUpdate. Since AtomicLongCSImpl >> got removed in JDK 7 (and doesn't exist in OpenJDK at all), we should also >> remove the intrinsic code in C1 and C2 (including MachNodes and other >> stuff). >> >> This change removed sun.misc.AtomicLongCSImpl from the list of well-known >> classes and the list of declared intrinsics, and removed the corresponding >> intrinsic implementation in C1 and C2. >> For C2, LoadLLockedNode was found to be only used in these intrinsics, >> thus also removed. >> (StoreLConditionalNode is used in PhaseMacroExpand::expand_lock_**node(), >> so it has to be kept.) >> >> Tested with SPECjvm2008 base run on 64-bit Client and Server VM on >> x86-64, and CTW on SPECjvm2008.jar and jruby.jar. Results are clean. >> >> P.S. There's a typo in jvm.h in the jdk workspace. The following patch >> syncs the change in this change to fix the typo. Could anybody help push it >> to the jdk workspace? >> https://gist.github.com/**2876357#file_remove_atomic_** >> long_cs_impl_jdk.patch >> >> diff -r 7def50698e78 src/share/javavm/export/jvm.h >> --- a/src/share/javavm/export/jvm.**h Thu May 24 16:15:58 2012 -0700 >> +++ b/src/share/javavm/export/jvm.**h Wed Jun 06 01:15:50 2012 +0800 >> @@ -595,7 +595,7 @@ >> JVM_AssertionStatusDirectives(**JNIEnv *env, jclass unused); >> /* >> - * java.util.concurrent.**AtomicLong >> + * java.util.concurrent.atomic.**AtomicLong >> */ >> JNIEXPORT jboolean JNICALL >> JVM_SupportsCX8(void); >> >> Regards, >> Kris >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120608/629e6272/attachment.html From john.coomes at oracle.com Thu Jun 7 20:40:53 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:40:53 +0000 Subject: hg: hsx/hotspot-comp: 2 new changesets Message-ID: <20120608034053.73504477CC@hg.openjdk.java.net> Changeset: 1ce5dc164166 Author: cl Date: 2012-06-01 14:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/1ce5dc164166 Added tag jdk8-b41 for changeset 1a8c7c530f8a ! .hgtags Changeset: dac58047c19f Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/dac58047c19f Added tag jdk8-b42 for changeset 1ce5dc164166 ! .hgtags From john.coomes at oracle.com Thu Jun 7 20:40:58 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:40:58 +0000 Subject: hg: hsx/hotspot-comp/corba: 2 new changesets Message-ID: <20120608034102.24DE2477CD@hg.openjdk.java.net> Changeset: 79cc42c9c71b Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/79cc42c9c71b Added tag jdk8-b41 for changeset 113f0d5f0a08 ! .hgtags Changeset: 4def0723b0b0 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/4def0723b0b0 Added tag jdk8-b42 for changeset 79cc42c9c71b ! .hgtags From john.coomes at oracle.com Thu Jun 7 20:41:08 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:41:08 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 2 new changesets Message-ID: <20120608034118.67FB8477CE@hg.openjdk.java.net> Changeset: 39ee03c16021 Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/39ee03c16021 Added tag jdk8-b41 for changeset 6f5c0e17415d ! .hgtags Changeset: c73aaf2b0d14 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/c73aaf2b0d14 Added tag jdk8-b42 for changeset 39ee03c16021 ! .hgtags From john.coomes at oracle.com Thu Jun 7 20:41:25 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:41:25 +0000 Subject: hg: hsx/hotspot-comp/jaxws: 2 new changesets Message-ID: <20120608034131.E4E26477CF@hg.openjdk.java.net> Changeset: 1f20f37818a9 Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/1f20f37818a9 Added tag jdk8-b41 for changeset f2072b164b05 ! .hgtags Changeset: 35e0f6001816 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/35e0f6001816 Added tag jdk8-b42 for changeset 1f20f37818a9 ! .hgtags From john.coomes at oracle.com Thu Jun 7 20:41:43 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:41:43 +0000 Subject: hg: hsx/hotspot-comp/jdk: 5 new changesets Message-ID: <20120608034310.87239477D0@hg.openjdk.java.net> Changeset: edb02bee325e Author: ihse Date: 2012-05-25 18:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/edb02bee325e 7172014: Remove empty and unused javah include files Reviewed-by: ohair, erikj ! src/share/native/sun/awt/image/cvutils/img_dcm.h ! src/share/native/sun/awt/image/cvutils/img_dcm8.h ! src/share/native/sun/java2d/pipe/SpanClipRenderer.c ! src/solaris/native/sun/awt/initIDs.c Changeset: 8b4dd321b8a2 Author: dholmes Date: 2012-05-30 00:37 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8b4dd321b8a2 7171653: 32-bit cross-compile on 64-bit build host generates 64-bit data for awt/X11 leading to crash Reviewed-by: ohair, anthony ! make/sun/xawt/Makefile ! makefiles/sun/xawt/Makefile Changeset: 4eac56f073ea Author: katleman Date: 2012-05-30 15:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4eac56f073ea Merge Changeset: cf5c1f6fbc5b Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cf5c1f6fbc5b Added tag jdk8-b41 for changeset 4eac56f073ea ! .hgtags Changeset: 8e8fb6500a87 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8e8fb6500a87 Added tag jdk8-b42 for changeset cf5c1f6fbc5b ! .hgtags From john.coomes at oracle.com Thu Jun 7 20:44:48 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 08 Jun 2012 03:44:48 +0000 Subject: hg: hsx/hotspot-comp/langtools: 2 new changesets Message-ID: <20120608034456.A3343477D1@hg.openjdk.java.net> Changeset: 02c5a3575539 Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/02c5a3575539 Added tag jdk8-b41 for changeset 179fa85aeefa ! .hgtags Changeset: 8280c4f9f619 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/8280c4f9f619 Added tag jdk8-b42 for changeset 02c5a3575539 ! .hgtags From vladimir.kozlov at oracle.com Fri Jun 8 15:56:00 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 08 Jun 2012 15:56:00 -0700 Subject: Request for reviews (S): 7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere Message-ID: <4FD28300.4040304@oracle.com> http://cr.openjdk.java.net/~kvn/7174510/webrev Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method. Tested with failing tests. Thanks, Vladimir From christian.thalinger at oracle.com Fri Jun 8 17:08:52 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 8 Jun 2012 17:08:52 -0700 Subject: Request for reviews (S): 7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere In-Reply-To: <4FD28300.4040304@oracle.com> References: <4FD28300.4040304@oracle.com> Message-ID: <1C0F7E21-5ECE-4D0A-9DC1-49BDE4E78713@oracle.com> On Jun 8, 2012, at 3:56 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7174510/webrev > > Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method. + // Use it's control edge for memory op because EncodeP may go away Small typo "its". Otherwise looks good. -- Chris > > Tested with failing tests. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Fri Jun 8 17:14:38 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 08 Jun 2012 17:14:38 -0700 Subject: Request for reviews (S): 7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere In-Reply-To: <1C0F7E21-5ECE-4D0A-9DC1-49BDE4E78713@oracle.com> References: <4FD28300.4040304@oracle.com> <1C0F7E21-5ECE-4D0A-9DC1-49BDE4E78713@oracle.com> Message-ID: <4FD2956E.5000400@oracle.com> Thank you, Christian Vladimir Christian Thalinger wrote: > On Jun 8, 2012, at 3:56 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7174510/webrev >> >> Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method. > > + // Use it's control edge for memory op because EncodeP may go away > > Small typo "its". > > Otherwise looks good. > > -- Chris > >> Tested with failing tests. >> >> Thanks, >> Vladimir > From vladimir.kozlov at oracle.com Fri Jun 8 18:45:47 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 08 Jun 2012 18:45:47 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4FCD6CB0.6090503@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> <4FCD6CB0.6090503@oracle.com> Message-ID: <4FD2AACB.4020700@oracle.com> I found that I can't use memory_type() because some ideal transformations (in mulnode.cpp) may replace load from char[] with short load and reverse. So instead of comparing vector types I added new method same_velt_type(n1, n2) which compare element size for integer types. Also there is no difference in vector instructions for Char and Short types so I removed Char related vector nodes and used Short vectors for Char type. I also added regression tests for boolean and char types. http://cr.openjdk.java.net/~kvn/7119644/webrev.01 Thanks, Vladimir Vladimir Kozlov wrote: > I found an other problem. My new regression test TestShortVect failed in > the overlapping case (load and store from the same array with offset). > Superword code thinks store into short[] array is char store and > different from short load from short[] so it allows overlapping. It > happened because C2 has only one StoreC node for 2 bytes stores but > different LoadS and LoadUS nodes for loads. And these load nodes has > different memory type: T_SHORT and T_CHAR. > > The simplest change is to add new StoreS node with memory type T_SHORT. > I like this approach and will go with it if nobody object. > > An other solution is to extract element type from address type instead > of memory_type() for memory nodes. But it is duplication of parser code. > > Note, memory_type() is called in other C2 places only to determine > element size. But in Superword it is used to construct the vectors type > table. > > Thanks, > Vladimir > > Vladimir Kozlov wrote: >> Most changes after latest Tom's review were done in superword.cpp and >> added regression tests. I think I nailed down latest issues I had with >> superword code. The changes pass all testing I did. Please, review it >> (same web link). >> >> Thanks, >> Vladimir >> >> On 4/3/12 10:03 AM, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7119644/webrev >>> >>> 7119644: Increase superword's vector size up to 256 bits >>> >>> Increase superword's vector size up to 256-bits for YMM AVX registers >>> on x86. Added generation of different vector sizes >>> for different types of arrays in the same loop. Allow to generate >>> small (4 bytes) vectors for loops which were unrolled >>> small number of iterations. >>> Add new C2 types for vectors and rework VectorNode implementation. >>> Used MachTypeNode as base node for vector mach nodes >>> to keep vector type. >>> Moved XMM registers definition and vector instructions into one file >>> x86.ad (have to rename eRegI to rRegI in x86_32.ad). >>> >>> Tested with full CTW, NSK, C2 regression tests, JPRT and added new test. >>> >>> Thanks, >>> Vladimir From roland.westrelin at oracle.com Mon Jun 11 04:25:05 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 11 Jun 2012 13:25:05 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <4FD0E8A8.1000307@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> Message-ID: <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> > Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I surprise that we don't have problems with Log and Trigonometric instructions. Here is a new version: http://cr.openjdk.java.net/~roland/7174532/webrev.01/ > An other thing to test is to run 32bit VM with UseSSE=0. Testing with UseSSE=0 went fine. Roland. From vladimir.kozlov at oracle.com Mon Jun 11 06:59:04 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 06:59:04 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> Message-ID: <4FD5F9A8.9050400@oracle.com> Roland, There is orl(Address, int) version of instruction so you don't need to load into rax. I forgot yo ask, did you verify the test HyperbolicTest.java? If yes, please, close new bug 7175838 as duplicate. Thanks, Vladimir On 6/11/12 4:25 AM, Roland Westrelin wrote: >> Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I surprise that we don't have problems with Log and Trigonometric instructions. > > Here is a new version: > http://cr.openjdk.java.net/~roland/7174532/webrev.01/ > >> An other thing to test is to run 32bit VM with UseSSE=0. > > Testing with UseSSE=0 went fine. > > Roland. From roland.westrelin at oracle.com Mon Jun 11 07:06:13 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 11 Jun 2012 16:06:13 +0200 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <4FD2AACB.4020700@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> <4FCD6CB0.6090503@oracle.com> <4FD2AACB.4020700@oracle.com> Message-ID: <3F0DC288-002B-490E-8E27-4919BF73BAFA@oracle.com> AFAICT this is ok. In formsopt.cpp: 68 // Stack slots start at the next available even register number. 69 _reg_ctr = (_reg_ctr+7) & ~7; The comment is no longer correct. Roland. From vladimir.kozlov at oracle.com Mon Jun 11 07:10:33 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 07:10:33 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <4FD5F9A8.9050400@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> <4FD5F9A8.9050400@oracle.com> Message-ID: <4FD5FC59.1000604@oracle.com> Sorry, Roland Nevermind my comment. Your code is good, I did not realize first that you save/restore current precision. Please, only verify HyperbolicTest.java test and you can push this fix. Thanks, Vladimir On 6/11/12 6:59 AM, Vladimir Kozlov wrote: > Roland, > > There is orl(Address, int) version of instruction so you don't need to load into rax. > > I forgot yo ask, did you verify the test HyperbolicTest.java? If yes, please, close new bug 7175838 > as duplicate. > > Thanks, > Vladimir > > On 6/11/12 4:25 AM, Roland Westrelin wrote: >>> Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I >>> surprise that we don't have problems with Log and Trigonometric instructions. >> >> Here is a new version: >> http://cr.openjdk.java.net/~roland/7174532/webrev.01/ >> >>> An other thing to test is to run 32bit VM with UseSSE=0. >> >> Testing with UseSSE=0 went fine. >> >> Roland. From vladimir.kozlov at oracle.com Mon Jun 11 07:12:31 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 07:12:31 -0700 Subject: Request for reviews (XL): 7119644: Increase superword's vector size up to 256 bits In-Reply-To: <3F0DC288-002B-490E-8E27-4919BF73BAFA@oracle.com> References: <4F7B2D71.1040703@oracle.com> <4FCAD7AC.8020604@oracle.com> <4FCD6CB0.6090503@oracle.com> <4FD2AACB.4020700@oracle.com> <3F0DC288-002B-490E-8E27-4919BF73BAFA@oracle.com> Message-ID: <4FD5FCCF.6070504@oracle.com> Thank you, Roland I will correct the comment. Vladimir On 6/11/12 7:06 AM, Roland Westrelin wrote: > AFAICT this is ok. > > In formsopt.cpp: > 68 // Stack slots start at the next available even register number. > 69 _reg_ctr = (_reg_ctr+7)& ~7; > > The comment is no longer correct. > > Roland. From mlists at juma.me.uk Mon Jun 11 09:05:02 2012 From: mlists at juma.me.uk (Ismael Juma) Date: Mon, 11 Jun 2012 16:05:02 +0000 (UTC) Subject: 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Message-ID: Hi all, I came across 7063674[1] via a post in the BDB JE forums[1] and it seems pretty nasty, so I thought I'd raise the issue here in case it was misfiled (as it has happened a few times in the past). I used the simpler test case in the comments and I was able to reproduce the issue with both 1.7.0_04-b20 and 1.8.0-ea-b42. Best, Ismael [1] https://forums.oracle.com/forums/thread.jspa?threadID=2399303 From vladimir.kozlov at oracle.com Mon Jun 11 09:13:29 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 09:13:29 -0700 Subject: 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: References: Message-ID: <4FD61929.2060609@oracle.com> Ismael, Thank you for finding this issue. Alan redirected this bug to us (jvm/Hotspot/C2 category) and we will look on it. Thanks, Vladimir Ismael Juma wrote: > Hi all, > > I came across 7063674[1] via a post in the BDB JE forums[1] and it seems pretty > nasty, so I thought I'd raise the issue here in case it was misfiled (as it has > happened a few times in the past). I used the simpler test case in the comments > and I was able to reproduce the issue with both 1.7.0_04-b20 and 1.8.0-ea-b42. > > Best, > Ismael > > [1] https://forums.oracle.com/forums/thread.jspa?threadID=2399303 > From mlists at juma.me.uk Mon Jun 11 09:31:53 2012 From: mlists at juma.me.uk (Ismael Juma) Date: Mon, 11 Jun 2012 16:31:53 +0000 (UTC) Subject: 7063674: Wrong results from basic comparisons after calls =?utf-8?b?dG8JTG9uZy5iaXRDb3VudChsb25nKQ==?= References: <4FD61929.2060609@oracle.com> Message-ID: Vladimir Kozlov writes: > Thank you for finding this issue. Alan redirected this bug to us > (jvm/Hotspot/C2 category) and we will look on it. Thanks! Best, Ismael From christian.thalinger at oracle.com Mon Jun 11 12:42:32 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 11 Jun 2012 12:42:32 -0700 Subject: 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: References: <4FD61929.2060609@oracle.com> Message-ID: <993C92EF-A1FD-4F2B-AE1A-37EC9429F04F@oracle.com> On Jun 11, 2012, at 9:31 AM, Ismael Juma wrote: > Vladimir Kozlov writes: >> Thank you for finding this issue. Alan redirected this bug to us >> (jvm/Hotspot/C2 category) and we will look on it. > > Thanks! Yeah, nasty. The problem is pretty clear and I have a fix for it. Unfortunately this issue exists since HS15b04. But which also means not many people tripped over it so it might be not as bad as it seems at first (given that other bugs have been filed or moved to the right category). -- Chris > > Best, > Ismael > From vladimir.kozlov at oracle.com Mon Jun 11 14:16:03 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Mon, 11 Jun 2012 21:16:03 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 34 new changesets Message-ID: <20120611211715.9E54C47871@hg.openjdk.java.net> Changeset: 48064e53e997 Author: katleman Date: 2012-05-24 16:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/48064e53e997 Added tag jdk8-b40 for changeset ff9decc8235d ! .hgtags Changeset: 785573170238 Author: amurillo Date: 2012-05-25 14:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/785573170238 Merge Changeset: 37add4fa0296 Author: amurillo Date: 2012-05-25 14:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/37add4fa0296 Added tag hs24-b12 for changeset 785573170238 ! .hgtags Changeset: c80d42d78a01 Author: amurillo Date: 2012-05-25 14:56 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c80d42d78a01 7171853: new hotspot build - hs24-b13 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 960a442eae91 Author: rbackman Date: 2012-05-22 10:11 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/960a442eae91 7161732: Improve handling of thread_id in OSThread Reviewed-by: dholmes, kamg ! src/os/bsd/vm/osThread_bsd.hpp ! src/os/linux/vm/osThread_linux.hpp ! src/os/solaris/vm/osThread_solaris.hpp ! src/os/windows/vm/osThread_windows.hpp ! src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp ! src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp ! src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp ! src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp ! src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp ! src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp ! src/share/vm/runtime/osThread.hpp Changeset: df84b4a3ebcb Author: rbackman Date: 2012-05-24 13:37 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/df84b4a3ebcb 7171422: Change 7161732 breaks SA on Windows Reviewed-by: dholmes, sla ! src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp Changeset: 9c1709c4c80c Author: dcubed Date: 2012-05-24 12:03 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9c1709c4c80c 7165598: enable FDS on Solaris X64 when 7165593 is fixed Summary: Work around 'gobjcopy' failure on Solaris X64 by adding a temporary tool that removes the SHF_ALLOC flag from "empty" section headers. Reviewed-by: sspitsyn, acorn ! make/solaris/makefiles/defs.make ! make/solaris/makefiles/dtrace.make + make/solaris/makefiles/fix_empty_sec_hdr_flags.make ! make/solaris/makefiles/jsig.make ! make/solaris/makefiles/saproc.make ! make/solaris/makefiles/vm.make + src/os/solaris/fix_empty_sec_hdr_flags/fix_empty_sec_hdr_flags.c Changeset: fb8f9ab27c14 Author: dcubed Date: 2012-05-24 12:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/fb8f9ab27c14 Merge ! make/solaris/makefiles/defs.make ! make/solaris/makefiles/vm.make ! make/windows/makefiles/defs.make Changeset: cd3a8ab0352b Author: zgu Date: 2012-05-24 20:04 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/cd3a8ab0352b Merge Changeset: 17be2328b50b Author: zgu Date: 2012-05-26 06:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/17be2328b50b Merge Changeset: 5be76dc5304d Author: zgu Date: 2012-05-29 20:06 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5be76dc5304d Merge Changeset: 71afdabfd05b Author: jiangli Date: 2012-05-21 14:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/71afdabfd05b 7168280: Eliminate the generic signature index slot from field array for field without generic signature. Summary: Only allocate the generic signature index slot in the field array for field with generic signature attribute. Reviewed-by: coleenp, dlong ! agent/src/share/classes/sun/jvm/hotspot/oops/AccessFlags.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/oops/fieldInfo.hpp ! src/share/vm/oops/fieldStreams.hpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/accessFlags.hpp Changeset: 48df98e03639 Author: dholmes Date: 2012-05-23 20:09 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/48df98e03639 7170197: Update JPRT default build targets to support embedded builds Reviewed-by: jcoomes, kvn ! make/jprt.properties Changeset: 4e64a590066e Author: jprovino Date: 2012-05-26 08:49 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/4e64a590066e Merge Changeset: dd45f26b4282 Author: dholmes Date: 2012-05-30 17:45 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/dd45f26b4282 Merge Changeset: c92a79900986 Author: brutisso Date: 2012-05-17 21:53 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c92a79900986 7169062: CMS: Assertion failed with -XX:+ObjectAlignmentInBytes=64 Summary: Removed the assert in CompactibleFreeListSpace::check_free_list_consistency() since it was too strict. Simplified CompactibleFreeListSpace::set_cms_values() to reducde the need for asserts. Reviewed-by: jcoomes, stefank ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Changeset: 9a344d88dc22 Author: mnunez Date: 2012-05-21 14:59 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9a344d88dc22 7168848: Add test to check that humongous object allocation path also checks the heap occupancy. Summary: Added test that checks humongous object allocation path also check the heap occupancy and initiate a marking cycle when / if needed. Reviewed-by: brutisso, jwilhelm + test/gc/7168848/HumongousAlloc.java Changeset: 1d478c993020 Author: johnc Date: 2012-05-29 10:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1d478c993020 7143858: G1: Back to back young GCs with the second GC having a minimally sized eden Summary: Before the last thread to leave a JNI critical region was able to schedule a GCLocker Initiated GC, another thread was attempting an allocation and saw that the GCLocker region was no longer active and successfully scheduled a GC. Stall allocating threads until the GCLocker Initiated GC is performed and then retry the allocation. Reviewed-by: brutisso, huntch ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: 5c8bd7c16119 Author: brutisso Date: 2012-05-25 22:35 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5c8bd7c16119 7171936: LOG_G incorrectly defined in globalDefinitions.hpp Summary: Removed LOG_G and LOG_K. Moved LOG_M to where it is being used. Reviewed-by: twisti, johnc ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: c52a6a39546c Author: johnc Date: 2012-05-30 10:26 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c52a6a39546c 7158682: G1: Handle leak when running nsk.sysdict tests Summary: Place HandleMarks in the code that allocates handles for the pending list lock so that the handles are freed and multiple, unsuccessful, attempts to schedule a GC do not cause an OOM. Reviewed-by: brutisso ! src/share/vm/oops/instanceRefKlass.cpp Changeset: bbc900c2482a Author: brutisso Date: 2012-05-31 21:10 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/bbc900c2482a 7172279: G1: Clean up TraceGen0Time and TraceGen1Time data gathering Summary: Simplify code, remove unused code, remove ExitAfterGCNum Reviewed-by: huntch, johnc ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/utilities/numberSeq.cpp ! src/share/vm/utilities/numberSeq.hpp Changeset: 7121cd2c58b5 Author: jcoomes Date: 2012-06-01 10:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7121cd2c58b5 Merge Changeset: 2040997cba56 Author: cl Date: 2012-06-01 14:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/2040997cba56 Added tag jdk8-b41 for changeset 37add4fa0296 ! .hgtags Changeset: bd568544be7f Author: amurillo Date: 2012-06-01 15:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/bd568544be7f Merge Changeset: 55954061c6e8 Author: amurillo Date: 2012-06-01 15:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/55954061c6e8 Added tag hs24-b13 for changeset bd568544be7f ! .hgtags Changeset: 6e2633440960 Author: amurillo Date: 2012-06-01 15:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6e2633440960 7173438: new hotspot build - hs24-b14 Reviewed-by: jcoomes ! make/hotspot_version Changeset: fab99b17c1de Author: mikael Date: 2012-06-01 20:17 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/fab99b17c1de 7155453: [macosx] re-enable jbb tests in JPRT Summary: Run SPECjbb in headless mode and enable SPECjbb runs on OSX Reviewed-by: dcubed, dholmes ! make/jprt.properties Changeset: 4434fdad6b37 Author: dholmes Date: 2012-06-02 07:32 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/4434fdad6b37 Merge ! make/jprt.properties Changeset: e17b61ba7bb3 Author: kamg Date: 2012-06-04 10:22 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e17b61ba7bb3 7166498: JVM crash in ClassVerifier Summary: Fixed raw pointer being used after potential safepoint/GC Reviewed-by: acorn, fparain, dholmes ! src/share/vm/classfile/verifier.cpp Changeset: a297b0e14605 Author: mgerdin Date: 2012-06-04 09:21 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a297b0e14605 7172226: HotSpot fails to build with GCC 4.7 because of stricter c++ argument dependent lookup Summary: Add "using" keyword to import base class functions from FreeList to fix template name lookup in gcc 4.7 Reviewed-by: brutisso, iveresov ! src/share/vm/memory/binaryTreeDictionary.cpp ! src/share/vm/memory/binaryTreeDictionary.hpp Changeset: 37552638d24a Author: brutisso Date: 2012-06-05 22:30 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/37552638d24a 7172388: G1: _total_full_collections should not be incremented for concurrent cycles Reviewed-by: azeemj, jmasa ! src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.hpp Changeset: b9442ac22f59 Author: brutisso Date: 2012-06-04 13:29 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b9442ac22f59 7173460: G1: java/lang/management/MemoryMXBean/CollectionUsageThreshold.java failes with G1 Summary: The scope of TraceMemoryManagerStats in G1CollectedHeap need to cover the call to G1MonitoringSupport::update_sizes() Reviewed-by: johnc, jmasa ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: 063451aefde8 Author: jcoomes Date: 2012-06-08 09:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/063451aefde8 Merge Changeset: 829ee34e7cbd Author: kvn Date: 2012-06-11 08:35 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/829ee34e7cbd Merge ! make/jprt.properties From christian.thalinger at oracle.com Mon Jun 11 15:35:53 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 11 Jun 2012 15:35:53 -0700 Subject: Request for reviews (S): 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Message-ID: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> http://cr.openjdk.java.net/~twisti/7063674 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Reviewed-by: We are scheduling popcnt instructions between compare and branch/conditional move instructions because AD instructs are not defined to kill flags. But the Intel Instruction Set Reference says for POPCNT: Flags Affected OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared The fix is to kill the flags in instructs that are using popcnt instructions. Tested with test case of CR. src/cpu/x86/vm/x86_32.ad src/cpu/x86/vm/x86_64.ad From vladimir.kozlov at oracle.com Mon Jun 11 16:14:51 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 16:14:51 -0700 Subject: Request for reviews (S): 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> References: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> Message-ID: <4FD67BEB.20207@oracle.com> I looked around and ReverseBytes instructions (which use shifts in addition to bswap) also missing KILL cr. Thanks, Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7063674 > > 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) > Reviewed-by: > > We are scheduling popcnt instructions between compare and branch/conditional > move instructions because AD instructs are not defined to kill flags. > > But the Intel Instruction Set Reference says for POPCNT: > > Flags Affected > OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared > > The fix is to kill the flags in instructs that are using popcnt instructions. > > Tested with test case of CR. > > src/cpu/x86/vm/x86_32.ad > src/cpu/x86/vm/x86_64.ad > From christian.thalinger at oracle.com Mon Jun 11 16:22:10 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 11 Jun 2012 16:22:10 -0700 Subject: Request for reviews (S): 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: <4FD67BEB.20207@oracle.com> References: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> <4FD67BEB.20207@oracle.com> Message-ID: <74BA624C-1CC8-4652-A91F-21166163C880@oracle.com> On Jun 11, 2012, at 4:14 PM, Vladimir Kozlov wrote: > I looked around and ReverseBytes instructions (which use shifts in addition to bswap) also missing KILL cr. Good catch. I fixed them too and updated the webrev. -- Chris > > Thanks, > Vladimir > > Christian Thalinger wrote: >> http://cr.openjdk.java.net/~twisti/7063674 >> 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) >> Reviewed-by: >> We are scheduling popcnt instructions between compare and branch/conditional >> move instructions because AD instructs are not defined to kill flags. >> But the Intel Instruction Set Reference says for POPCNT: >> Flags Affected >> OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared >> The fix is to kill the flags in instructs that are using popcnt instructions. >> Tested with test case of CR. src/cpu/x86/vm/x86_32.ad >> src/cpu/x86/vm/x86_64.ad From vladimir.kozlov at oracle.com Mon Jun 11 16:37:31 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 11 Jun 2012 16:37:31 -0700 Subject: Request for reviews (S): 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: <74BA624C-1CC8-4652-A91F-21166163C880@oracle.com> References: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> <4FD67BEB.20207@oracle.com> <74BA624C-1CC8-4652-A91F-21166163C880@oracle.com> Message-ID: <4FD6813B.10408@oracle.com> Looks good. Vladimir Christian Thalinger wrote: > On Jun 11, 2012, at 4:14 PM, Vladimir Kozlov wrote: > >> I looked around and ReverseBytes instructions (which use shifts in addition to bswap) also missing KILL cr. > > Good catch. I fixed them too and updated the webrev. > > -- Chris > >> Thanks, >> Vladimir >> >> Christian Thalinger wrote: >>> http://cr.openjdk.java.net/~twisti/7063674 >>> 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) >>> Reviewed-by: >>> We are scheduling popcnt instructions between compare and branch/conditional >>> move instructions because AD instructs are not defined to kill flags. >>> But the Intel Instruction Set Reference says for POPCNT: >>> Flags Affected >>> OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared >>> The fix is to kill the flags in instructs that are using popcnt instructions. >>> Tested with test case of CR. src/cpu/x86/vm/x86_32.ad >>> src/cpu/x86/vm/x86_64.ad > From christian.thalinger at oracle.com Mon Jun 11 16:41:12 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 11 Jun 2012 16:41:12 -0700 Subject: Request for reviews (S): 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: <4FD6813B.10408@oracle.com> References: <6B1B5303-2597-4E98-A930-D0219E59684D@oracle.com> <4FD67BEB.20207@oracle.com> <74BA624C-1CC8-4652-A91F-21166163C880@oracle.com> <4FD6813B.10408@oracle.com> Message-ID: Thank you, Vladimir. -- Chris On Jun 11, 2012, at 4:37 PM, Vladimir Kozlov wrote: > Looks good. > > Vladimir > > Christian Thalinger wrote: >> On Jun 11, 2012, at 4:14 PM, Vladimir Kozlov wrote: >>> I looked around and ReverseBytes instructions (which use shifts in addition to bswap) also missing KILL cr. >> Good catch. I fixed them too and updated the webrev. >> -- Chris >>> Thanks, >>> Vladimir >>> >>> Christian Thalinger wrote: >>>> http://cr.openjdk.java.net/~twisti/7063674 >>>> 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) >>>> Reviewed-by: >>>> We are scheduling popcnt instructions between compare and branch/conditional >>>> move instructions because AD instructs are not defined to kill flags. >>>> But the Intel Instruction Set Reference says for POPCNT: >>>> Flags Affected >>>> OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared >>>> The fix is to kill the flags in instructs that are using popcnt instructions. >>>> Tested with test case of CR. src/cpu/x86/vm/x86_32.ad >>>> src/cpu/x86/vm/x86_64.ad From christian.thalinger at oracle.com Mon Jun 11 22:34:54 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Tue, 12 Jun 2012 05:34:54 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Message-ID: <20120612053459.792FC4788B@hg.openjdk.java.net> Changeset: ccaa67adfe5b Author: twisti Date: 2012-06-11 16:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/ccaa67adfe5b 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Reviewed-by: kvn ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad From vladimir.kozlov at oracle.com Tue Jun 12 00:47:11 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 12 Jun 2012 07:47:11 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 2 new changesets Message-ID: <20120612074718.4E4BC4788E@hg.openjdk.java.net> Changeset: 0919b2e7895d Author: kvn Date: 2012-06-11 14:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0919b2e7895d 7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere Summary: Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method. Reviewed-by: twisti ! src/share/vm/opto/memnode.cpp Changeset: d5dded5d1e0d Author: kvn Date: 2012-06-11 22:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d5dded5d1e0d Merge From mlists at juma.me.uk Tue Jun 12 01:56:45 2012 From: mlists at juma.me.uk (Ismael Juma) Date: Tue, 12 Jun 2012 08:56:45 +0000 (UTC) Subject: hg: hsx/hotspot-comp/hotspot: 7063674: Wrong results from =?utf-8?b?YmFzaWMJY29tcGFyaXNvbnM=?= after calls to Long.bitCount(long) References: <20120612053459.792FC4788B@hg.openjdk.java.net> Message-ID: Great to see this fixed so soon. writes: > 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) Is there a plan to backport it to JDK 7 update 6? Best, Ismael From roland.westrelin at oracle.com Tue Jun 12 06:53:11 2012 From: roland.westrelin at oracle.com (roland.westrelin at oracle.com) Date: Tue, 12 Jun 2012 13:53:11 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 Message-ID: <20120612135316.594A947893@hg.openjdk.java.net> Changeset: e7715c222897 Author: roland Date: 2012-06-12 10:02 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e7715c222897 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 Summary: increase precision on x86 for the steps of the computation of exp and pow. Reviewed-by: kvn ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp From christian.thalinger at oracle.com Tue Jun 12 10:56:40 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 12 Jun 2012 10:56:40 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely Message-ID: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> http://cr.openjdk.java.net/~twisti/7174928 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely Reviewed-by: While testing a new flag I want to introduce (TraceOSR) I noticed that unresolved invokedynamic call sites compiled in C1 deoptimize and OSR infinitely. The reason for that is we deoptimize but we don't have machinery in C1 to tell to throw the method out and recompile it. So we just enter the same method again and hit the same unresolved call site. The fix is to conditionally jump to the deopt stub in generated code if the CallSite object is null. Handling it this way it is not required to recompile the code. Tested with JRuby's bench_red_black.rb src/cpu/x86/vm/c1_LIRAssembler_x86.cpp src/share/vm/c1/c1_LIRGenerator.cpp src/share/vm/interpreter/interpreterRuntime.cpp src/share/vm/oops/methodOop.cpp src/share/vm/oops/methodOop.hpp From christian.thalinger at oracle.com Tue Jun 12 11:10:32 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 12 Jun 2012 11:10:32 -0700 Subject: hg: hsx/hotspot-comp/hotspot: 7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) In-Reply-To: References: <20120612053459.792FC4788B@hg.openjdk.java.net> Message-ID: <643A756F-23D6-460B-9C67-75101EA6B0D5@oracle.com> On Jun 12, 2012, at 1:56 AM, Ismael Juma wrote: > Great to see this fixed so soon. > > writes: >> 7063674: Wrong results from basic comparisons after calls to > Long.bitCount(long) > > > Is there a plan to backport it to JDK 7 update 6? Yes. We are going to test it in 8 for some time (maybe a week) and then I'm pushing it to HS 23.2. Thanks for spotting the issue. -- Chris > > Best, > Ismael > From christian.thalinger at oracle.com Tue Jun 12 11:21:14 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 12 Jun 2012 11:21:14 -0700 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> Message-ID: <083946B6-7EAC-4700-9936-C50A5CEA8D70@oracle.com> On Jun 11, 2012, at 4:25 AM, Roland Westrelin wrote: >> Yes, windows may set different fpu_ctw. May be instead of verification we should save/restore current control word. I surprise that we don't have problems with Log and Trigonometric instructions. > > Here is a new version: > http://cr.openjdk.java.net/~roland/7174532/webrev.01/ Looks good. Maybe a comment what precision we set would be good. -- Chris > >> An other thing to test is to run 32bit VM with UseSSE=0. > > Testing with UseSSE=0 went fine. > > Roland. From vladimir.kozlov at oracle.com Tue Jun 12 11:21:35 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 12 Jun 2012 11:21:35 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> Message-ID: <4FD788AF.6010001@oracle.com> Looks good to me. Only concern is how set_exception_handlers() affects new code. Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7174928 > > 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely > Reviewed-by: > > While testing a new flag I want to introduce (TraceOSR) I noticed that > unresolved invokedynamic call sites compiled in C1 deoptimize and OSR > infinitely. The reason for that is we deoptimize but we don't have machinery > in C1 to tell to throw the method out and recompile it. So we just enter the > same method again and hit the same unresolved call site. > > The fix is to conditionally jump to the deopt stub in generated code if the > CallSite object is null. Handling it this way it is not required to > recompile the code. > > Tested with JRuby's bench_red_black.rb > > src/cpu/x86/vm/c1_LIRAssembler_x86.cpp > src/share/vm/c1/c1_LIRGenerator.cpp > src/share/vm/interpreter/interpreterRuntime.cpp > src/share/vm/oops/methodOop.cpp > src/share/vm/oops/methodOop.hpp > From christian.thalinger at oracle.com Tue Jun 12 12:25:26 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 12 Jun 2012 12:25:26 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <4FD788AF.6010001@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> <4FD788AF.6010001@oracle.com> Message-ID: <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> On Jun 12, 2012, at 11:21 AM, Vladimir Kozlov wrote: > Looks good to me. Only concern is how set_exception_handlers() affects new code. Good point. I looked at this again and the only other code using this (and where I got this pattern from in the first place) is NewMultiArray. And there it's used correctly: CodeEmitInfo* patching_info = NULL; if (!x->klass()->is_loaded() || PatchALot) { patching_info = state_for(x, x->state_before()); // cannot re-use same xhandlers for multiple CodeEmitInfos, so // clone all handlers. This is handled transparently in other // places by the CodeEmitInfo cloning logic but is handled // specially here because a stub isn't being used. x->set_exception_handlers(new XHandlers(x->exception_handlers())); } CodeEmitInfo* info = state_for(x, x->state()); While the code for Invoke does this: CodeEmitInfo* info = state_for(x, x->state()); // invokedynamics can deoptimize. CodeEmitInfo* deopt_info = x->is_invokedynamic() ? state_for(x, x->state_before()) : NULL; <...skip a lot of code...> x->set_exception_handlers(new XHandlers(x->exception_handlers())); In fact the cloned exception handlers are not used but rather the original ones are used twice. Currently I'm running some tests and we emit invokedynamics with exception handlers so this code is exercised. I never saw a bug related to this so it might not be required but I'm not an expert here. -- Chris > > Vladimir > > Christian Thalinger wrote: >> http://cr.openjdk.java.net/~twisti/7174928 >> 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely >> Reviewed-by: >> While testing a new flag I want to introduce (TraceOSR) I noticed that >> unresolved invokedynamic call sites compiled in C1 deoptimize and OSR >> infinitely. The reason for that is we deoptimize but we don't have machinery >> in C1 to tell to throw the method out and recompile it. So we just enter the >> same method again and hit the same unresolved call site. >> The fix is to conditionally jump to the deopt stub in generated code if the >> CallSite object is null. Handling it this way it is not required to >> recompile the code. >> Tested with JRuby's bench_red_black.rb >> src/cpu/x86/vm/c1_LIRAssembler_x86.cpp >> src/share/vm/c1/c1_LIRGenerator.cpp >> src/share/vm/interpreter/interpreterRuntime.cpp >> src/share/vm/oops/methodOop.cpp >> src/share/vm/oops/methodOop.hpp From roland.westrelin at oracle.com Tue Jun 12 12:55:45 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 12 Jun 2012 21:55:45 +0200 Subject: RFR (S): 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 In-Reply-To: <083946B6-7EAC-4700-9936-C50A5CEA8D70@oracle.com> References: <4FD0DA18.5050805@oracle.com> <4FD0E8A8.1000307@oracle.com> <0EF559A9-12FD-4DAF-9AF5-9C27EDD9F727@oracle.com> <083946B6-7EAC-4700-9936-C50A5CEA8D70@oracle.com> Message-ID: >> Here is a new version: >> http://cr.openjdk.java.net/~roland/7174532/webrev.01/ > > Looks good. Maybe a comment what precision we set would be good. I pushed it already. Thanks anyway for taking a look. Roland. From roland.westrelin at oracle.com Tue Jun 12 13:03:53 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 12 Jun 2012 22:03:53 +0200 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> Message-ID: <99256A4A-FE82-4377-BE2B-C19E8C977BE1@oracle.com> That looks good to me (except the set_exception_handlers() stuff but that existed before this change). Roland. From roland.westrelin at oracle.com Tue Jun 12 13:14:04 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 12 Jun 2012 22:14:04 +0200 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> <4FD788AF.6010001@oracle.com> <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> Message-ID: <972F2ADA-3210-44EA-9D35-9EF44F4BD3BE@oracle.com> > Good point. I looked at this again and the only other code using this (and where I got this pattern from in the first place) is NewMultiArray. And there it's used correctly: > > CodeEmitInfo* patching_info = NULL; > if (!x->klass()->is_loaded() || PatchALot) { > patching_info = state_for(x, x->state_before()); > > // cannot re-use same xhandlers for multiple CodeEmitInfos, so > // clone all handlers. This is handled transparently in other > // places by the CodeEmitInfo cloning logic but is handled > // specially here because a stub isn't being used. > x->set_exception_handlers(new XHandlers(x->exception_handlers())); > } > CodeEmitInfo* info = state_for(x, x->state()); If you look at some of the stubs constructors, you'll find this pattern: _info = new CodeEmitInfo(info); and the CodeEmitInfo copy constructor does: // deep copy of exception handlers if (info->_exception_handlers != NULL) { _exception_handlers = new XHandlers(info->_exception_handlers); } which is the same as: x->set_exception_handlers(new XHandlers(x->exception_handlers())); So in your case with the DeoptimizeStub you don't need the explicit set_exception_handlers(), right? Roland. From vladimir.kozlov at oracle.com Tue Jun 12 13:21:35 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 12 Jun 2012 20:21:35 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) Message-ID: <20120612202137.B5BA7478A5@hg.openjdk.java.net> Changeset: 121e5708ae96 Author: kvn Date: 2012-06-12 09:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/121e5708ae96 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) Summary: keep intermediate node alive till the end of the graph construction using dummy hook node trick Reviewed-by: kvn, twisti Contributed-by: vladimir.x.ivanov at oracle.com ! src/share/vm/opto/divnode.cpp + test/compiler/6732154/Test6732154.java + test/compiler/7169782/Test7169782.java From christian.thalinger at oracle.com Tue Jun 12 15:00:21 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 12 Jun 2012 15:00:21 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <972F2ADA-3210-44EA-9D35-9EF44F4BD3BE@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> <4FD788AF.6010001@oracle.com> <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> <972F2ADA-3210-44EA-9D35-9EF44F4BD3BE@oracle.com> Message-ID: On Jun 12, 2012, at 1:14 PM, Roland Westrelin wrote: >> Good point. I looked at this again and the only other code using this (and where I got this pattern from in the first place) is NewMultiArray. And there it's used correctly: >> >> CodeEmitInfo* patching_info = NULL; >> if (!x->klass()->is_loaded() || PatchALot) { >> patching_info = state_for(x, x->state_before()); >> >> // cannot re-use same xhandlers for multiple CodeEmitInfos, so >> // clone all handlers. This is handled transparently in other >> // places by the CodeEmitInfo cloning logic but is handled >> // specially here because a stub isn't being used. >> x->set_exception_handlers(new XHandlers(x->exception_handlers())); >> } >> CodeEmitInfo* info = state_for(x, x->state()); > > If you look at some of the stubs constructors, you'll find this pattern: > > _info = new CodeEmitInfo(info); > > and the CodeEmitInfo copy constructor does: > // deep copy of exception handlers > if (info->_exception_handlers != NULL) { > _exception_handlers = new XHandlers(info->_exception_handlers); > } > > which is the same as: > x->set_exception_handlers(new XHandlers(x->exception_handlers())); > > So in your case with the DeoptimizeStub you don't need the explicit set_exception_handlers(), right? Correct. Now the comment for NewMultiArray makes sense. I removed that code, changed the comment in do_NewMultiArray and updated the webrev. -- Chris > > Roland. From vladimir.kozlov at oracle.com Tue Jun 12 16:12:15 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 12 Jun 2012 16:12:15 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> <4FD788AF.6010001@oracle.com> <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> <972F2ADA-3210-44EA-9D35-9EF44F4BD3BE@oracle.com> Message-ID: <4FD7CCCF.6070403@oracle.com> This looks good. Vladimir Christian Thalinger wrote: > On Jun 12, 2012, at 1:14 PM, Roland Westrelin wrote: > >>> Good point. I looked at this again and the only other code using this (and where I got this pattern from in the first place) is NewMultiArray. And there it's used correctly: >>> >>> CodeEmitInfo* patching_info = NULL; >>> if (!x->klass()->is_loaded() || PatchALot) { >>> patching_info = state_for(x, x->state_before()); >>> >>> // cannot re-use same xhandlers for multiple CodeEmitInfos, so >>> // clone all handlers. This is handled transparently in other >>> // places by the CodeEmitInfo cloning logic but is handled >>> // specially here because a stub isn't being used. >>> x->set_exception_handlers(new XHandlers(x->exception_handlers())); >>> } >>> CodeEmitInfo* info = state_for(x, x->state()); >> If you look at some of the stubs constructors, you'll find this pattern: >> >> _info = new CodeEmitInfo(info); >> >> and the CodeEmitInfo copy constructor does: >> // deep copy of exception handlers >> if (info->_exception_handlers != NULL) { >> _exception_handlers = new XHandlers(info->_exception_handlers); >> } >> >> which is the same as: >> x->set_exception_handlers(new XHandlers(x->exception_handlers())); >> >> So in your case with the DeoptimizeStub you don't need the explicit set_exception_handlers(), right? > > Correct. Now the comment for NewMultiArray makes sense. I removed that code, changed the comment in do_NewMultiArray and updated the webrev. > > -- Chris > >> Roland. > From christian.thalinger at oracle.com Tue Jun 12 17:37:01 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Wed, 13 Jun 2012 00:37:01 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7174218: remove AtomicLongCSImpl intrinsics Message-ID: <20120613003703.376AE478B0@hg.openjdk.java.net> Changeset: 8b0a4867acf0 Author: twisti Date: 2012-06-12 14:31 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8b0a4867acf0 7174218: remove AtomicLongCSImpl intrinsics Reviewed-by: kvn, twisti Contributed-by: Krystal Mok ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/adlc/forms.cpp ! src/share/vm/adlc/formssel.cpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/prims/jvm.h ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp From vladimir.kozlov at oracle.com Tue Jun 12 19:59:13 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Wed, 13 Jun 2012 02:59:13 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable Message-ID: <20120613025917.C8699478B5@hg.openjdk.java.net> Changeset: 5e990493719e Author: kvn Date: 2012-06-12 16:23 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5e990493719e 7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable Summary: replace frequent C2 optimizer code patterns with new methods calls Reviewed-by: kvn, twisti Contributed-by: vladimir.x.ivanov at oracle.com ! src/share/vm/opto/domgraph.cpp ! src/share/vm/opto/ifnode.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/phaseX.hpp ! src/share/vm/opto/split_if.cpp ! src/share/vm/opto/superword.cpp From mlists at juma.me.uk Wed Jun 13 00:30:18 2012 From: mlists at juma.me.uk (Ismael Juma) Date: Wed, 13 Jun 2012 07:30:18 +0000 (UTC) Subject: hg: hsx/hotspot-comp/hotspot: 7063674: Wrong results =?utf-8?b?ZnJvbQliYXNpYwljb21wYXJpc29ucw==?= after calls to Long.bitCount(long) References: <20120612053459.792FC4788B@hg.openjdk.java.net> <643A756F-23D6-460B-9C67-75101EA6B0D5@oracle.com> Message-ID: Christian Thalinger writes: > On Jun 12, 2012, at 1:56 AM, Ismael Juma wrote: > > Is there a plan to backport it to JDK 7 update 6? > > Yes. We are going to test it in 8 for some time (maybe a week) and then I'm pushing it to HS 23.2. Perfect, thanks! Best, Ismael From roland.westrelin at oracle.com Wed Jun 13 01:28:56 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Wed, 13 Jun 2012 10:28:56 +0200 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework Message-ID: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> http://cr.openjdk.java.net/~roland/7174363/webrev.00/ 2 bugs with Arrays.copyOfRange: - The intrinsified Arrays.copyOfRange(original, from, to) uses min(original.length - from, allocated_array.length) as the number of elements to copy. If from > original.length, this number is negative but generate_arraycopy() is called with length_never_negative set to true. That can lead to a crash. - if from > to in copyOfRange(..., int from, int to) the intrinsics code lets the array allocation handle the negative length to - from which results in the wrong exception being thrown. Roland. From vladimir.kozlov at oracle.com Wed Jun 13 08:24:10 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 13 Jun 2012 08:24:10 -0700 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> Message-ID: <4FD8B09A.5090703@oracle.com> Roland, Changes are good but. Can you make a compiler regression test from bug report test? Thanks, Vladimir On 6/13/12 1:28 AM, Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7174363/webrev.00/ > > 2 bugs with Arrays.copyOfRange: > > - The intrinsified Arrays.copyOfRange(original, from, to) uses min(original.length - from, allocated_array.length) as the number of elements to copy. If from> original.length, this number is negative but generate_arraycopy() is called with length_never_negative set to true. That can lead to a crash. > > - if from> to in copyOfRange(..., int from, int to) the intrinsics code lets the array allocation handle the negative length to - from which results in the wrong exception being thrown. > > Roland. From roland.westrelin at oracle.com Wed Jun 13 09:03:29 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Wed, 13 Jun 2012 18:03:29 +0200 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <4FD8B09A.5090703@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> <4FD8B09A.5090703@oracle.com> Message-ID: Vladimir, Thanks for the review. > Changes are good but. Can you make a compiler regression test from bug report test? Ok. Roland. From christian.thalinger at oracle.com Wed Jun 13 10:47:31 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 13 Jun 2012 10:47:31 -0700 Subject: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely In-Reply-To: <4FD7CCCF.6070403@oracle.com> References: <556CA866-781D-489E-B57F-77633B3FAA12@oracle.com> <4FD788AF.6010001@oracle.com> <4EF6CC67-EA35-43D0-9A9F-0CCE025CB727@oracle.com> <972F2ADA-3210-44EA-9D35-9EF44F4BD3BE@oracle.com> <4FD7CCCF.6070403@oracle.com> Message-ID: <37ABD579-E76F-449F-9152-1541EE844E7D@oracle.com> Thank you, Vladimir. -- Chris On Jun 12, 2012, at 4:12 PM, Vladimir Kozlov wrote: > This looks good. > > Vladimir > > Christian Thalinger wrote: >> On Jun 12, 2012, at 1:14 PM, Roland Westrelin wrote: >>>> Good point. I looked at this again and the only other code using this (and where I got this pattern from in the first place) is NewMultiArray. And there it's used correctly: >>>> >>>> CodeEmitInfo* patching_info = NULL; >>>> if (!x->klass()->is_loaded() || PatchALot) { >>>> patching_info = state_for(x, x->state_before()); >>>> >>>> // cannot re-use same xhandlers for multiple CodeEmitInfos, so >>>> // clone all handlers. This is handled transparently in other >>>> // places by the CodeEmitInfo cloning logic but is handled >>>> // specially here because a stub isn't being used. >>>> x->set_exception_handlers(new XHandlers(x->exception_handlers())); >>>> } >>>> CodeEmitInfo* info = state_for(x, x->state()); >>> If you look at some of the stubs constructors, you'll find this pattern: >>> >>> _info = new CodeEmitInfo(info); >>> >>> and the CodeEmitInfo copy constructor does: >>> // deep copy of exception handlers >>> if (info->_exception_handlers != NULL) { >>> _exception_handlers = new XHandlers(info->_exception_handlers); >>> } >>> >>> which is the same as: >>> x->set_exception_handlers(new XHandlers(x->exception_handlers())); >>> >>> So in your case with the DeoptimizeStub you don't need the explicit set_exception_handlers(), right? >> Correct. Now the comment for NewMultiArray makes sense. I removed that code, changed the comment in do_NewMultiArray and updated the webrev. >> -- Chris >>> Roland. From christian.thalinger at oracle.com Wed Jun 13 16:29:32 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Wed, 13 Jun 2012 23:29:32 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely Message-ID: <20120613232934.D2513478E4@hg.openjdk.java.net> Changeset: e2fe93124108 Author: twisti Date: 2012-06-13 11:36 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e2fe93124108 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely Reviewed-by: kvn ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp From roland.westrelin at oracle.com Thu Jun 14 06:31:32 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 14 Jun 2012 15:31:32 +0200 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <4FD8B09A.5090703@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> <4FD8B09A.5090703@oracle.com> Message-ID: <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> > Changes are good but. Can you make a compiler regression test from bug report test? Here is a new webrev with regression test (for the crash, not the incorrect exception): http://cr.openjdk.java.net/~roland/7174363/webrev.01/ Roland. From roland.westrelin at oracle.com Thu Jun 14 07:31:40 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 14 Jun 2012 16:31:40 +0200 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test Message-ID: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> http://cr.openjdk.java.net/~roland/7129715/webrev.00/ StackOverflowError exceptions may get lost on OSX. The changes that were made to the signal handler to check for SIGSEGV or SIGBUS rather than only SIGSEGV or only SIGBUS in several places broke the logic of the handler. With the test of the CR, the thread catches a SIGSEGV or SIGBUS because it's exhausting its stack. The stub to return to is set: stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); but it is overwritten in: #if defined(__APPLE__) // 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions. // 64-bit Darwin may also use a SIGBUS (seen with compressed oops). // Catching SIGBUS here prevents the implicit SIGBUS NULL check below from // being called, so only do so if the implicit NULL check is not necessary. } else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { #else } else if (sig == SIGBUS /* && info->si_code == BUS_OBJERR */) { #endif // BugId 4454115: A read from a MappedByteBuffer can fault // here if the underlying file has been truncated. // Do not crash the VM in such a case. CodeBlob* cb = CodeCache::find_blob_unsafe(pc); nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; if (nm != NULL && nm->has_unsafe_access()) { stub = StubRoutines::handler_for_unsafe_access(); } so the stack overflow exception is not thrown and the thread continues growing the stack leading to a fatal error. Roland. From vladimir.kozlov at oracle.com Thu Jun 14 09:13:55 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 14 Jun 2012 09:13:55 -0700 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> <4FD8B09A.5090703@oracle.com> <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> Message-ID: <4FDA0DC3.9090508@oracle.com> Looks good. We usually use -Xbatch instead of -XX:-BackgroundCompilation since it is shorter but either way is fine. Thanks, Vladimir On 6/14/12 6:31 AM, Roland Westrelin wrote: >> Changes are good but. Can you make a compiler regression test from bug report test? > > Here is a new webrev with regression test (for the crash, not the incorrect exception): > > http://cr.openjdk.java.net/~roland/7174363/webrev.01/ > > Roland. From vladimir.kozlov at oracle.com Thu Jun 14 10:16:42 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 14 Jun 2012 10:16:42 -0700 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> Message-ID: <4FDA1C7A.1070108@oracle.com> Thank you, Roland, for fixing this Please, add a comment to your change since it is different from other platforms. We may want to add the same check on other platforms to skip unneeded additional checks. But I will let Runtime group to handle that. Thanks, Vladimir Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7129715/webrev.00/ > > StackOverflowError exceptions may get lost on OSX. The changes that were made to the signal handler to check for SIGSEGV or SIGBUS rather than only SIGSEGV or only SIGBUS in several places broke the logic of the handler. > > With the test of the CR, the thread catches a SIGSEGV or SIGBUS because it's exhausting its stack. The stub to return to is set: > stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); > but it is overwritten in: > #if defined(__APPLE__) > // 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions. > // 64-bit Darwin may also use a SIGBUS (seen with compressed oops). > // Catching SIGBUS here prevents the implicit SIGBUS NULL check below from > // being called, so only do so if the implicit NULL check is not necessary. > } else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { > #else > } else if (sig == SIGBUS /* && info->si_code == BUS_OBJERR */) { > #endif > // BugId 4454115: A read from a MappedByteBuffer can fault > // here if the underlying file has been truncated. > // Do not crash the VM in such a case. > CodeBlob* cb = CodeCache::find_blob_unsafe(pc); > nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; > if (nm != NULL && nm->has_unsafe_access()) { > stub = StubRoutines::handler_for_unsafe_access(); > } > > so the stack overflow exception is not thrown and the thread continues growing the stack leading to a fatal error. > > Roland. From christian.thalinger at oracle.com Thu Jun 14 11:06:46 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 14 Jun 2012 11:06:46 -0700 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> <4FD8B09A.5090703@oracle.com> <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> Message-ID: <30ACF4C6-8F75-492F-9D52-E869F2A23D60@oracle.com> On Jun 14, 2012, at 6:31 AM, Roland Westrelin wrote: >> Changes are good but. Can you make a compiler regression test from bug report test? > > Here is a new webrev with regression test (for the crash, not the incorrect exception): > > http://cr.openjdk.java.net/~roland/7174363/webrev.01/ Looks good. -- Chris > > Roland. From daniel.daugherty at oracle.com Thu Jun 14 12:59:55 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Thu, 14 Jun 2012 13:59:55 -0600 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> Message-ID: <4FDA42BB.7040606@oracle.com> On 6/14/12 8:31 AM, Roland Westrelin wrote: > http://cr.openjdk.java.net/~roland/7129715/webrev.00/ > > StackOverflowError exceptions may get lost on OSX. The changes that were made to the signal handler to check for SIGSEGV or SIGBUS rather than only SIGSEGV or only SIGBUS in several places broke the logic of the handler. > > With the test of the CR, the thread catches a SIGSEGV or SIGBUS because it's exhausting its stack. The stub to return to is set: > stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); > but it is overwritten in: > #if defined(__APPLE__) > // 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions. > // 64-bit Darwin may also use a SIGBUS (seen with compressed oops). > // Catching SIGBUS here prevents the implicit SIGBUS NULL check below from > // being called, so only do so if the implicit NULL check is not necessary. > } else if (sig == SIGBUS&& MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { > #else > } else if (sig == SIGBUS /*&& info->si_code == BUS_OBJERR */) { > #endif > // BugId 4454115: A read from a MappedByteBuffer can fault > // here if the underlying file has been truncated. > // Do not crash the VM in such a case. > CodeBlob* cb = CodeCache::find_blob_unsafe(pc); > nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; > if (nm != NULL&& nm->has_unsafe_access()) { > stub = StubRoutines::handler_for_unsafe_access(); > } > > so the stack overflow exception is not thrown and the thread continues growing the stack leading to a fatal error. > > Roland. Roland, Thanks for tackling such nasty code... Just trying to understand this one... These checks: 476 if (sig == SIGSEGV || sig == SIGBUS) { 480 if (addr < thread->stack_base() && 481 addr >= thread->stack_base() - thread->stack_size()) { 483 if (thread->in_stack_yellow_zone(addr)) { 485 if (thread->thread_state() == _thread_in_Java) { tell us that we took a SIGSEGV or SIGBUS while running Java code in the yellow zone of our stack... so stack overflow... which gets us to this setting of "stub": 488 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); This line: 519 if (thread->thread_state() == _thread_in_Java) { gets us into another block of "stub" setting code, but it currently doesn't care that "stub" was already set. That's the code you're trying to fix with this new line: 519 if (thread->thread_state() == _thread_in_Java && stub == NULL) { Just to be complete, I'm trying to understand which of the many places that set "stub" is clobbering the existing value. I think it is this code block: 603 } else if ((sig == SIGSEGV || sig == SIGBUS) && 604 !MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { 605 // Determination of interpreter/vtable stub/compiled code null exception 606 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); 607 } With the new code in place, "stub == NULL" is false and we hit this code block: 608 } else if (thread->thread_state() == _thread_in_vm && 609 sig == SIGBUS && /* info->si_code == BUS_OBJERR && */ 610 thread->doing_unsafe_access()) { 611 stub = StubRoutines::handler_for_unsafe_access(); 612 } 613 614 // jni_fast_GetField can trap at certain pc's if a GC kicks in 615 // and the heap gets shrunk before the field access. 616 if ((sig == SIGSEGV) || (sig == SIGBUS)) { 617 address addr = JNI_FastGetField::find_slowcase_pc(pc); 618 if (addr != (address)-1) { 619 stub = addr; 620 } 621 } We already know that the thread is _thread_in_Java so we don't take the branch on 608. However, it looks like if the signal is SIGBUS, then we'll make the call to JNI_FastGetField::find_slowcase_pc() where we'll search some list of cached PCs (I think). I'm guessing that since we're in _thread_in_Java that our PC won't match anything on that list, but... I'm going to guess that the find_slowcase_pc() call could be better guarded, but that's a different problem. We'll bypass this check: 627 if ((sig == SIGSEGV || sig == SIGBUS) && 628 os::is_memory_serialize_page(thread, (address) info->si_addr)) { because we're not the serialization page... We by-pass a huge block of #ifndef AMD64 code (I hope :-))... And I think with the fixed version of line 519, we land here: 714 if (stub != NULL) { 715 // save all thread context in case we need to restore it 716 if (thread != NULL) thread->set_saved_exception_pc(pc); 717 718 uc->context_pc = (intptr_t)stub; 719 return true; 720 } Of course, with all the #ifdef and #ifndef stuff, I could be all wet and don't really understand what this code is doing at all... Thumbs up, I think... now my head hurts... :-) Dan From christian.thalinger at oracle.com Thu Jun 14 14:38:49 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 14 Jun 2012 14:38:49 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error Message-ID: http://cr.openjdk.java.net/~twisti/7157365 7157365: jruby/bench.bench_timeout crashes with JVM internal error Reviewed-by: The problem manifests itself as an assert in escape analysis code: assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity The out-of-line code for invokedynamic instructions loads the CallSite object from the constant pool cache. Since the constant pool cache contains data other than oops we return the type as byte[] and load the oop as raw pointer. Escape analysis notices this misbehavior and bails out. The best possible fix for now is to define the constant pool cache base pointer as an oop array and load a raw pointer from there. Note that this is more of a temporary fix since the perm-gen removal will fix this problem in a more correct fashion. src/share/vm/memory/universe.hpp src/share/vm/opto/callGenerator.cpp src/share/vm/opto/chaitin.cpp src/share/vm/opto/type.cpp From john.r.rose at oracle.com Thu Jun 14 15:42:57 2012 From: john.r.rose at oracle.com (John Rose) Date: Thu, 14 Jun 2012 15:42:57 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error In-Reply-To: References: Message-ID: <8550DA76-DCC9-41BE-BB5A-DDF167CDFA1E@oracle.com> Reviewed. ? John P.S. One comment: This code in memnode.cpp obscured the root of your problem: case T_OBJECT: #ifdef _LP64 if (adr->bottom_type()->is_ptr_to_narrowoop()) { Node* load = gvn.transform(new (C, 3) LoadNNode(ctl, mem, adr, adr_type, rt->make_narrowoop())); return new (C, 2) DecodeNNode(load, load->bottom_type()->make_ptr()); } else #endif There should be a separate case T_NARROWOOP here, instead of overloading T_OBJECT and secretly distinguishing the adr-type. The LoadNode::make factory should have a 1-1 relation between BasicType and LoadNode subtype. Most uses of T_OBJECT mean "object value in a register". The choice of using T_NARROWOOP should (probably) be moved higher up the call chain, to make it more clear which kind of oop we are referring to. I would consider putting the decision in Parse::do_get_xxx and parallel uses of GraphKit::make_load. It seems to me, in this moment, that those few occurrences of T_OBJECT which map to memory references to compressed oops should be made explicitly T_NARROWOOP. The alternative (non-compressed in-memory values) could be tagged T_ADDRESS (or maybe T_WIDEOOP) for explicitness, or T_OBJECT could continue to be a full word (as ArrayElementSize appears to promise). Would you mind filing a separate bug for cleaning this up? The #ifdef should go away too, of course. (If there is already an #ifdef removal bug, this could be added as a comment.) On Jun 14, 2012, at 2:38 PM, Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7157365 > > 7157365: jruby/bench.bench_timeout crashes with JVM internal error > Reviewed-by: > > The problem manifests itself as an assert in escape analysis code: > > assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity > > The out-of-line code for invokedynamic instructions loads the CallSite object > from the constant pool cache. Since the constant pool cache contains data > other than oops we return the type as byte[] and load the oop as raw pointer. > Escape analysis notices this misbehavior and bails out. > > The best possible fix for now is to define the constant pool cache base > pointer as an oop array and load a raw pointer from there. > > Note that this is more of a temporary fix since the perm-gen removal will fix > this problem in a more correct fashion. > > src/share/vm/memory/universe.hpp > src/share/vm/opto/callGenerator.cpp > src/share/vm/opto/chaitin.cpp > src/share/vm/opto/type.cpp > From vladimir.kozlov at oracle.com Thu Jun 14 15:53:05 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 14 Jun 2012 15:53:05 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error In-Reply-To: References: Message-ID: <4FDA6B51.8050405@oracle.com> Christian, Can you move duplicated code in callGenerator into separate method? Thanks, Vladimir Christian Thalinger wrote: > http://cr.openjdk.java.net/~twisti/7157365 > > 7157365: jruby/bench.bench_timeout crashes with JVM internal error > Reviewed-by: > > The problem manifests itself as an assert in escape analysis code: > > assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity > > The out-of-line code for invokedynamic instructions loads the CallSite object > from the constant pool cache. Since the constant pool cache contains data > other than oops we return the type as byte[] and load the oop as raw pointer. > Escape analysis notices this misbehavior and bails out. > > The best possible fix for now is to define the constant pool cache base > pointer as an oop array and load a raw pointer from there. > > Note that this is more of a temporary fix since the perm-gen removal will fix > this problem in a more correct fashion. > > src/share/vm/memory/universe.hpp > src/share/vm/opto/callGenerator.cpp > src/share/vm/opto/chaitin.cpp > src/share/vm/opto/type.cpp > From christian.thalinger at oracle.com Thu Jun 14 17:36:04 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 14 Jun 2012 17:36:04 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error In-Reply-To: <4FDA6B51.8050405@oracle.com> References: <4FDA6B51.8050405@oracle.com> Message-ID: <94282765-B4B8-4559-A706-4254BD254204@oracle.com> On Jun 14, 2012, at 3:53 PM, Vladimir Kozlov wrote: > Christian, > > Can you move duplicated code in callGenerator into separate method? Actually the code in PredictedDynamicCallGenerator is (currently) not used. Only the path for the selectAlternative idiom. I'm thinking about removing the code when we integrate our new implementation and resurrect it when we need it. -- Chris > > Thanks, > Vladimir > > Christian Thalinger wrote: >> http://cr.openjdk.java.net/~twisti/7157365 >> 7157365: jruby/bench.bench_timeout crashes with JVM internal error >> Reviewed-by: >> The problem manifests itself as an assert in escape analysis code: >> assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity >> The out-of-line code for invokedynamic instructions loads the CallSite object >> from the constant pool cache. Since the constant pool cache contains data other than oops we return the type as byte[] and load the oop as raw pointer. >> Escape analysis notices this misbehavior and bails out. >> The best possible fix for now is to define the constant pool cache base pointer as an oop array and load a raw pointer from there. >> Note that this is more of a temporary fix since the perm-gen removal will fix this problem in a more correct fashion. src/share/vm/memory/universe.hpp >> src/share/vm/opto/callGenerator.cpp >> src/share/vm/opto/chaitin.cpp >> src/share/vm/opto/type.cpp From vladimir.kozlov at oracle.com Thu Jun 14 17:45:04 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 14 Jun 2012 17:45:04 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error In-Reply-To: <94282765-B4B8-4559-A706-4254BD254204@oracle.com> References: <4FDA6B51.8050405@oracle.com> <94282765-B4B8-4559-A706-4254BD254204@oracle.com> Message-ID: <4FDA8590.5020506@oracle.com> OK then. Thanks, Vladimir Christian Thalinger wrote: > On Jun 14, 2012, at 3:53 PM, Vladimir Kozlov wrote: > >> Christian, >> >> Can you move duplicated code in callGenerator into separate method? > > Actually the code in PredictedDynamicCallGenerator is (currently) not used. Only the path for the selectAlternative idiom. I'm thinking about removing the code when we integrate our new implementation and resurrect it when we need it. > > -- Chris > >> Thanks, >> Vladimir >> >> Christian Thalinger wrote: >>> http://cr.openjdk.java.net/~twisti/7157365 >>> 7157365: jruby/bench.bench_timeout crashes with JVM internal error >>> Reviewed-by: >>> The problem manifests itself as an assert in escape analysis code: >>> assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity >>> The out-of-line code for invokedynamic instructions loads the CallSite object >>> from the constant pool cache. Since the constant pool cache contains data other than oops we return the type as byte[] and load the oop as raw pointer. >>> Escape analysis notices this misbehavior and bails out. >>> The best possible fix for now is to define the constant pool cache base pointer as an oop array and load a raw pointer from there. >>> Note that this is more of a temporary fix since the perm-gen removal will fix this problem in a more correct fashion. src/share/vm/memory/universe.hpp >>> src/share/vm/opto/callGenerator.cpp >>> src/share/vm/opto/chaitin.cpp >>> src/share/vm/opto/type.cpp > From vladimir.kozlov at oracle.com Thu Jun 14 20:43:19 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 15 Jun 2012 03:43:19 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 9 new changesets Message-ID: <20120615034342.6BC5347935@hg.openjdk.java.net> Changeset: 2fe087c3e814 Author: jiangli Date: 2012-06-06 14:33 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/2fe087c3e814 7172967: Eliminate constMethod's _method backpointer to methodOop. Summary: Eliminate constMethod's _method backpointer to methodOop, and move the _constant field from methodOop to constMethod. Reviewed-by: roland, bdelsart, kamg ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! src/cpu/sparc/vm/cppInterpreter_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/x86/vm/cppInterpreter_x86.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/jhelper.d ! src/os/solaris/dtrace/libjvm_db.c ! src/share/vm/oops/constMethodKlass.cpp ! src/share/vm/oops/constMethodOop.cpp ! src/share/vm/oops/constMethodOop.hpp ! src/share/vm/oops/methodKlass.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: ab6ab9f84b2d Author: bdelsart Date: 2012-06-11 04:47 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/ab6ab9f84b2d Merge Changeset: dcfcdd01af4b Author: fparain Date: 2012-06-05 06:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/dcfcdd01af4b 7171703: JNI DefineClass crashes client VM when first parameter is NULL Reviewed-by: acorn, kamg, sspitsyn, dholmes ! src/share/vm/prims/jni.cpp Changeset: de909f001528 Author: mikael Date: 2012-06-06 05:21 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/de909f001528 7170275: os::print_os_info needs to know about Windows 8 Summary: Recognize Windows 8 and Windows Server 2012 Reviewed-by: sla, kvn, azeemj ! src/os/windows/vm/os_windows.cpp Changeset: 40b4aaf010e4 Author: dholmes Date: 2012-06-08 02:06 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/40b4aaf010e4 7172708: 32/64 bit type issues on Windows after Mac OS X port Reviewed-by: dholmes, coleenp Contributed-by: Chris Dennis ! src/share/vm/utilities/globalDefinitions_visCPP.hpp Changeset: 0a8b8cb8b22c Author: sla Date: 2012-06-11 10:28 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0a8b8cb8b22c Merge Changeset: 4d399f013e5a Author: kamg Date: 2012-06-11 13:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/4d399f013e5a 7175914: Usage of gcc with precompiled headers produces wrong build dependencies Summary: Add -fpch-deps flag to gcc builds Reviewed-by: kamg, coleenp Contributed-by: volker.simonis at gmail.com ! make/bsd/makefiles/gcc.make ! make/linux/makefiles/gcc.make ! make/solaris/makefiles/gcc.make Changeset: 17b1b616daf7 Author: sla Date: 2012-06-14 12:21 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/17b1b616daf7 Merge Changeset: eba1d5bce9e8 Author: kvn Date: 2012-06-14 14:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/eba1d5bce9e8 Merge ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/runtime/vmStructs.cpp From john.coomes at oracle.com Fri Jun 15 01:58:15 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 08:58:15 +0000 Subject: hg: hsx/hotspot-comp: 7 new changesets Message-ID: <20120615085816.070AC47944@hg.openjdk.java.net> Changeset: df998cd4d51d Author: sla Date: 2012-06-07 15:28 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/df998cd4d51d 7165257: Add JFR tests to the JDK code base Reviewed-by: ohair, dholmes, nloodin, mgronlun ! make/jprt.properties Changeset: 6aea9b1a3840 Author: lana Date: 2012-06-08 12:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/6aea9b1a3840 Merge Changeset: efd26e051e50 Author: erikj Date: 2012-06-07 20:25 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/efd26e051e50 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! README-builds.html ! common/autoconf/autogen.sh ! common/autoconf/builddeps.m4 ! common/autoconf/configure ! common/autoconf/configure.ac ! common/autoconf/help.m4 ! common/autoconf/platform.m4 ! common/autoconf/spec.gmk.in ! common/bin/compareimage.sh ! common/bin/diffexec.sh ! common/bin/diffjarzip.sh ! common/bin/difflib.sh ! common/bin/logger.sh ! common/makefiles/JavaCompilation.gmk ! common/makefiles/MakeBase.gmk ! common/makefiles/Makefile ! common/makefiles/NativeCompilation.gmk Changeset: dd596160b323 Author: ohair Date: 2012-06-08 17:25 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/dd596160b323 7170091: Fix missing wait between repo cloning in hgforest.sh Reviewed-by: strarup ! make/scripts/hgforest.sh Changeset: c61921f9b965 Author: ohair Date: 2012-06-08 17:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/c61921f9b965 Merge Changeset: 661c9aae602b Author: katleman Date: 2012-06-13 16:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/661c9aae602b Merge Changeset: 02c6c67c1bb7 Author: katleman Date: 2012-06-14 13:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/02c6c67c1bb7 Added tag jdk8-b43 for changeset 661c9aae602b ! .hgtags From john.coomes at oracle.com Fri Jun 15 01:58:22 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 08:58:22 +0000 Subject: hg: hsx/hotspot-comp/corba: 4 new changesets Message-ID: <20120615085825.E0E3147945@hg.openjdk.java.net> Changeset: 0c0b50c7b76a Author: erikj Date: 2012-06-07 20:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/0c0b50c7b76a 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! makefiles/Makefile Changeset: a1f721fbe5d0 Author: ohair Date: 2012-06-13 09:43 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/a1f721fbe5d0 7176691: prtconf: devinfo facility not available in corba building Reviewed-by: tbell ! make/common/shared/Platform.gmk Changeset: cd879aff5d3c Author: katleman Date: 2012-06-13 16:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/cd879aff5d3c Merge Changeset: 439d9bf8e4ff Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/439d9bf8e4ff Added tag jdk8-b43 for changeset cd879aff5d3c ! .hgtags From john.coomes at oracle.com Fri Jun 15 01:58:32 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 08:58:32 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 6 new changesets Message-ID: <20120615085852.C519647946@hg.openjdk.java.net> Changeset: 633700642caf Author: joehw Date: 2012-06-07 13:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/633700642caf 7151118: Regressions on 7u4 b11 comp. 7u4 b06 on specjvm2008.xml.transform subbenchmark Summary: roll back XalanJ-2271 that caused the regression Reviewed-by: lancea ! src/com/sun/org/apache/xml/internal/serializer/CharInfo.java ! src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java ! src/com/sun/org/apache/xml/internal/serializer/ToStream.java ! src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java Changeset: 238d2d0249af Author: joehw Date: 2012-06-08 11:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/238d2d0249af 7157608: One feature is not recognized. Summary: adding feature standard-uri-conformant into the recognized list Reviewed-by: psandoz ! src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Changeset: b94fad1cb830 Author: lana Date: 2012-06-08 12:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/b94fad1cb830 Merge Changeset: 83a38059327b Author: erikj Date: 2012-06-07 20:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/83a38059327b 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! makefiles/Makefile Changeset: eff4ece9c8bc Author: katleman Date: 2012-06-13 16:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/eff4ece9c8bc Merge Changeset: 0b3f3a4ce139 Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/0b3f3a4ce139 Added tag jdk8-b43 for changeset eff4ece9c8bc ! .hgtags From john.coomes at oracle.com Fri Jun 15 01:59:00 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 08:59:00 +0000 Subject: hg: hsx/hotspot-comp/jaxws: 3 new changesets Message-ID: <20120615085910.72CB247947@hg.openjdk.java.net> Changeset: 001351a98bd5 Author: erikj Date: 2012-06-07 20:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/001351a98bd5 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! makefiles/Makefile Changeset: f00c12994562 Author: katleman Date: 2012-06-13 16:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/f00c12994562 Merge Changeset: f6a417540ef1 Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/f6a417540ef1 Added tag jdk8-b43 for changeset f00c12994562 ! .hgtags From john.coomes at oracle.com Fri Jun 15 02:01:48 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 09:01:48 +0000 Subject: hg: hsx/hotspot-comp/jdk: 88 new changesets Message-ID: <20120615091754.D4C0747948@hg.openjdk.java.net> Changeset: a2d12ca36eb3 Author: bae Date: 2012-05-25 12:56 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a2d12ca36eb3 7146550: [macosx] DnD test failure in createCompatibleWritableRaster() Reviewed-by: kizune, serb ! src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java ! src/macosx/classes/sun/lwawt/macosx/CImage.java ! src/macosx/native/sun/awt/CDragSource.h ! src/macosx/native/sun/awt/CDragSource.m ! src/macosx/native/sun/awt/CDragSourceContextPeer.m ! test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java Changeset: 23b82fb671d4 Author: lana Date: 2012-05-25 19:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/23b82fb671d4 Merge Changeset: c892ca15ca52 Author: andrew Date: 2012-05-30 16:17 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c892ca15ca52 7171223: Building ExtensionSubtables.cpp should use -fno-strict-aliasing Summary: GCC 4.4+ have stricter aliasing requirements which produces a new warning from this code Reviewed-by: prr, ohair ! make/sun/font/Makefile Changeset: d988ed9d40bc Author: bae Date: 2012-05-31 12:15 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/d988ed9d40bc 7120895: FontConfiguration should not use thread contextClassLoader Reviewed-by: igor, prr ! src/share/classes/sun/awt/FontConfiguration.java Changeset: baf734760bd6 Author: lana Date: 2012-06-05 17:56 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/baf734760bd6 Merge Changeset: c499fd3f1695 Author: erikj Date: 2012-06-07 18:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c499fd3f1695 7170969: Add @GenerateNativeHeader to classes whose fields need to be exported for JNI Reviewed-by: ohair, ohrstrom, ihse ! make/sun/awt/make.depend ! src/macosx/classes/apple/laf/JRSUIConstants.java ! src/macosx/classes/com/apple/eawt/FullScreenHandler.java ! src/macosx/classes/com/apple/eawt/event/GestureHandler.java ! src/macosx/classes/sun/java2d/OSXSurfaceData.java ! src/macosx/classes/sun/lwawt/LWLabelPeer.java ! src/macosx/classes/sun/lwawt/LWTextFieldPeer.java ! src/macosx/classes/sun/lwawt/macosx/CocoaConstants.java ! src/share/classes/java/awt/Adjustable.java ! src/share/classes/java/awt/BasicStroke.java ! src/share/classes/java/awt/Choice.java ! src/share/classes/java/awt/DisplayMode.java ! src/share/classes/java/awt/Image.java ! src/share/classes/java/awt/List.java ! src/share/classes/java/awt/PopupMenu.java ! src/share/classes/java/awt/SystemColor.java ! src/share/classes/java/awt/TextComponent.java ! src/share/classes/java/awt/Transparency.java ! src/share/classes/java/awt/color/ColorSpace.java ! src/share/classes/java/awt/color/ICC_Profile.java ! src/share/classes/java/awt/datatransfer/Clipboard.java ! src/share/classes/java/awt/datatransfer/StringSelection.java ! src/share/classes/java/awt/dnd/DnDConstants.java ! src/share/classes/java/awt/event/ActionEvent.java ! src/share/classes/java/awt/event/AdjustmentEvent.java ! src/share/classes/java/awt/event/ComponentEvent.java ! src/share/classes/java/awt/event/InputMethodEvent.java ! src/share/classes/java/awt/event/MouseWheelEvent.java ! src/share/classes/java/awt/geom/PathIterator.java ! src/share/classes/java/awt/image/AffineTransformOp.java ! src/share/classes/java/awt/image/ConvolveOp.java ! src/share/classes/java/awt/image/DataBuffer.java ! src/share/classes/java/awt/image/DirectColorModel.java ! src/share/classes/java/awt/image/ImageConsumer.java ! src/share/classes/java/awt/image/ImageObserver.java ! src/share/classes/java/awt/peer/ComponentPeer.java ! src/share/classes/java/awt/print/PageFormat.java ! src/share/classes/java/awt/print/Pageable.java ! src/share/classes/java/awt/print/Printable.java ! src/share/classes/sun/awt/CharsetString.java ! src/share/classes/sun/awt/EmbeddedFrame.java ! src/share/classes/sun/awt/SunHints.java ! src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java ! src/share/classes/sun/awt/image/BufImgSurfaceData.java ! src/share/classes/sun/java2d/SunGraphics2D.java ! src/share/classes/sun/java2d/opengl/OGLBlitLoops.java ! src/share/classes/sun/java2d/opengl/OGLContext.java ! src/share/classes/sun/java2d/pipe/BufferedContext.java ! src/share/classes/sun/java2d/pipe/BufferedOpCodes.java ! src/share/classes/sun/java2d/pipe/BufferedPaints.java ! src/share/classes/sun/java2d/pipe/BufferedTextPipe.java ! src/share/classes/sun/java2d/pipe/RegionIterator.java ! src/share/classes/sun/java2d/pipe/RenderBuffer.java ! src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventNotifier.java ! src/share/classes/sun/java2d/pipe/hw/AccelSurface.java ! src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java ! src/share/classes/sun/nio/ch/IOStatus.java ! src/share/classes/sun/security/pkcs11/Secmod.java ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java ! src/windows/classes/sun/java2d/d3d/D3DContext.java ! src/windows/classes/sun/java2d/d3d/D3DPaints.java ! src/windows/native/java/net/TwoStacksPlainSocketImpl.c ! src/windows/native/sun/windows/awt_DataTransferer.cpp ! src/windows/native/sun/windows/awt_MenuItem.h Changeset: 563582096868 Author: ohair Date: 2012-06-07 18:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/563582096868 Merge - src/macosx/bin/amd64/jvm.cfg ! src/macosx/classes/sun/lwawt/LWTextFieldPeer.java ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java - src/share/classes/sun/security/action/LoadLibraryAction.java - test/tools/pack200/dyn.jar - test/tools/pack200/pack200-verifier/src/xmlkit/ClassSyntax.java - test/tools/pack200/pack200-verifier/src/xmlkit/ClassWriter.java - test/tools/pack200/pack200-verifier/src/xmlkit/InstructionAssembler.java - test/tools/pack200/pack200-verifier/src/xmlkit/InstructionSyntax.java Changeset: 992068b99493 Author: lana Date: 2012-06-08 11:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/992068b99493 Merge Changeset: 5ff4693406ad Author: dcherepanov Date: 2012-05-22 12:35 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5ff4693406ad 7160293: [macosx] FileDialog appears on secondary display Reviewed-by: art, bae ! src/macosx/classes/sun/awt/CGraphicsEnvironment.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/awt/AWTWindow.m Changeset: cac4daf60283 Author: zhouyx Date: 2012-05-23 12:37 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cac4daf60283 7170996: IME composition window does not disappear when file dialog is closed : Japanese WinXP Reviewed-by: art, bagiras ! src/windows/native/sun/windows/awt_Component.cpp Changeset: bb3ada9822e4 Author: kizune Date: 2012-05-24 15:11 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bb3ada9822e4 7144064: [macosx] "Could not find class" error in JTree's ctor when called in headless mode Reviewed-by: art, leonidr ! src/solaris/native/java/lang/java_props_md.c Changeset: cd00d68e06ac Author: neugens Date: 2012-05-25 14:16 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cd00d68e06ac 6800513: GTK-LaF renders menus incompletely Reviewed-by: rupashka ! src/share/classes/javax/swing/JPopupMenu.java Changeset: 4b2b963f8774 Author: ant Date: 2012-05-25 20:57 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4b2b963f8774 7171776: one more setGlobalCurrentFocusCycleRoot call requires doPrivileged Reviewed-by: art ! src/share/classes/java/awt/KeyboardFocusManager.java Changeset: bcdb6e5f31cc Author: lana Date: 2012-05-25 13:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bcdb6e5f31cc Merge Changeset: 3c9adc88956d Author: luchsh Date: 2012-05-30 10:58 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3c9adc88956d 7170655: Frame size does not follow font size change with XToolkit Reviewed-by: serb, art ! src/solaris/classes/sun/awt/X11/XLabelPeer.java + test/java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java Changeset: 14f9e9060370 Author: alexsch Date: 2012-05-30 14:46 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/14f9e9060370 7146131: [macosx] When click the show optionpane button,it display partly of dialog and hung until timeout Reviewed-by: rupashka ! src/macosx/classes/com/apple/laf/AquaInternalFrameUI.java Changeset: e6de02da6870 Author: alexsch Date: 2012-05-30 14:58 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e6de02da6870 7141296: [macosx] Mouse Wheel Turn closes combobox popup Reviewed-by: rupashka ! src/macosx/classes/com/apple/laf/AquaScrollPaneUI.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java Changeset: 8800a98316b2 Author: neugens Date: 2012-05-30 18:15 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8800a98316b2 7171806: Missing test for bug ID 6800513 fix Reviewed-by: rupashka + test/javax/swing/JPopupMenu/6800513/bug6800513.java Changeset: 06a0302856eb Author: leonidr Date: 2012-05-31 20:18 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/06a0302856eb 7150089: [macosx] Default for a custom cursor created from non-existent image is not transparent Reviewed-by: anthony, kizune ! src/macosx/classes/sun/lwawt/macosx/CCustomCursor.java Changeset: fd27852f3ea5 Author: denis Date: 2012-06-01 17:08 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fd27852f3ea5 7112115: Component.getLocationOnScreen() work incorrectly if create window in point (0, 0) on oel Reviewed-by: serb, art + test/javax/swing/JSpinner/5012888/bug5012888.java Changeset: 0526ba7f723b Author: alexsch Date: 2012-06-04 14:11 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0526ba7f723b 7161766: [macosx] javax/swing/JPopupMenu/6694823/bug6694823.java failed on Mac OS X Reviewed-by: rupashka ! test/javax/swing/JPopupMenu/6694823/bug6694823.java Changeset: 79df0a4a6573 Author: omajid Date: 2012-06-04 16:39 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/79df0a4a6573 7043963: AWT workaround missing for Mutter. Reviewed-by: art, anthony Contributed-by: Denis Lila ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java ! src/solaris/classes/sun/awt/X11/XWM.java + test/java/awt/WMSpecificTests/Mutter/MutterMaximizeTest.java ! test/java/awt/regtesthelpers/Util.java Changeset: fc64530a1571 Author: anthony Date: 2012-06-05 15:20 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fc64530a1571 7172722: Latest jdk7u from OSX broke universal build Summary: Add a data memeber for a new property Reviewed-by: serb, swingler ! src/macosx/native/sun/awt/AWTWindow.h Changeset: 5880da7a3628 Author: dcherepanov Date: 2012-06-05 19:48 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5880da7a3628 7123957: Switch of Gnome theme ends up deadlocked in GTKEngine.native_switch_theme Reviewed-by: art, anthony ! src/solaris/native/sun/awt/swing_GTKEngine.c Changeset: 8c6fef8404ea Author: lana Date: 2012-06-05 18:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8c6fef8404ea Merge Changeset: c6075e29ce94 Author: alexsch Date: 2012-06-06 11:54 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c6075e29ce94 7169285: [macosx] Test api/javax_swing/JPopupMenu/descriptions.html#setgetXXX doesn't take Mac main menu Reviewed-by: rupashka ! src/share/classes/javax/swing/JPopupMenu.java Changeset: 6694d9e99716 Author: littlee Date: 2012-06-07 10:22 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6694d9e99716 7174233: Openjdk is missing some key maps on the Japanese keyboards Reviewed-by: anthony, naoto ! src/solaris/classes/sun/awt/X11/XKeysym.java ! src/solaris/native/sun/xawt/XWindow.c Changeset: 77c92e809c25 Author: alexsch Date: 2012-06-07 18:24 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/77c92e809c25 7152952: [macosx] List rows overlap with enlarged font Reviewed-by: art, rupashka ! src/macosx/classes/sun/lwawt/LWListPeer.java Changeset: f1063002c843 Author: kizune Date: 2012-06-07 20:04 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f1063002c843 7124247: [macosx] Implement GraphicsDevice.setDisplayMode() Reviewed-by: anthony, swingler ! src/macosx/classes/sun/awt/CGraphicsDevice.java ! src/macosx/native/sun/awt/CGraphicsDevice.m Changeset: 05ac5622a2ec Author: kizune Date: 2012-06-07 20:06 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/05ac5622a2ec Merge Changeset: 4acd0211f48b Author: rupashka Date: 2012-06-07 21:49 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4acd0211f48b 7156657: Version 7 doesn't support translucent popup menus against a translucent window Reviewed-by: art, alexsch ! src/share/classes/javax/swing/PopupFactory.java ! src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java + test/javax/swing/JPopupMenu/7156657/bug7156657.java Changeset: a1d825c477bc Author: alexsch Date: 2012-06-08 14:15 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a1d825c477bc 7092551: Double-click in TextField sets caret to the beginning Reviewed-by: bagiras, serb ! src/windows/native/sun/windows/awt_TextArea.cpp ! src/windows/native/sun/windows/awt_TextArea.h ! src/windows/native/sun/windows/awt_TextComponent.cpp ! src/windows/native/sun/windows/awt_TextComponent.h ! src/windows/native/sun/windows/awt_TextField.cpp ! src/windows/native/sun/windows/awt_TextField.h Changeset: 34ac493d6bea Author: kizune Date: 2012-06-08 22:21 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/34ac493d6bea 7175566: [macosx] Glich in fix for CR7124247 caused MacOS crash during PIT testing Reviewed-by: anthony, dcherepanov ! src/macosx/native/sun/awt/CGraphicsDevice.m Changeset: 3d7be3ac3a99 Author: lana Date: 2012-06-08 12:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3d7be3ac3a99 Merge Changeset: a2fc04c2dfc8 Author: weijun Date: 2012-05-23 15:51 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a2fc04c2dfc8 7162687: enhance KDC server availability detection Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/KdcComm.java ! src/share/classes/sun/security/krb5/internal/NetClient.java ! test/ProblemList.txt ! test/sun/security/krb5/auto/BadKdc.java ! test/sun/security/krb5/auto/MaxRetries.java ! test/sun/security/krb5/auto/TcpTimeout.java + test/sun/security/krb5/auto/Unreachable.java + test/sun/security/krb5/auto/unreachable.krb5.conf Changeset: 0c3d9050c918 Author: khazra Date: 2012-05-23 10:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0c3d9050c918 7170169: (props) System.getProperty("os.name") should return "Windows 8" when run on Windows 8 Summary: Enable Windows Version 6.2 to be recognized as Windows 8 Reviewed-by: darcy, dholmes, alanb, chegar ! src/windows/native/java/lang/java_props_md.c Changeset: 21703d431217 Author: alanb Date: 2012-05-24 10:57 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/21703d431217 7169050: (se) Selector.select slow on Solaris due to insertion of POLLREMOVE and 0 events Reviewed-by: chegar, coffeys ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java ! src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c Changeset: a11c964d1319 Author: jgish Date: 2012-05-24 14:44 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a11c964d1319 7160725: Strange or obsolete @see tags in some exception java.lang javadoc Summary: update javadoc for IllegalArgumentException and NumberFormatException Reviewed-by: alanb ! src/share/classes/java/lang/IllegalArgumentException.java Changeset: 5ec5588c733d Author: nloodin Date: 2012-05-24 09:32 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5ec5588c733d 7143353: -Xrunhprof fails in Java 7 due to bad switch Reviewed-by: jrose, sspitsyn ! src/share/demo/jvmti/java_crw_demo/java_crw_demo.c ! src/share/javavm/export/classfile_constants.h Changeset: 1c869c799ef9 Author: nloodin Date: 2012-05-24 10:20 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1c869c799ef9 Merge Changeset: e309917fb9af Author: dbhole Date: 2012-05-24 19:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e309917fb9af 7117230: clean up warnings in java.text Reviewed-by: jrose, smarks ! src/share/classes/java/text/AttributedCharacterIterator.java ! src/share/classes/java/text/AttributedString.java ! src/share/classes/java/text/BreakDictionary.java ! src/share/classes/java/text/BreakIterator.java ! src/share/classes/java/text/CharacterIteratorFieldDelegate.java ! src/share/classes/java/text/ChoiceFormat.java ! src/share/classes/java/text/CollationElementIterator.java ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/DictionaryBasedBreakIterator.java ! src/share/classes/java/text/MergeCollation.java ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/java/text/NumberFormat.java ! src/share/classes/java/text/ParseException.java ! src/share/classes/java/text/RBCollationTables.java ! src/share/classes/java/text/RBTableBuilder.java ! src/share/classes/java/text/RuleBasedBreakIterator.java Changeset: 71cf74329a9e Author: youdwei Date: 2012-05-25 13:28 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/71cf74329a9e 7094176: (tz) Incorrect TimeZone display name when DST not applicable / disabled Reviewed-by: okutsu ! src/windows/native/java/util/TimeZone_md.c + test/java/util/TimeZone/DstTzTest.java Changeset: 85696e57d447 Author: youdwei Date: 2012-05-25 14:32 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/85696e57d447 7171028: dots are missed in the datetime for Slovanian Reviewed-by: yhuang ! src/share/classes/sun/text/resources/FormatData_sl.java ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: 1def6b6bfbd9 Author: egahlin Date: 2012-05-25 12:24 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1def6b6bfbd9 7017818: NLS: JConsoleResources.java cannot be handled by translation team Reviewed-by: mchung, mfang ! make/netbeans/jconsole/build.xml ! make/sun/jconsole/FILES.gmk ! make/sun/jconsole/Makefile ! src/share/classes/sun/tools/jconsole/AboutDialog.java ! src/share/classes/sun/tools/jconsole/BorderedComponent.java ! src/share/classes/sun/tools/jconsole/ClassTab.java ! src/share/classes/sun/tools/jconsole/ConnectDialog.java ! src/share/classes/sun/tools/jconsole/CreateMBeanDialog.java ! src/share/classes/sun/tools/jconsole/Formatter.java ! src/share/classes/sun/tools/jconsole/HTMLPane.java ! src/share/classes/sun/tools/jconsole/InternalDialog.java ! src/share/classes/sun/tools/jconsole/JConsole.java ! src/share/classes/sun/tools/jconsole/LabeledComponent.java ! src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java ! src/share/classes/sun/tools/jconsole/MBeansTab.java ! src/share/classes/sun/tools/jconsole/MaximizableInternalFrame.java ! src/share/classes/sun/tools/jconsole/MemoryPoolProxy.java ! src/share/classes/sun/tools/jconsole/MemoryPoolStat.java ! src/share/classes/sun/tools/jconsole/MemoryTab.java + src/share/classes/sun/tools/jconsole/Messages.java ! src/share/classes/sun/tools/jconsole/OverviewPanel.java ! src/share/classes/sun/tools/jconsole/OverviewTab.java ! src/share/classes/sun/tools/jconsole/Plotter.java ! src/share/classes/sun/tools/jconsole/PlotterPanel.java ! src/share/classes/sun/tools/jconsole/ProxyClient.java ! src/share/classes/sun/tools/jconsole/Resources.java ! src/share/classes/sun/tools/jconsole/SummaryTab.java ! src/share/classes/sun/tools/jconsole/Tab.java ! src/share/classes/sun/tools/jconsole/ThreadTab.java ! src/share/classes/sun/tools/jconsole/VMInternalFrame.java ! src/share/classes/sun/tools/jconsole/VMPanel.java ! src/share/classes/sun/tools/jconsole/VariableGridLayout.java ! src/share/classes/sun/tools/jconsole/Version.java.template ! src/share/classes/sun/tools/jconsole/inspector/OperationEntry.java ! src/share/classes/sun/tools/jconsole/inspector/TableSorter.java ! src/share/classes/sun/tools/jconsole/inspector/ThreadDialog.java ! src/share/classes/sun/tools/jconsole/inspector/Utils.java ! src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XDataViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanInfo.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanNotifications.java ! src/share/classes/sun/tools/jconsole/inspector/XObject.java ! src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XOperations.java ! src/share/classes/sun/tools/jconsole/inspector/XPlotter.java ! src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XSheet.java ! src/share/classes/sun/tools/jconsole/inspector/XTable.java ! src/share/classes/sun/tools/jconsole/inspector/XTextField.java ! src/share/classes/sun/tools/jconsole/inspector/XTree.java ! src/share/classes/sun/tools/jconsole/inspector/XTreeRenderer.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java + src/share/classes/sun/tools/jconsole/resources/messages.properties + src/share/classes/sun/tools/jconsole/resources/messages_ja.properties + src/share/classes/sun/tools/jconsole/resources/messages_zh_CN.properties Changeset: f92325f12654 Author: jgish Date: 2012-05-24 11:11 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f92325f12654 7171474: Incorrect @see tags in java.lang.NumberFormatException javadoc Summary: update javadoc for NumberFormatException Reviewed-by: alanb ! src/share/classes/java/lang/NumberFormatException.java Changeset: 82134992123c Author: dcubed Date: 2012-05-25 08:20 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/82134992123c 7170449: Management is completely broken at least on Solaris 11 X86 Summary: Work around 'gobjcopy' failures on Solaris by adding temporary tools to add the '.gnu_debuglink' section and remove the SHF_ALLOC flag from "empty" section headers. Reviewed-by: sspitsyn, acorn ! make/common/Defs-solaris.gmk ! make/common/Defs.gmk ! make/common/Library.gmk ! make/common/Program.gmk ! make/tools/Makefile + make/tools/add_gnu_debuglink/Makefile + make/tools/add_gnu_debuglink/add_gnu_debuglink.c + make/tools/fix_empty_sec_hdr_flags/Makefile + make/tools/fix_empty_sec_hdr_flags/fix_empty_sec_hdr_flags.c Changeset: 7abdd3cb14ed Author: lana Date: 2012-05-25 16:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7abdd3cb14ed Merge Changeset: 60033ab79213 Author: littlee Date: 2012-05-29 09:42 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/60033ab79213 7172177: test/java/util/TimeZone/DstTzTest.java failing on all platforms Reviewed-by: alanb, okutsu - test/java/util/TimeZone/DstTzTest.java Changeset: eb441933f6fe Author: khazra Date: 2012-05-29 13:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/eb441933f6fe 7171591: getDefaultScopeID() in src/solaris/native/java/net/net_util_md.c should return a value Summary: Use CHECK_NULL_RETURN instead of CHECK_NULL Reviewed-by: alanb ! src/solaris/native/java/net/net_util_md.c Changeset: 41dcfdbf8f07 Author: ksrini Date: 2012-05-29 14:56 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/41dcfdbf8f07 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present Reviewed-by: jrose ! src/share/classes/com/sun/java/util/jar/pack/Attribute.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java ! src/share/classes/com/sun/java/util/jar/pack/Constants.java ! src/share/classes/com/sun/java/util/jar/pack/Package.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/PropMap.java ! src/share/classes/com/sun/java/util/jar/pack/Utils.java ! test/tools/pack200/PackageVersionTest.java Changeset: 2c773daa825d Author: mduigou Date: 2012-05-17 10:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2c773daa825d 6924259: Remove offset and count fields from java.lang.String Summary: Removes the use of shared character array buffers by String along with the two fields needed to support the use of shared buffers. Reviewed-by: alanb, mduigou, forax, briangoetz Contributed-by: brian.doherty at oracle.com ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/StringCoding.java Changeset: 43bd5ee0205e Author: mduigou Date: 2012-05-30 22:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/43bd5ee0205e 7126277: Alternative String hashing implementation Summary: All of the hashing based Map implementations: HashMap, Hashtable, LinkedHashMap, WeakHashMap and ConcurrentHashMap are modified to use an enhanced hashing algorithm for string keys when the capacity of the hash table has ever grown beyond 512 entries. The enhanced hashing implementation uses the murmur3 hashing algorithm along with random hash seeds and index masks. These enhancements mitigate cases where colliding String hash values could result in a performance bottleneck. Reviewed-by: alanb, forax, dl ! make/java/java/FILES_java.gmk ! src/share/classes/java/lang/String.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/LinkedHashMap.java ! src/share/classes/java/util/WeakHashMap.java ! src/share/classes/java/util/concurrent/ConcurrentHashMap.java + src/share/classes/sun/misc/Hashing.java ! test/java/util/Collection/BiggernYours.java ! test/java/util/Hashtable/HashCode.java ! test/java/util/Hashtable/SimpleSerialization.java + test/java/util/Map/Collisions.java ! test/java/util/Map/Get.java + test/sun/misc/Hashing.java Changeset: 0c6830e7241f Author: mullan Date: 2012-05-30 17:19 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0c6830e7241f 6854712: Revocation checking enhancements (JEP-124) 6637288: Add OCSP support to PKIX CertPathBuilder implementation 7126011: ReverseBuilder.getMatchingCACerts may throws NPE Reviewed-by: xuelei ! src/share/classes/java/security/cert/CertPathBuilder.java ! src/share/classes/java/security/cert/CertPathBuilderSpi.java + src/share/classes/java/security/cert/CertPathChecker.java ! src/share/classes/java/security/cert/CertPathValidator.java ! src/share/classes/java/security/cert/CertPathValidatorSpi.java ! src/share/classes/java/security/cert/PKIXCertPathChecker.java + src/share/classes/java/security/cert/PKIXRevocationChecker.java ! src/share/classes/java/security/cert/package.html ! src/share/classes/sun/security/provider/certpath/AdjacencyList.java ! src/share/classes/sun/security/provider/certpath/BasicChecker.java ! src/share/classes/sun/security/provider/certpath/BuildStep.java ! src/share/classes/sun/security/provider/certpath/Builder.java ! src/share/classes/sun/security/provider/certpath/CertStoreHelper.java ! src/share/classes/sun/security/provider/certpath/CollectionCertStore.java ! src/share/classes/sun/security/provider/certpath/ConstraintsChecker.java - src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java ! src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java ! src/share/classes/sun/security/provider/certpath/ForwardBuilder.java ! src/share/classes/sun/security/provider/certpath/ForwardState.java ! src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java ! src/share/classes/sun/security/provider/certpath/KeyChecker.java ! src/share/classes/sun/security/provider/certpath/OCSP.java - src/share/classes/sun/security/provider/certpath/OCSPChecker.java ! src/share/classes/sun/security/provider/certpath/OCSPRequest.java ! src/share/classes/sun/security/provider/certpath/OCSPResponse.java + src/share/classes/sun/security/provider/certpath/PKIX.java ! src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java ! src/share/classes/sun/security/provider/certpath/PKIXMasterCertPathValidator.java ! src/share/classes/sun/security/provider/certpath/PolicyChecker.java ! src/share/classes/sun/security/provider/certpath/PolicyNodeImpl.java ! src/share/classes/sun/security/provider/certpath/ReverseBuilder.java ! src/share/classes/sun/security/provider/certpath/ReverseState.java + src/share/classes/sun/security/provider/certpath/RevocationChecker.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java ! src/share/classes/sun/security/provider/certpath/URICertStore.java ! src/share/classes/sun/security/provider/certpath/Vertex.java ! src/share/classes/sun/security/provider/certpath/X509CertPath.java ! src/share/classes/sun/security/provider/certpath/X509CertificatePair.java ! src/share/classes/sun/security/x509/X509CRLEntryImpl.java + test/java/security/cert/PKIXRevocationChecker/UnitTest.java Changeset: 3192e73394fe Author: mullan Date: 2012-05-31 17:07 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3192e73394fe Merge - src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java ! src/share/classes/sun/security/provider/certpath/ForwardBuilder.java ! src/share/classes/sun/security/provider/certpath/ForwardState.java - src/share/classes/sun/security/provider/certpath/OCSPChecker.java ! src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java ! src/share/classes/sun/security/provider/certpath/ReverseBuilder.java ! src/share/classes/sun/security/provider/certpath/ReverseState.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java Changeset: 48dfc0df61d0 Author: mullan Date: 2012-05-31 17:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/48dfc0df61d0 Merge Changeset: 7baa22e6a6b3 Author: mduigou Date: 2012-06-01 00:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7baa22e6a6b3 7173432: Handle null key at HashMap resize Summary: If the key to be inserted into a HashMap is null and the table needs to be resized as part of the insertion then addEntry will try to recalculate the hash of a null key. This will fail with an NPE. Reviewed-by: darcy ! src/share/classes/java/util/HashMap.java + test/java/util/HashMap/NullKeyAtResize.java Changeset: 237e27c7ddc3 Author: littlee Date: 2012-06-04 16:30 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/237e27c7ddc3 7166055: Javadoc for WeakHashMap contains misleading advice Reviewed-by: dholmes, mduigou ! src/share/classes/java/util/WeakHashMap.java Changeset: a5bb0343f135 Author: weijun Date: 2012-06-04 18:06 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a5bb0343f135 7173036: test/com/sun/jdi/ConnectedVMs.java does not run as expected Reviewed-by: alanb ! test/com/sun/jdi/ConnectedVMs.java Changeset: 4573662cb28c Author: zhouyx Date: 2012-06-05 10:16 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4573662cb28c 7173044: MemoryMonitor hangs if getMax method in MemoryUsage object returns -1 Reviewed-by: dholmes, sspitsyn ! src/share/demo/management/MemoryMonitor/MemoryMonitor.java Changeset: 0678af55d3db Author: weijun Date: 2012-06-05 17:11 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0678af55d3db 7172701: KDC tests cleanup Reviewed-by: xuelei ! test/sun/security/krb5/auto/KDC.java ! test/sun/security/krb5/auto/OkAsDelegate.java ! test/sun/security/krb5/auto/OkAsDelegateXRealm.java - test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh - test/sun/security/krb5/auto/ok-as-delegate.sh Changeset: 5ea56641276c Author: alanb Date: 2012-06-05 12:47 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5ea56641276c 7173515: (se) Selector.open fails with OOME on Solaris when unlimited file descriptors Reviewed-by: coffeys, chegar - src/share/classes/sun/nio/ch/DevPollSelectorProvider.java ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java + src/solaris/classes/sun/nio/ch/DevPollSelectorProvider.java Changeset: d1f52390275b Author: sherman Date: 2012-06-05 12:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/d1f52390275b 6183404: Many eudc characters are incorrectly mapped in MS936 and GBK converter Summary: updated MS936 and GBK mappings Reviewed-by: alanb ! make/tools/CharsetMapping/GBK.map ! make/tools/CharsetMapping/MS936.map Changeset: 91d05db156d3 Author: lana Date: 2012-06-05 17:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/91d05db156d3 Merge Changeset: b6eb10d6932f Author: weijun Date: 2012-06-06 10:05 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b6eb10d6932f 7174351: test/sun/security/tools/keytool/standard.sh failed after new Hashtable Reviewed-by: xuelei ! test/sun/security/tools/keytool/KeyToolTest.java Changeset: 119c9a306a3d Author: alanb Date: 2012-06-06 17:59 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/119c9a306a3d 7172826: (se) Selector based on the Solaris event port mechanism Reviewed-by: coffeys, chegar ! make/java/nio/Makefile ! make/java/nio/mapfile-linux ! make/java/nio/mapfile-solaris ! src/share/classes/sun/nio/ch/IOUtil.java ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java + src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java + src/solaris/classes/sun/nio/ch/EventPortSelectorProvider.java + src/solaris/classes/sun/nio/ch/EventPortWrapper.java ! src/solaris/classes/sun/nio/ch/SolarisEventPort.java ! src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c ! src/solaris/native/sun/nio/ch/EPollArrayWrapper.c ! src/solaris/native/sun/nio/ch/IOUtil.c ! src/solaris/native/sun/nio/ch/SolarisEventPort.c ! test/java/nio/channels/Selector/lots_of_updates.sh ! test/java/nio/channels/SocketChannel/Open.sh ! test/sun/nio/ch/SelProvider.java Changeset: af313ded4ffb Author: khazra Date: 2012-06-06 11:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/af313ded4ffb 7173645: (props) System.getProperty("os.name") should return "Windows Server 2012" for Windows Server 2012 Summary: Enable Windows Server 2012 to be recognized as "os.name" Reviewed-by: alanb, dholmes, chegar ! src/windows/native/java/lang/java_props_md.c Changeset: f8e72d7ff37d Author: xuelei Date: 2012-06-06 18:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f8e72d7ff37d 7174244: NPE in Krb5ProxyImpl.getServerKeys() Reviewed-by: weijun ! src/share/classes/sun/security/ssl/SSLContextImpl.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java ! src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java + test/sun/security/ssl/sanity/ciphersuites/CipherSuitesInOrder.java Changeset: 713b10821c3d Author: xuelei Date: 2012-06-06 18:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/713b10821c3d 7172149: ArrayIndexOutOfBoundsException from Signature.verify Summary: take care of integer addition overflow Reviewed-by: xuelei, wetmore Contributed-by: Jonathan Lu ! src/share/classes/java/security/Signature.java + test/java/security/Signature/VerifyRangeCheckOverflow.java Changeset: 181175887d24 Author: jonas Date: 2012-06-06 13:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/181175887d24 7174861: all/OPT jdk build on Solaris with FDS enabled sets wrong options Summary: Use CFLAGS_COMMON instead of CC_OPT and CXXFLAGS_COMMON instead of CXX_OPT for setting FDS options. FDS should also set OPTIMIZATION_LEVEL. Reviewed-by: ihse, dholmes, ohair, dcubed ! make/common/Defs-solaris.gmk Changeset: 7543b6db3026 Author: dcubed Date: 2012-06-06 19:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7543b6db3026 Merge Changeset: 636f9486fde7 Author: alanb Date: 2012-06-07 10:31 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/636f9486fde7 7175011: ProblemList.txt updates (6/2012) Reviewed-by: mduigou, chegar ! test/ProblemList.txt Changeset: 757a5129fad7 Author: alanb Date: 2012-06-07 12:31 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/757a5129fad7 7164256: EnumMap clone doesn't clear the entrySet keeping a reference to the original Map Reviewed-by: alanb, chegar, forax, mduigou Contributed-by: dbelfer at gmail.com ! src/share/classes/java/util/EnumMap.java + test/java/util/EnumMap/ProperEntrySetOnClone.java Changeset: c89018e3f3b6 Author: nloodin Date: 2012-06-05 13:43 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c89018e3f3b6 7163471: Licensee source bundle failed around 7u4 Reviewed-by: dholmes, sla, brutisso, erikj ! make/com/oracle/Makefile Changeset: 9b814b887240 Author: weijun Date: 2012-06-07 22:33 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9b814b887240 7175041: HttpTimestamper should accept https URI Reviewed-by: mullan ! src/share/classes/sun/security/timestamp/HttpTimestamper.java Changeset: 23f8be788c77 Author: alanb Date: 2012-06-07 18:42 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/23f8be788c77 7174723: TEST_BUG: java/lang/ProcessBuilder/Basic.java failing [win] Reviewed-by: mduigou ! test/java/lang/ProcessBuilder/Basic.java Changeset: fc0e508b713f Author: mduigou Date: 2012-06-07 01:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fc0e508b713f 7174736: JCK test api/java_util/HashMap/index_EntrySet failing Summary: Corrects a problem with HashMap.removeEntry() that caused a JCK test to fail Reviewed-by: mduigou Contributed-by: alan.bateman at oracle.com ! src/share/classes/java/util/HashMap.java Changeset: abe465d6a9b8 Author: chegar Date: 2012-06-08 09:55 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/abe465d6a9b8 7175413: Typo in comments of JVM_SupportsCX8 in jvm.h Reviewed-by: chegar Contributed-by: Krystal Mok ! src/share/javavm/export/jvm.h Changeset: 8305ddc88a5a Author: lancea Date: 2012-06-07 20:11 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8305ddc88a5a 7172551: Remove Native calls from DriverManager for jigsaw Reviewed-by: alanb, chegar, darcy, mchung ! make/java/java/FILES_c.gmk ! make/java/java/mapfile-vers ! makefiles/java/java/FILES_c.gmk ! makefiles/java/java/mapfile-vers ! src/share/classes/java/sql/DriverManager.java - src/share/native/java/sql/DriverManager.c Changeset: 7cb7bfae9d3a Author: lancea Date: 2012-06-08 09:22 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7cb7bfae9d3a Merge Changeset: 82c41d3065e2 Author: sla Date: 2012-06-07 15:28 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/82c41d3065e2 7165257: Add JFR tests to the JDK code base Reviewed-by: ohair, dholmes, nloodin, mgronlun ! make/jprt.properties ! test/Makefile Changeset: 961807959c5f Author: sla Date: 2012-06-08 05:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/961807959c5f Merge Changeset: a7895dc61088 Author: robm Date: 2012-06-08 18:23 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/a7895dc61088 7161881: (dc) DatagramChannel.bind(null) fails if IPv4 socket and running with preferIPv6Addresses=true Reviewed-by: alanb, chegar ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java + test/java/nio/channels/DatagramChannel/BindNull.java Changeset: cd195e5d2c07 Author: lana Date: 2012-06-08 12:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cd195e5d2c07 Merge ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java - src/share/classes/sun/nio/ch/DevPollSelectorProvider.java - src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java - src/share/classes/sun/security/provider/certpath/OCSPChecker.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java - src/share/native/java/sql/DriverManager.c - test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh - test/sun/security/krb5/auto/ok-as-delegate.sh Changeset: 898ce0cf7476 Author: ohair Date: 2012-06-07 20:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/898ce0cf7476 Merge ! src/macosx/classes/sun/lwawt/LWTextFieldPeer.java ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java Changeset: 1953cf522107 Author: erikj Date: 2012-06-07 20:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1953cf522107 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! 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/GendataHtml32dtd.gmk + makefiles/GendataTimeZone.gmk ! makefiles/GenerateClasses.gmk ! makefiles/GenerateData.gmk ! makefiles/GenerateJavaSources.gmk + makefiles/GensrcBuffer.gmk ! makefiles/GensrcCharacterData.gmk + makefiles/GensrcCharsetCoder.gmk + makefiles/GensrcCharsetMapping.gmk + makefiles/GensrcExceptions.gmk + makefiles/GensrcIcons.gmk ! makefiles/GensrcJDWP.gmk ! makefiles/GensrcLocaleDataMetaInfo.gmk ! makefiles/GensrcMisc.gmk ! makefiles/GensrcProperties.gmk + makefiles/GensrcSwing.gmk + makefiles/GensrcX11Wrappers.gmk ! makefiles/Images.gmk ! makefiles/LegacyMakefiles.gmk ! makefiles/Makefile + makefiles/OldImages.gmk ! makefiles/Setup.gmk ! makefiles/Tools.gmk - makefiles/altclasses/Makefile - makefiles/apple/Makefile - makefiles/apple/applescript/Makefile - makefiles/com/Makefile - makefiles/com/apple/Makefile - makefiles/com/apple/osx/Makefile - makefiles/com/apple/osxui/Makefile - makefiles/com/oracle/Makefile - makefiles/com/oracle/jfr/Makefile - makefiles/com/oracle/security/ucrypto/FILES_c.gmk - makefiles/com/oracle/security/ucrypto/Makefile - makefiles/com/oracle/security/ucrypto/mapfile-vers - makefiles/com/sun/Makefile ! makefiles/common/Defs-macosx.gmk ! makefiles/common/Release-macosx.gmk ! makefiles/common/Release.gmk - makefiles/common/shared/Defs-utils.gmk ! makefiles/common/shared/Defs.gmk ! makefiles/docs/CORE_PKGS.gmk ! makefiles/java/Makefile - makefiles/java/fdlibm/FILES_c.gmk - makefiles/java/fdlibm/Makefile - makefiles/java/instrument/Makefile - makefiles/java/instrument/mapfile-vers - makefiles/java/java/Exportedfiles.gmk - makefiles/java/java/FILES_c.gmk - makefiles/java/java/FILES_java.gmk - makefiles/java/java/Makefile - makefiles/java/java/localelist.sh - makefiles/java/java/mapfile-vers - makefiles/java/java/reflect/Makefile - makefiles/java/java/reorder-i586 - makefiles/java/java/reorder-sparc - makefiles/java/java/reorder-sparcv9 - makefiles/java/java_crw_demo/Makefile - makefiles/java/java_crw_demo/mapfile-vers - makefiles/java/java_hprof_demo/Makefile - makefiles/java/java_hprof_demo/mapfile-vers - makefiles/java/jexec/Makefile - makefiles/java/jli/Makefile - makefiles/java/jli/mapfile-vers - makefiles/java/jobjc/Makefile - makefiles/java/jvm/Makefile - makefiles/java/main/Makefile - makefiles/java/main/java/Makefile - makefiles/java/main/java/mapfile-amd64 - makefiles/java/main/java/mapfile-i586 - makefiles/java/main/java/mapfile-sparc - makefiles/java/main/java/mapfile-sparcv9 - makefiles/java/main/javaw/Makefile - makefiles/java/management/Exportedfiles.gmk - makefiles/java/management/FILES_c.gmk - makefiles/java/management/Makefile - makefiles/java/management/mapfile-vers - makefiles/java/net/FILES_c.gmk - makefiles/java/net/Makefile - makefiles/java/net/mapfile-vers - makefiles/java/nio/Exportedfiles.gmk - makefiles/java/nio/FILES_c.gmk - makefiles/java/nio/FILES_java.gmk - makefiles/java/nio/Makefile - makefiles/java/nio/addNotices.sh - makefiles/java/nio/genBuffer.sh - makefiles/java/nio/genCharsetProvider.sh - makefiles/java/nio/genCoder.sh - makefiles/java/nio/genExceptions.sh - makefiles/java/nio/mapfile-bsd - makefiles/java/nio/mapfile-linux - makefiles/java/nio/mapfile-solaris - makefiles/java/nio/reorder-i586 - makefiles/java/nio/reorder-sparc - makefiles/java/nio/reorder-sparcv9 - makefiles/java/npt/Makefile - makefiles/java/npt/mapfile-vers ! makefiles/java/redist/Makefile - makefiles/java/redist/fonts/Makefile - makefiles/java/security/Makefile - makefiles/java/sun_nio/FILES_java.gmk - makefiles/java/sun_nio/Makefile - makefiles/java/util/FILES_java.gmk - makefiles/java/util/FILES_properties.gmk - makefiles/java/util/Makefile - makefiles/java/verify/Makefile - makefiles/java/verify/mapfile-vers - makefiles/java/verify/reorder-i586 - makefiles/java/verify/reorder-sparc - makefiles/java/verify/reorder-sparcv9 - makefiles/javax/Makefile - makefiles/javax/imageio/Makefile - makefiles/javax/management/Makefile - makefiles/javax/sound/FILES_c.gmk - makefiles/javax/sound/Makefile - makefiles/javax/sound/SoundDefs.gmk - makefiles/javax/sound/jsoundalsa/Makefile - makefiles/javax/sound/jsoundalsa/mapfile-vers - makefiles/javax/sound/jsoundds/Makefile - makefiles/javax/sound/mapfile-vers - makefiles/javax/sql/Makefile - makefiles/javax/swing/FILES.gmk - makefiles/javax/swing/Makefile - makefiles/javax/swing/beaninfo/FILES.gmk - makefiles/javax/swing/beaninfo/Makefile - makefiles/javax/swing/beaninfo/SwingBeans.gmk - makefiles/javax/swing/beaninfo/manifest - makefiles/javax/swing/html32dtd/Makefile - makefiles/javax/swing/plaf/FILES.gmk - makefiles/javax/swing/plaf/Makefile + makefiles/mapfiles/libawt/mapfile-mawt-vers + makefiles/mapfiles/libawt/mapfile-vers + makefiles/mapfiles/libawt/mapfile-vers-linux + makefiles/mapfiles/libawt_headless/mapfile-vers + makefiles/mapfiles/libawt_headless/reorder-i586 + makefiles/mapfiles/libawt_headless/reorder-sparc + makefiles/mapfiles/libawt_headless/reorder-sparcv9 + makefiles/mapfiles/libawt_xawt/mapfile-vers + makefiles/mapfiles/libdcpr/mapfile-vers + makefiles/mapfiles/libhprof/mapfile-vers + makefiles/mapfiles/libinstrument/mapfile-vers + makefiles/mapfiles/libj2gss/mapfile-vers + makefiles/mapfiles/libj2pcsc/mapfile-vers + makefiles/mapfiles/libj2pkcs11/mapfile-vers + makefiles/mapfiles/libj2ucrypto/mapfile-vers + makefiles/mapfiles/libjava/mapfile-vers + makefiles/mapfiles/libjava/reorder-i586 + makefiles/mapfiles/libjava/reorder-sparc + makefiles/mapfiles/libjava/reorder-sparcv9 + makefiles/mapfiles/libjava_crw_demo/mapfile-vers + makefiles/mapfiles/libjdga/mapfile-vers + makefiles/mapfiles/libjfr/mapfile-vers + makefiles/mapfiles/libjli/mapfile-vers ! makefiles/mapfiles/libjpeg/reorder-i586 ! makefiles/mapfiles/libjpeg/reorder-sparc ! makefiles/mapfiles/libjpeg/reorder-sparcv9 + makefiles/mapfiles/libjsound/mapfile-vers + makefiles/mapfiles/libjsoundalsa/mapfile-vers + makefiles/mapfiles/libkcms/mapfile-vers + makefiles/mapfiles/libmanagement/mapfile-vers + makefiles/mapfiles/libmlib_image/mapfile-vers + makefiles/mapfiles/libnet/mapfile-vers + makefiles/mapfiles/libnio/mapfile-bsd + makefiles/mapfiles/libnio/mapfile-linux + makefiles/mapfiles/libnio/mapfile-solaris + makefiles/mapfiles/libnio/reorder-i586 + makefiles/mapfiles/libnio/reorder-sparc + makefiles/mapfiles/libnio/reorder-sparcv9 + makefiles/mapfiles/libnpt/mapfile-vers + makefiles/mapfiles/libsplashscreen/mapfile-vers + makefiles/mapfiles/libsunec/mapfile-vers ! makefiles/mapfiles/libverify/reorder-i586 ! makefiles/mapfiles/libverify/reorder-sparc ! makefiles/mapfiles/libverify/reorder-sparcv9 ! makefiles/mapfiles/libzip/reorder-i586 ! makefiles/mapfiles/libzip/reorder-sparc ! makefiles/mapfiles/libzip/reorder-sparcv9 + makefiles/scripts/addNotices.sh + makefiles/scripts/genCharsetProvider.sh + makefiles/scripts/genExceptions.sh + makefiles/scripts/localelist.sh - makefiles/sun/Makefile - makefiles/sun/awt/CondenseRules.awk - makefiles/sun/awt/Depend.mak - makefiles/sun/awt/Depend.sed - makefiles/sun/awt/FILES_c_macosx.gmk - makefiles/sun/awt/FILES_c_unix.gmk - makefiles/sun/awt/FILES_c_windows.gmk - makefiles/sun/awt/FILES_export_macosx.gmk - makefiles/sun/awt/FILES_export_unix.gmk - makefiles/sun/awt/FILES_export_windows.gmk - makefiles/sun/awt/Makefile - makefiles/sun/awt/README - makefiles/sun/awt/make.depend - makefiles/sun/awt/mapfile-mawt-vers - makefiles/sun/awt/mapfile-vers - makefiles/sun/awt/mapfile-vers-linux - makefiles/sun/awt/mawt.gmk - makefiles/sun/cmm/Makefile - makefiles/sun/cmm/kcms/FILES_c_unix.gmk - makefiles/sun/cmm/kcms/FILES_c_windows.gmk - makefiles/sun/cmm/kcms/Makefile - makefiles/sun/cmm/kcms/mapfile-vers - makefiles/sun/dcpr/FILES_c.gmk - makefiles/sun/dcpr/Makefile - makefiles/sun/dcpr/mapfile-vers - makefiles/sun/headless/Makefile - makefiles/sun/headless/mapfile-vers - makefiles/sun/headless/reorder-i586 - makefiles/sun/headless/reorder-sparc - makefiles/sun/headless/reorder-sparcv9 - makefiles/sun/image/Makefile - makefiles/sun/image/generic/FILES_c.gmk - makefiles/sun/image/generic/Makefile - makefiles/sun/image/generic/mapfile-vers - makefiles/sun/image/vis/FILES_c.gmk - makefiles/sun/image/vis/Makefile - makefiles/sun/javazic/Makefile - makefiles/sun/jdbc/Makefile - makefiles/sun/jdga/Makefile - makefiles/sun/jdga/mapfile-vers - makefiles/sun/lwawt/FILES_c_macosx.gmk - makefiles/sun/lwawt/FILES_export_macosx.gmk - makefiles/sun/lwawt/Makefile - makefiles/sun/nio/Makefile - makefiles/sun/nio/cs/FILES_java.gmk - makefiles/sun/nio/cs/Makefile - makefiles/sun/org/Makefile - makefiles/sun/org/mozilla/Makefile - makefiles/sun/org/mozilla/javascript/Makefile - makefiles/sun/osxapp/Makefile - makefiles/sun/security/Makefile - makefiles/sun/security/ec/FILES_c.gmk - makefiles/sun/security/ec/mapfile-vers - makefiles/sun/security/jgss/Makefile - makefiles/sun/security/jgss/wrapper/FILES_c.gmk - makefiles/sun/security/jgss/wrapper/Makefile - makefiles/sun/security/jgss/wrapper/mapfile-vers - makefiles/sun/security/krb5/FILES_c_windows.gmk - makefiles/sun/security/krb5/Makefile - makefiles/sun/security/mscapi/FILES_cpp.gmk - makefiles/sun/security/mscapi/Makefile - makefiles/sun/security/other/Makefile - makefiles/sun/security/smartcardio/FILES_c.gmk - makefiles/sun/security/smartcardio/Makefile - makefiles/sun/security/smartcardio/mapfile-vers - makefiles/sun/security/tools/Makefile - makefiles/sun/security/util/Makefile - makefiles/sun/splashscreen/FILES_c.gmk - makefiles/sun/splashscreen/Makefile - makefiles/sun/splashscreen/mapfile-vers - makefiles/sun/xawt/FILES_c_unix.gmk - makefiles/sun/xawt/FILES_export_unix.gmk - makefiles/sun/xawt/Makefile - makefiles/sun/xawt/mapfile-vers Changeset: e00f450a3c5f Author: erikj Date: 2012-06-11 09:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e00f450a3c5f 7175966: Fix windows build issues for build-infra project Reviewed-by: ohair ! makefiles/CompileJavaClasses.gmk ! makefiles/java/redist/sajdi/Makefile Changeset: b3246687c369 Author: katleman Date: 2012-06-13 16:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b3246687c369 Merge - makefiles/altclasses/Makefile - makefiles/apple/Makefile - makefiles/apple/applescript/Makefile - makefiles/com/Makefile - makefiles/com/apple/Makefile - makefiles/com/apple/osx/Makefile - makefiles/com/apple/osxui/Makefile - makefiles/com/oracle/Makefile - makefiles/com/oracle/jfr/Makefile - makefiles/com/oracle/security/ucrypto/FILES_c.gmk - makefiles/com/oracle/security/ucrypto/Makefile - makefiles/com/oracle/security/ucrypto/mapfile-vers - makefiles/com/sun/Makefile - makefiles/common/shared/Defs-utils.gmk - makefiles/java/fdlibm/FILES_c.gmk - makefiles/java/fdlibm/Makefile - makefiles/java/instrument/Makefile - makefiles/java/instrument/mapfile-vers - makefiles/java/java/Exportedfiles.gmk - makefiles/java/java/FILES_c.gmk - makefiles/java/java/FILES_java.gmk - makefiles/java/java/Makefile - makefiles/java/java/localelist.sh - makefiles/java/java/mapfile-vers - makefiles/java/java/reflect/Makefile - makefiles/java/java/reorder-i586 - makefiles/java/java/reorder-sparc - makefiles/java/java/reorder-sparcv9 - makefiles/java/java_crw_demo/Makefile - makefiles/java/java_crw_demo/mapfile-vers - makefiles/java/java_hprof_demo/Makefile - makefiles/java/java_hprof_demo/mapfile-vers - makefiles/java/jexec/Makefile - makefiles/java/jli/Makefile - makefiles/java/jli/mapfile-vers - makefiles/java/jobjc/Makefile - makefiles/java/jvm/Makefile - makefiles/java/main/Makefile - makefiles/java/main/java/Makefile - makefiles/java/main/java/mapfile-amd64 - makefiles/java/main/java/mapfile-i586 - makefiles/java/main/java/mapfile-sparc - makefiles/java/main/java/mapfile-sparcv9 - makefiles/java/main/javaw/Makefile - makefiles/java/management/Exportedfiles.gmk - makefiles/java/management/FILES_c.gmk - makefiles/java/management/Makefile - makefiles/java/management/mapfile-vers - makefiles/java/net/FILES_c.gmk - makefiles/java/net/Makefile - makefiles/java/net/mapfile-vers - makefiles/java/nio/Exportedfiles.gmk - makefiles/java/nio/FILES_c.gmk - makefiles/java/nio/FILES_java.gmk - makefiles/java/nio/Makefile - makefiles/java/nio/addNotices.sh - makefiles/java/nio/genBuffer.sh - makefiles/java/nio/genCharsetProvider.sh - makefiles/java/nio/genCoder.sh - makefiles/java/nio/genExceptions.sh - makefiles/java/nio/mapfile-bsd - makefiles/java/nio/mapfile-linux - makefiles/java/nio/mapfile-solaris - makefiles/java/nio/reorder-i586 - makefiles/java/nio/reorder-sparc - makefiles/java/nio/reorder-sparcv9 - makefiles/java/npt/Makefile - makefiles/java/npt/mapfile-vers - makefiles/java/redist/fonts/Makefile - makefiles/java/security/Makefile - makefiles/java/sun_nio/FILES_java.gmk - makefiles/java/sun_nio/Makefile - makefiles/java/util/FILES_java.gmk - makefiles/java/util/FILES_properties.gmk - makefiles/java/util/Makefile - makefiles/java/verify/Makefile - makefiles/java/verify/mapfile-vers - makefiles/java/verify/reorder-i586 - makefiles/java/verify/reorder-sparc - makefiles/java/verify/reorder-sparcv9 - makefiles/javax/Makefile - makefiles/javax/imageio/Makefile - makefiles/javax/management/Makefile - makefiles/javax/sound/FILES_c.gmk - makefiles/javax/sound/Makefile - makefiles/javax/sound/SoundDefs.gmk - makefiles/javax/sound/jsoundalsa/Makefile - makefiles/javax/sound/jsoundalsa/mapfile-vers - makefiles/javax/sound/jsoundds/Makefile - makefiles/javax/sound/mapfile-vers - makefiles/javax/sql/Makefile - makefiles/javax/swing/FILES.gmk - makefiles/javax/swing/Makefile - makefiles/javax/swing/beaninfo/FILES.gmk - makefiles/javax/swing/beaninfo/Makefile - makefiles/javax/swing/beaninfo/SwingBeans.gmk - makefiles/javax/swing/beaninfo/manifest - makefiles/javax/swing/html32dtd/Makefile - makefiles/javax/swing/plaf/FILES.gmk - makefiles/javax/swing/plaf/Makefile - makefiles/sun/Makefile - makefiles/sun/awt/CondenseRules.awk - makefiles/sun/awt/Depend.mak - makefiles/sun/awt/Depend.sed - makefiles/sun/awt/FILES_c_macosx.gmk - makefiles/sun/awt/FILES_c_unix.gmk - makefiles/sun/awt/FILES_c_windows.gmk - makefiles/sun/awt/FILES_export_macosx.gmk - makefiles/sun/awt/FILES_export_unix.gmk - makefiles/sun/awt/FILES_export_windows.gmk - makefiles/sun/awt/Makefile - makefiles/sun/awt/README - makefiles/sun/awt/make.depend - makefiles/sun/awt/mapfile-mawt-vers - makefiles/sun/awt/mapfile-vers - makefiles/sun/awt/mapfile-vers-linux - makefiles/sun/awt/mawt.gmk - makefiles/sun/cmm/Makefile - makefiles/sun/cmm/kcms/FILES_c_unix.gmk - makefiles/sun/cmm/kcms/FILES_c_windows.gmk - makefiles/sun/cmm/kcms/Makefile - makefiles/sun/cmm/kcms/mapfile-vers - makefiles/sun/dcpr/FILES_c.gmk - makefiles/sun/dcpr/Makefile - makefiles/sun/dcpr/mapfile-vers - makefiles/sun/headless/Makefile - makefiles/sun/headless/mapfile-vers - makefiles/sun/headless/reorder-i586 - makefiles/sun/headless/reorder-sparc - makefiles/sun/headless/reorder-sparcv9 - makefiles/sun/image/Makefile - makefiles/sun/image/generic/FILES_c.gmk - makefiles/sun/image/generic/Makefile - makefiles/sun/image/generic/mapfile-vers - makefiles/sun/image/vis/FILES_c.gmk - makefiles/sun/image/vis/Makefile - makefiles/sun/javazic/Makefile - makefiles/sun/jdbc/Makefile - makefiles/sun/jdga/Makefile - makefiles/sun/jdga/mapfile-vers - makefiles/sun/lwawt/FILES_c_macosx.gmk - makefiles/sun/lwawt/FILES_export_macosx.gmk - makefiles/sun/lwawt/Makefile - makefiles/sun/nio/Makefile - makefiles/sun/nio/cs/FILES_java.gmk - makefiles/sun/nio/cs/Makefile - makefiles/sun/org/Makefile - makefiles/sun/org/mozilla/Makefile - makefiles/sun/org/mozilla/javascript/Makefile - makefiles/sun/osxapp/Makefile - makefiles/sun/security/Makefile - makefiles/sun/security/ec/FILES_c.gmk - makefiles/sun/security/ec/mapfile-vers - makefiles/sun/security/jgss/Makefile - makefiles/sun/security/jgss/wrapper/FILES_c.gmk - makefiles/sun/security/jgss/wrapper/Makefile - makefiles/sun/security/jgss/wrapper/mapfile-vers - makefiles/sun/security/krb5/FILES_c_windows.gmk - makefiles/sun/security/krb5/Makefile - makefiles/sun/security/mscapi/FILES_cpp.gmk - makefiles/sun/security/mscapi/Makefile - makefiles/sun/security/other/Makefile - makefiles/sun/security/smartcardio/FILES_c.gmk - makefiles/sun/security/smartcardio/Makefile - makefiles/sun/security/smartcardio/mapfile-vers - makefiles/sun/security/tools/Makefile - makefiles/sun/security/util/Makefile - makefiles/sun/splashscreen/FILES_c.gmk - makefiles/sun/splashscreen/Makefile - makefiles/sun/splashscreen/mapfile-vers - makefiles/sun/xawt/FILES_c_unix.gmk - makefiles/sun/xawt/FILES_export_unix.gmk - makefiles/sun/xawt/Makefile - makefiles/sun/xawt/mapfile-vers Changeset: db471a7af031 Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/db471a7af031 Added tag jdk8-b43 for changeset b3246687c369 ! .hgtags From john.coomes at oracle.com Fri Jun 15 02:21:09 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 15 Jun 2012 09:21:09 +0000 Subject: hg: hsx/hotspot-comp/langtools: 10 new changesets Message-ID: <20120615092141.DC2E347949@hg.openjdk.java.net> Changeset: f5dbd6895994 Author: jjh Date: 2012-05-21 16:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/f5dbd6895994 7157798: Add 6 test scenarios for testing inheritance of multiple same-name methods from mulitple interfaces Reviewed-by: mcimadamore Contributed-by: sue.wei at oracle.com + test/tools/javac/generics/rawOverride/7157798/Test1.java + test/tools/javac/generics/rawOverride/7157798/Test2.java + test/tools/javac/generics/rawOverride/7157798/Test3.java + test/tools/javac/generics/rawOverride/7157798/Test3.out + test/tools/javac/generics/rawOverride/7157798/Test4.java + test/tools/javac/generics/rawOverride/7157798/Test4.out Changeset: f43aded513e7 Author: lana Date: 2012-05-25 16:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/f43aded513e7 Merge Changeset: af6a4c24f4e3 Author: mcimadamore Date: 2012-05-31 17:42 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/af6a4c24f4e3 7166552: Inference: cleanup usage of Type.ForAll Summary: Remove hack to callback into type-inference from assignment context Reviewed-by: dlsmith, jjg ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/tools/javac/6758789/T6758789b.out ! test/tools/javac/diags/examples.not-yet.txt ! test/tools/javac/diags/examples/ApplicableMethodFound1.java ! test/tools/javac/diags/examples/CantApplyDiamond1.java - test/tools/javac/diags/examples/FullInstSig.java ! test/tools/javac/diags/examples/IncompatibleTypes1.java ! test/tools/javac/diags/examples/InferredDoNotConformToLower.java - test/tools/javac/diags/examples/InvalidInferredTypes.java + test/tools/javac/diags/examples/NoUniqueMaximalInstance.java - test/tools/javac/diags/examples/UndeterminedType1.java ! test/tools/javac/diags/examples/WhereFreshTvar.java ! test/tools/javac/generics/7015430/T7015430.out ! test/tools/javac/generics/7151802/T7151802.out ! test/tools/javac/generics/inference/6315770/T6315770.out ! test/tools/javac/generics/inference/6638712/T6638712b.out ! test/tools/javac/generics/inference/6638712/T6638712e.out ! test/tools/javac/generics/inference/6650759/T6650759m.out ! test/tools/javac/generics/inference/7154127/T7154127.out ! test/tools/javac/varargs/6313164/T6313164.out Changeset: 37dc15c68760 Author: mcimadamore Date: 2012-05-31 17:44 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/37dc15c68760 7160084: javac fails to compile an apparently valid class/interface combination Summary: javac generates wrong syntetized trees for nested enum constants Reviewed-by: dlsmith, jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java + test/tools/javac/enum/7160084/T7160084a.java + test/tools/javac/enum/7160084/T7160084b.java Changeset: 844478076c25 Author: jjh Date: 2012-05-31 15:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/844478076c25 7159016: Static import of member in processor-generated class fails in JDK 7 Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java + test/tools/javac/T7159016.java Changeset: 252f8b7473e1 Author: lana Date: 2012-06-05 17:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/252f8b7473e1 Merge Changeset: e3d0a8fe4318 Author: lana Date: 2012-06-08 12:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/e3d0a8fe4318 Merge - test/tools/javac/diags/examples/FullInstSig.java - test/tools/javac/diags/examples/InvalidInferredTypes.java - test/tools/javac/diags/examples/UndeterminedType1.java Changeset: ac29cc95b5c5 Author: erikj Date: 2012-06-07 20:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/ac29cc95b5c5 7170079: Adjustments to build-infra makefiles Reviewed-by: ohair, ohrstrom, ihse, jonas Contributed-by: jonas , erikj , ihse , tgranat , ykantser ! makefiles/Makefile Changeset: f8c64d835b28 Author: katleman Date: 2012-06-13 16:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/f8c64d835b28 Merge Changeset: 59cbead12ff4 Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/59cbead12ff4 Added tag jdk8-b43 for changeset f8c64d835b28 ! .hgtags From roland.westrelin at oracle.com Fri Jun 15 02:57:47 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 15 Jun 2012 11:57:47 +0200 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <4FDA1C7A.1070108@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA1C7A.1070108@oracle.com> Message-ID: > Thank you, Roland, for fixing this Thanks for the review. > Please, add a comment to your change since it is different from other platforms. We may want to add the same check on other platforms to skip unneeded additional checks. But I will let Runtime group to handle that. Would this comment be ok? // We test if stub is already set (by the stack overflow code // above) so it is not overwritten by the code that follows. This // check is not required on other platforms, because on other // platform we check for SIGSEGV only or SIGBUS only, where here // we have to check for both SIGSEGV and SIGBUS. Roland. From roland.westrelin at oracle.com Fri Jun 15 03:09:34 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 15 Jun 2012 12:09:34 +0200 Subject: RFR(S): 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework In-Reply-To: <30ACF4C6-8F75-492F-9D52-E869F2A23D60@oracle.com> References: <00B27318-0137-4DB4-8450-7E405156F150@oracle.com> <4FD8B09A.5090703@oracle.com> <879E228C-70BF-4268-BFAD-2EE0BDD1F2DF@oracle.com> <30ACF4C6-8F75-492F-9D52-E869F2A23D60@oracle.com> Message-ID: <549BEA8B-E5A9-4071-975D-0C1A76B1FB37@oracle.com> Thanks Chris and Vladimir. Roland. From roland.westrelin at oracle.com Fri Jun 15 03:20:54 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 15 Jun 2012 12:20:54 +0200 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <4FDA42BB.7040606@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA42BB.7040606@oracle.com> Message-ID: <95EE2087-CD0E-440D-99FD-C5DE156789BB@oracle.com> Hi Dan, Thanks for taking a look at this. See below. > Thanks for tackling such nasty code... > Just trying to understand this one... These checks: > > 476 if (sig == SIGSEGV || sig == SIGBUS) { > 480 if (addr < thread->stack_base() && > 481 addr >= thread->stack_base() - thread->stack_size()) { > 483 if (thread->in_stack_yellow_zone(addr)) { > 485 if (thread->thread_state() == _thread_in_Java) { > > tell us that we took a SIGSEGV or SIGBUS while running Java code > in the yellow zone of our stack... so stack overflow... which gets > us to this setting of "stub": > > 488 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); > > > This line: > > 519 if (thread->thread_state() == _thread_in_Java) { > > gets us into another block of "stub" setting code, but it > currently doesn't care that "stub" was already set. That's > the code you're trying to fix with this new line: > > 519 if (thread->thread_state() == _thread_in_Java && stub == NULL) { Exactly. > Just to be complete, I'm trying to understand which of the > many places that set "stub" is clobbering the existing value. This is the code that clobbers the stub value: 530 } else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { 534 // BugId 4454115: A read from a MappedByteBuffer can fault 535 // here if the underlying file has been truncated. 536 // Do not crash the VM in such a case. 537 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); 538 nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; 539 if (nm != NULL && nm->has_unsafe_access()) { 540 stub = StubRoutines::handler_for_unsafe_access(); 541 } 542 } si_addr is an address on the stack so it's not in the first page and MacroAssembler::needs_explicit_null_check() returns true. The method where the SIGBUS due to the stack overflow happens is a compiled method and we're unlucky because it has some unsafe accesses and the SIGBUS is mistaken for an unsafe access that has gone wrong. Roland. From vladimir.kozlov at oracle.com Fri Jun 15 03:29:06 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 15 Jun 2012 10:29:06 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7119644: Increase superword's vector size up to 256 bits Message-ID: <20120615102915.77DC94795A@hg.openjdk.java.net> Changeset: 8c92982cbbc4 Author: kvn Date: 2012-06-15 01:25 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8c92982cbbc4 7119644: Increase superword's vector size up to 256 bits Summary: Increase vector size up to 256-bits for YMM AVX registers on x86. Reviewed-by: never, twisti, roland ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/register_x86.cpp ! src/cpu/x86/vm/register_x86.hpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/x86/vm/vmreg_x86.cpp ! src/cpu/x86/vm/vmreg_x86.inline.hpp ! src/cpu/x86/vm/x86.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/adlc/adlparse.cpp ! src/share/vm/adlc/archDesc.cpp ! src/share/vm/adlc/forms.cpp ! src/share/vm/adlc/forms.hpp ! src/share/vm/adlc/formsopt.cpp ! src/share/vm/adlc/formssel.cpp ! src/share/vm/adlc/formssel.hpp ! src/share/vm/adlc/main.cpp ! src/share/vm/code/vmreg.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/ifg.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/loopnode.cpp ! src/share/vm/opto/machnode.cpp ! src/share/vm/opto/machnode.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/matcher.hpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/mulnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/opcodes.cpp ! src/share/vm/opto/opcodes.hpp ! src/share/vm/opto/postaloc.cpp ! src/share/vm/opto/reg_split.cpp ! src/share/vm/opto/regmask.cpp ! src/share/vm/opto/regmask.hpp ! src/share/vm/opto/superword.cpp ! src/share/vm/opto/superword.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/opto/type.hpp ! src/share/vm/opto/vectornode.cpp ! src/share/vm/opto/vectornode.hpp ! src/share/vm/runtime/vmStructs.cpp + test/compiler/7119644/TestBooleanVect.java + test/compiler/7119644/TestByteDoubleVect.java + test/compiler/7119644/TestByteFloatVect.java + test/compiler/7119644/TestByteIntVect.java + test/compiler/7119644/TestByteLongVect.java + test/compiler/7119644/TestByteShortVect.java + test/compiler/7119644/TestByteVect.java + test/compiler/7119644/TestCharShortVect.java + test/compiler/7119644/TestCharVect.java + test/compiler/7119644/TestDoubleVect.java + test/compiler/7119644/TestFloatDoubleVect.java + test/compiler/7119644/TestFloatVect.java + test/compiler/7119644/TestIntDoubleVect.java + test/compiler/7119644/TestIntFloatVect.java + test/compiler/7119644/TestIntLongVect.java + test/compiler/7119644/TestIntVect.java + test/compiler/7119644/TestLongDoubleVect.java + test/compiler/7119644/TestLongFloatVect.java + test/compiler/7119644/TestLongVect.java + test/compiler/7119644/TestShortDoubleVect.java + test/compiler/7119644/TestShortFloatVect.java + test/compiler/7119644/TestShortIntVect.java + test/compiler/7119644/TestShortLongVect.java + test/compiler/7119644/TestShortVect.java From daniel.daugherty at oracle.com Fri Jun 15 07:03:28 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Fri, 15 Jun 2012 08:03:28 -0600 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA1C7A.1070108@oracle.com> Message-ID: <4FDB40B0.6040003@oracle.com> On 6/15/12 3:57 AM, Roland Westrelin wrote: >> Thank you, Roland, for fixing this > Thanks for the review. > >> Please, add a comment to your change since it is different from other platforms. We may want to add the same check on other platforms to skip unneeded additional checks. But I will let Runtime group to handle that. > Would this comment be ok? > // We test if stub is already set (by the stack overflow code > // above) so it is not overwritten by the code that follows. This > // check is not required on other platforms, because on other > // platform we check for SIGSEGV only or SIGBUS only, where here > // we have to check for both SIGSEGV and SIGBUS. > > Roland. I like the new comment. Dan From daniel.daugherty at oracle.com Fri Jun 15 07:08:28 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Fri, 15 Jun 2012 08:08:28 -0600 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <95EE2087-CD0E-440D-99FD-C5DE156789BB@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA42BB.7040606@oracle.com> <95EE2087-CD0E-440D-99FD-C5DE156789BB@oracle.com> Message-ID: <4FDB41DC.2090806@oracle.com> On 6/15/12 4:20 AM, Roland Westrelin wrote: > Hi Dan, > > Thanks for taking a look at this. See below. No problem. I only noticed the bug because at one point it was assigned to me... :-) >> Thanks for tackling such nasty code... >> Just trying to understand this one... These checks: >> >> 476 if (sig == SIGSEGV || sig == SIGBUS) { >> 480 if (addr< thread->stack_base()&& >> 481 addr>= thread->stack_base() - thread->stack_size()) { >> 483 if (thread->in_stack_yellow_zone(addr)) { >> 485 if (thread->thread_state() == _thread_in_Java) { >> >> tell us that we took a SIGSEGV or SIGBUS while running Java code >> in the yellow zone of our stack... so stack overflow... which gets >> us to this setting of "stub": >> >> 488 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); >> >> >> This line: >> >> 519 if (thread->thread_state() == _thread_in_Java) { >> >> gets us into another block of "stub" setting code, but it >> currently doesn't care that "stub" was already set. That's >> the code you're trying to fix with this new line: >> >> 519 if (thread->thread_state() == _thread_in_Java&& stub == NULL) { > Exactly. > >> Just to be complete, I'm trying to understand which of the >> many places that set "stub" is clobbering the existing value. > This is the code that clobbers the stub value: > > 530 } else if (sig == SIGBUS&& MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { > 534 // BugId 4454115: A read from a MappedByteBuffer can fault > 535 // here if the underlying file has been truncated. > 536 // Do not crash the VM in such a case. > 537 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); > 538 nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; > 539 if (nm != NULL&& nm->has_unsafe_access()) { > 540 stub = StubRoutines::handler_for_unsafe_access(); > 541 } > 542 } > > si_addr is an address on the stack so it's not in the first page and MacroAssembler::needs_explicit_null_check() returns true. The method where the SIGBUS due to the stack overflow happens is a compiled method and we're unlucky because it has some unsafe accesses and the SIGBUS is mistaken for an unsafe access that has gone wrong. > > Roland. Thanks for closing the loop with me on this one. I had ruled out this block in my initial analysis since I guessed an "unsafe access" was an uncommon case. It might still be uncommon, but it was the one that you had in hand. Is it just me or this whole function just crazy complicated??? Dan From vladimir.kozlov at oracle.com Fri Jun 15 08:08:41 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 15 Jun 2012 08:08:41 -0700 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA1C7A.1070108@oracle.com> Message-ID: <4FDB4FF9.2070007@oracle.com> This comment is good. thanks, Vladimir On 6/15/12 2:57 AM, Roland Westrelin wrote: >> Thank you, Roland, for fixing this > > Thanks for the review. > >> Please, add a comment to your change since it is different from other platforms. We may want to add the same check on other platforms to skip unneeded additional checks. But I will let Runtime group to handle that. > > Would this comment be ok? > // We test if stub is already set (by the stack overflow code > // above) so it is not overwritten by the code that follows. This > // check is not required on other platforms, because on other > // platform we check for SIGSEGV only or SIGBUS only, where here > // we have to check for both SIGSEGV and SIGBUS. > > Roland. From vladimir.kozlov at oracle.com Sat Jun 16 16:21:54 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Sat, 16 Jun 2012 16:21:54 -0700 Subject: significant performance degradation seen after running application for few days with CMS collector and large heap size In-Reply-To: References: <4FDB7E3C.5050600@oracle.com>, <4FDB81FD.8020801@oracle.com> Message-ID: <4FDD1512.6060001@oracle.com> Hi, Atul I want to point that -XX:+UseCodeCacheFlushing flag in jdk 6 may also cause crashes, as other customers found. So your only choice is increase CodeCache. There are several things happening which may cause your problem. C2 use "uncommon traps" when compiles methods with a profile which shows that some paths in code were not executed before the compilation time. A compiled code has also dependencies on loaded classes. All this leads to deoptimization and throwing out previously compiled code if original compiling conditions are invalidated. After that a method re-executed in Interpreter and recompiled again if it is still hot. There are cases when a method is recompiled a lot of times and eventually C2 marks it as not compilable. Method could be marked as not compilable for other reasons also. Also at the same time methods which executed less frequent get enough invocations to be compiled. Also we don't do CodeCache compression which leads to fragmentation of free space. So I can imaging a situation when a very hot methods were deoptimized but there were no space left for recompiled code. Increase CodeCache size and do some test runs with -XX:+PrintCompilation. Look for methods which compiled a lot times or marked as not compilable. There is an other flag which collects a lot more information (huge output file) about compilation but it is for an other step if you want to investigate it further. I also change mail address to JIT compiler group since it is not GC discussion. regards, Vladimir On 6/16/12 12:45 PM, Atul Kshatriya wrote: > Hello Vladimir, > We seem to have very strong evidence that the slowness in our apps is caused by the code cache becoming full. We have > found that trolling the logs of our servers. > > We have kind of verified that if the compiler is turned off, typical operations in our app will take significantly > longer - this we proved by just setting the code cache to an extremely small amount triggering the compiler to be turned > off almost immediately on startup. > > What we haven't been able to fully understand is why this is happening (code cache becoming full) - since we do not seem > to have any dynamically loaded components (and unloading of them) in our app. It could be that we were just at the > threshold and that new feature additions has made the codebase big enough that we are hitting the max. But what could > explain the following: without flushing turned on, an operation runs fast first, but then once the code cache gets full, > after a few days starts getting slow. It is like for sometime the compiled code is cached, and runs fast, even after > code cache is full, but eventually it is "removed" and something else takes it's place. What I would have expected is > that once the code cache is full, what has already been compiled and running fast keeps running fast, and the new things > that get loaded would not be compiled and those would be slow. But that does not seem to be the case. This is still a > puzzle to us. > > Anyway we are running tests with increased code cache as well as flushing turned on to see if we see any ill effects. If > those pass we will be trying them out to see if they solve our problem. We are quite hopeful. > > Thank you so much so showing us the direction. > > -Atul > > > Date: Fri, 15 Jun 2012 11:42:05 -0700 > > From: vladimir.kozlov at oracle.com > > To: atulksh at hotmail.com > > CC: hotspot-gc-dev at openjdk.java.net > > Subject: Re: significant performance degradation seen after running application for few days with CMS collector and > large heap size > > > > I forgot to say that 6u31 supports CodeCache cleanup when it is almost full: > > > > -XX:+UseCodeCacheFlushing > > > > So try it also if CodeCache is your problem (the flag is off by default in 6u31). > > > > Vladimir > > > > Vladimir Kozlov wrote: > > > If it is not full GC, may be your code cache is full so JIT stop > > > compiling and you start running in interpreter only. Look for next > > > message in your output: > > > > > > CodeCache is full. Compiler has been disabled. > > > Try increasing the code cache size using -XX:ReservedCodeCacheSize= > > > > > > The default is 48Mb for 6u31: -XX:ReservedCodeCacheSize=48m > > > > > > Vladimir > > > > > > Atul Kshatriya wrote: > > >> Hello, > > >> We have a Tomcat based java server application configured to use the > > >> CMS collector. We have a relatively large heap - anywhere from 23Gb to > > >> upto 58Gb. What we are seeing is that after the application runs for a > > >> week or two, a request that would normally take few seconds takes tens > > >> of seconds to complete. This manifests itself as users seeing > > >> extremely slow performance from the server. > > >> > > >> We have looked at the gc logs and they do not seem to show any > > >> significant increase in pause times. We have made sure that the server > > >> is not loaded (load average is pretty minimal) and there is no other > > >> process running that would affect the server. > > >> > > >> If the application is restarted then we again get good performance > > >> until after a few days the performance deteriorates. Once that happens > > >> it does not seem to go back down again and stays at that level. > > >> > > >> The platform we are using is 64 bit x86 running SUSE (SUSE Linux > > >> Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 0). > > >> The JDK we are using is JEK 1.6 Update 31. > > >> > > >> The parameters we are using for the jvm are as follows: > > >> > > >> -Xmx58G -Xms58G -server > > >> -XX:PermSize=256m -XX:MaxPermSize=256m > > >> -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC > > >> -XX:+PrintGCDetails -XX:+PrintGCTimeStamps > > >> -XX:CMSInitiatingOccupancyFraction=70 > > >> -XX:-CMSConcurrentMTEnabled -XX:+UseCompressedOops > > >> -XX:ObjectAlignmentInBytes=16 > > >> -XX:+PrintTenuringDistribution -XX:PrintCMSStatistics=2 > > >> > > >> We suspect this is something to do with the CMS garbage collect but > > >> have not been able to identify what exactly it might be looking at the > > >> gc logs. Has anybody seen such a behavior and any possible suspects > > >> like memory fragmentation etc. > > >> > > >> Any help regarding this greatly appreciated. > > >> > > >> -Atul From roland.westrelin at oracle.com Mon Jun 18 03:11:00 2012 From: roland.westrelin at oracle.com (roland.westrelin at oracle.com) Date: Mon, 18 Jun 2012 10:11:00 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework Message-ID: <20120618101110.CFB17479AF@hg.openjdk.java.net> Changeset: eeb819cf36e5 Author: roland Date: 2012-06-18 09:52 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/eeb819cf36e5 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework Summary: Arrays.copyOfRange(original, from, to) with from > original.length tries to do a copy with a negative length. Reviewed-by: kvn, twisti ! src/share/vm/opto/library_call.cpp + test/compiler/7174363/Test7174363.java From atulksh at hotmail.com Sun Jun 17 13:13:32 2012 From: atulksh at hotmail.com (Atul Kshatriya) Date: Sun, 17 Jun 2012 13:13:32 -0700 Subject: significant performance degradation seen after running application for few days with CMS collector and large heap size In-Reply-To: <4FDD1512.6060001@oracle.com> References: <4FDB7E3C.5050600@oracle.com>,<4FDB81FD.8020801@oracle.com> , <4FDD1512.6060001@oracle.com> Message-ID: > I want to point that -XX:+UseCodeCacheFlushing flag in jdk 6 may also cause crashes, as other customers found. So your > only choice is increase CodeCache. There are several things happening which may cause your problem. C2 use "uncommon > traps" when compiles methods with a profile which shows that some paths in code were not executed before the compilation > time. A compiled code has also dependencies on loaded classes. All this leads to deoptimization and throwing out > previously compiled code if original compiling conditions are invalidated. After that a method re-executed in > Interpreter and recompiled again if it is still hot. There are cases when a method is recompiled a lot of times and > eventually C2 marks it as not compilable. Method could be marked as not compilable for other reasons also. Also at the > same time methods which executed less frequent get enough invocations to be compiled. Also we don't do CodeCache > compression which leads to fragmentation of free space. So I can imaging a situation when a very hot methods were > deoptimized but there were no space left for recompiled code. Hmmm.. That's a bit unfortunate. I have already started a run with both the flags (increase in code cache size as well as specifying flushing on). I tried to look crash bugs for this and so far only found ones that have been already fixed. Is the crash issue still open? As you know we are using JDK6 update 31. But thank you for your detailed explanation. What I am interpreting from that is that even though we do not have dynamically loaded classes it is possible for the code cache to get full is what you are eluding to. > Increase CodeCache size and do some test runs with -XX:+PrintCompilation. Look for methods which compiled a lot times or > marked as not compilable. There is an other flag which collects a lot more information (huge output file) about > compilation but it is for an other step if you want to investigate it further. We will try to do such a test and check out the results. Unfortunately we haven't been able to recreate the issue in our test environment yet, we only have seen this in production. > I also change mail address to JIT compiler group since it is not GC discussion. Thanks for that. So far the test run that i have started with both flags turned on seems to be going fine and is not crashing. But that wouldn't mean it would not occur. We might try just increasing the code cache as a first step and then if the problem seems to reoccur would think of checking out the code cache flushing flag. Any ideas when that would get fixed? Thank you very much, Atul > Date: Sat, 16 Jun 2012 16:21:54 -0700 > From: vladimir.kozlov at oracle.com > To: atulksh at hotmail.com > CC: hotspot-compiler-dev at openjdk.java.net > Subject: Re: significant performance degradation seen after running application for few days with CMS collector and large heap size > > Hi, Atul > > I want to point that -XX:+UseCodeCacheFlushing flag in jdk 6 may also cause crashes, as other customers found. So your > only choice is increase CodeCache. There are several things happening which may cause your problem. C2 use "uncommon > traps" when compiles methods with a profile which shows that some paths in code were not executed before the compilation > time. A compiled code has also dependencies on loaded classes. All this leads to deoptimization and throwing out > previously compiled code if original compiling conditions are invalidated. After that a method re-executed in > Interpreter and recompiled again if it is still hot. There are cases when a method is recompiled a lot of times and > eventually C2 marks it as not compilable. Method could be marked as not compilable for other reasons also. Also at the > same time methods which executed less frequent get enough invocations to be compiled. Also we don't do CodeCache > compression which leads to fragmentation of free space. So I can imaging a situation when a very hot methods were > deoptimized but there were no space left for recompiled code. > > Increase CodeCache size and do some test runs with -XX:+PrintCompilation. Look for methods which compiled a lot times or > marked as not compilable. There is an other flag which collects a lot more information (huge output file) about > compilation but it is for an other step if you want to investigate it further. > > I also change mail address to JIT compiler group since it is not GC discussion. > > regards, > Vladimir > > On 6/16/12 12:45 PM, Atul Kshatriya wrote: > > Hello Vladimir, > > We seem to have very strong evidence that the slowness in our apps is caused by the code cache becoming full. We have > > found that trolling the logs of our servers. > > > > We have kind of verified that if the compiler is turned off, typical operations in our app will take significantly > > longer - this we proved by just setting the code cache to an extremely small amount triggering the compiler to be turned > > off almost immediately on startup. > > > > What we haven't been able to fully understand is why this is happening (code cache becoming full) - since we do not seem > > to have any dynamically loaded components (and unloading of them) in our app. It could be that we were just at the > > threshold and that new feature additions has made the codebase big enough that we are hitting the max. But what could > > explain the following: without flushing turned on, an operation runs fast first, but then once the code cache gets full, > > after a few days starts getting slow. It is like for sometime the compiled code is cached, and runs fast, even after > > code cache is full, but eventually it is "removed" and something else takes it's place. What I would have expected is > > that once the code cache is full, what has already been compiled and running fast keeps running fast, and the new things > > that get loaded would not be compiled and those would be slow. But that does not seem to be the case. This is still a > > puzzle to us. > > > > Anyway we are running tests with increased code cache as well as flushing turned on to see if we see any ill effects. If > > those pass we will be trying them out to see if they solve our problem. We are quite hopeful. > > > > Thank you so much so showing us the direction. > > > > -Atul > > > > > Date: Fri, 15 Jun 2012 11:42:05 -0700 > > > From: vladimir.kozlov at oracle.com > > > To: atulksh at hotmail.com > > > CC: hotspot-gc-dev at openjdk.java.net > > > Subject: Re: significant performance degradation seen after running application for few days with CMS collector and > > large heap size > > > > > > I forgot to say that 6u31 supports CodeCache cleanup when it is almost full: > > > > > > -XX:+UseCodeCacheFlushing > > > > > > So try it also if CodeCache is your problem (the flag is off by default in 6u31). > > > > > > Vladimir > > > > > > Vladimir Kozlov wrote: > > > > If it is not full GC, may be your code cache is full so JIT stop > > > > compiling and you start running in interpreter only. Look for next > > > > message in your output: > > > > > > > > CodeCache is full. Compiler has been disabled. > > > > Try increasing the code cache size using -XX:ReservedCodeCacheSize= > > > > > > > > The default is 48Mb for 6u31: -XX:ReservedCodeCacheSize=48m > > > > > > > > Vladimir > > > > > > > > Atul Kshatriya wrote: > > > >> Hello, > > > >> We have a Tomcat based java server application configured to use the > > > >> CMS collector. We have a relatively large heap - anywhere from 23Gb to > > > >> upto 58Gb. What we are seeing is that after the application runs for a > > > >> week or two, a request that would normally take few seconds takes tens > > > >> of seconds to complete. This manifests itself as users seeing > > > >> extremely slow performance from the server. > > > >> > > > >> We have looked at the gc logs and they do not seem to show any > > > >> significant increase in pause times. We have made sure that the server > > > >> is not loaded (load average is pretty minimal) and there is no other > > > >> process running that would affect the server. > > > >> > > > >> If the application is restarted then we again get good performance > > > >> until after a few days the performance deteriorates. Once that happens > > > >> it does not seem to go back down again and stays at that level. > > > >> > > > >> The platform we are using is 64 bit x86 running SUSE (SUSE Linux > > > >> Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 0). > > > >> The JDK we are using is JEK 1.6 Update 31. > > > >> > > > >> The parameters we are using for the jvm are as follows: > > > >> > > > >> -Xmx58G -Xms58G -server > > > >> -XX:PermSize=256m -XX:MaxPermSize=256m > > > >> -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC > > > >> -XX:+PrintGCDetails -XX:+PrintGCTimeStamps > > > >> -XX:CMSInitiatingOccupancyFraction=70 > > > >> -XX:-CMSConcurrentMTEnabled -XX:+UseCompressedOops > > > >> -XX:ObjectAlignmentInBytes=16 > > > >> -XX:+PrintTenuringDistribution -XX:PrintCMSStatistics=2 > > > >> > > > >> We suspect this is something to do with the CMS garbage collect but > > > >> have not been able to identify what exactly it might be looking at the > > > >> gc logs. Has anybody seen such a behavior and any possible suspects > > > >> like memory fragmentation etc. > > > >> > > > >> Any help regarding this greatly appreciated. > > > >> > > > >> -Atul -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120617/6cbaa65a/attachment.html From christian.thalinger at oracle.com Mon Jun 18 14:38:07 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Mon, 18 Jun 2012 21:38:07 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7176856: add the JRE name to the error log Message-ID: <20120618213809.922D9479CC@hg.openjdk.java.net> Changeset: f8de958e5b2c Author: twisti Date: 2012-06-18 12:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f8de958e5b2c 7176856: add the JRE name to the error log Reviewed-by: coleenp, jrose, kvn, twisti Contributed-by: Krystal Mok ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/utilities/vmError.cpp From christian.thalinger at oracle.com Mon Jun 18 15:13:17 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 18 Jun 2012 15:13:17 -0700 Subject: RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error In-Reply-To: <4FDA8590.5020506@oracle.com> References: <4FDA6B51.8050405@oracle.com> <94282765-B4B8-4559-A706-4254BD254204@oracle.com> <4FDA8590.5020506@oracle.com> Message-ID: Thank you, John and Vladimir. -- Chris On Jun 14, 2012, at 5:45 PM, Vladimir Kozlov wrote: > OK then. > > Thanks, > Vladimir > > Christian Thalinger wrote: >> On Jun 14, 2012, at 3:53 PM, Vladimir Kozlov wrote: >>> Christian, >>> >>> Can you move duplicated code in callGenerator into separate method? >> Actually the code in PredictedDynamicCallGenerator is (currently) not used. Only the path for the selectAlternative idiom. I'm thinking about removing the code when we integrate our new implementation and resurrect it when we need it. >> -- Chris >>> Thanks, >>> Vladimir >>> >>> Christian Thalinger wrote: >>>> http://cr.openjdk.java.net/~twisti/7157365 >>>> 7157365: jruby/bench.bench_timeout crashes with JVM internal error >>>> Reviewed-by: >>>> The problem manifests itself as an assert in escape analysis code: >>>> assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity >>>> The out-of-line code for invokedynamic instructions loads the CallSite object >>>> from the constant pool cache. Since the constant pool cache contains data other than oops we return the type as byte[] and load the oop as raw pointer. >>>> Escape analysis notices this misbehavior and bails out. >>>> The best possible fix for now is to define the constant pool cache base pointer as an oop array and load a raw pointer from there. >>>> Note that this is more of a temporary fix since the perm-gen removal will fix this problem in a more correct fashion. src/share/vm/memory/universe.hpp >>>> src/share/vm/opto/callGenerator.cpp >>>> src/share/vm/opto/chaitin.cpp >>>> src/share/vm/opto/type.cpp From rednaxelafx at gmail.com Mon Jun 18 19:54:17 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Tue, 19 Jun 2012 10:54:17 +0800 Subject: Question on arithmetic overflow detection support in C2 Message-ID: Hi all, I'm doing some experiments in C2, trying to add support in the IR for arithmetic overflow detection. Looks like it's quite involved, though. Any suggestions on how it could be done would be greatly appreciated :-) My questions: 1. The structure of IfNode: does the IR have to be in the form of If_proj->If->Bool->Cmp Although there's code in idealize_test() (in ifnode.cpp) that checks if iff->in(1)->is_Bool(), other places seem to assume the sole data input to If is a Bool, e.g. the transformation in Matcher::find_shared(). What if I wanted to add some node type other than Bool as the test input to If? Something like (If (CheckOverflow expr)), does that feel right? 2. The BoolTest kinds, does it feel right to add a pair of kinds for overflow? Like BoolTest::ovf and BoolTest::noovf. They'll still fit in the 3-bit encoding. If this pair is added, then to make it useful, the input to Bool wouldn't always be Cmp anymore; instead it could be any arithmetic nodes that modifies the condition flags as a side-effect. And...that doesn't seem to fit in C2's IR right now, since the only kind of node that models DEF of the condition flags are the Cmp nodes. 3. As a quick-n-dirty experiment, I tried not to touch the machine-independent IR, and instead modify only the ad file to pattern match the current Java implementation of Match.addExact(int, int) to make it emit a jo (jump-if-overflow) instruction for overflow detection, but it failed to compile. The patch is here: https://gist.github.com/3818aa3acbc78e28e7fa (Aside: the Ideal graph of the overflow check expression is like this: http://dl.iteye.com/upload/picture/pic/114476/674e0a78-5515-3da3-8ea6-6eedbeb32f8e.png This is the state right before matching the matcher rules) ADLC didn't complain, but the generated jmpAddOverflowNode::Expand() function had compilation errors, saying: ../generated/adfiles/ad_x86_64_expand.cpp: In member function ?virtual MachNode* jmpAddOverflowNode::Expand(State*, Node_List&, Node*)?: ../generated/adfiles/ad_x86_64_expand.cpp:5915: error: ?num8? was not declared in this scope Apparently I was doing something wrong in the ad file, but I don't quite get what it was. Regards, Kris -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120619/abd6f9d9/attachment.html From christian.thalinger at oracle.com Mon Jun 18 20:47:31 2012 From: christian.thalinger at oracle.com (christian.thalinger at oracle.com) Date: Tue, 19 Jun 2012 03:47:31 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7157365: jruby/bench.bench_timeout crashes with JVM internal error Message-ID: <20120619034737.01E60479DA@hg.openjdk.java.net> Changeset: 765ee2d1674b Author: twisti Date: 2012-06-18 15:17 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/765ee2d1674b 7157365: jruby/bench.bench_timeout crashes with JVM internal error Reviewed-by: jrose, kvn ! src/share/vm/memory/universe.hpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/type.cpp From vladimir.kozlov at oracle.com Mon Jun 18 21:14:20 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 18 Jun 2012 21:14:20 -0700 Subject: Request for reviews (S): 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() Message-ID: <4FDFFC9C.8010405@oracle.com> http://cr.openjdk.java.net/~kvn/7177923/webrev 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() The code in clear() initialize 3 arrays in a loop. Two arrays are int[] and one is boolean[]. After 7119644 changes all 3 are vectorized. Pre-loop iterations are adjusted to align access for int[] arrays since there are more memory accesses to them. A vector on sparc contains 2 integer values so 2 iterations are executed in pre-loop which is not enough to align boolean[] array (which has 8 elements in vector). As result vector store into boolean[] throw SIGBUS in main loop. The solution is disable vectorization of a memory access with more elements per vector than one which is used for alignment if unaligned memory access is not allowed. Also fixed incorrect matching rules in x86.ad and re-factored method vector_width_in_bytes(). Tested with failing tests on sparc. Thanks, Vladimir From vladimir.kozlov at oracle.com Mon Jun 18 21:38:40 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 18 Jun 2012 21:38:40 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: Message-ID: <4FE00250.8010505@oracle.com> It will be difficult. Almost all data nodes produce only one result and this rule is used in all parts of C2 (from parser to RA). One exception is conditional stores which produce flag and memory state (look in macro.cpp in expand_allocate_common() method). This case handled specially everywhere. And you do need to add overflow and non-overflow pair to BoolTest values. Vladimir Krystal Mok wrote: > Hi all, > > I'm doing some experiments in C2, trying to add support in the IR for > arithmetic overflow detection. Looks like it's quite involved, though. > Any suggestions on how it could be done would be greatly appreciated :-) > > My questions: > > 1. The structure of IfNode: does the IR have to be in the form of > If_proj->If->Bool->Cmp > > Although there's code in idealize_test() (in ifnode.cpp) that checks if > iff->in(1)->is_Bool(), other places seem to assume the sole data input > to If is a Bool, e.g. the transformation in Matcher::find_shared(). > > What if I wanted to add some node type other than Bool as the test input > to If? Something like (If (CheckOverflow expr)), does that feel right? > > 2. The BoolTest kinds, does it feel right to add a pair of kinds for > overflow? Like BoolTest::ovf and BoolTest::noovf. They'll still fit in > the 3-bit encoding. > > If this pair is added, then to make it useful, the input to Bool > wouldn't always be Cmp anymore; instead it could be any arithmetic nodes > that modifies the condition flags as a side-effect. > And...that doesn't seem to fit in C2's IR right now, since the only kind > of node that models DEF of the condition flags are the Cmp nodes. > > 3. As a quick-n-dirty experiment, I tried not to touch the > machine-independent IR, and instead modify only the ad file to pattern > match the current Java implementation of Match.addExact(int, int) to > make it emit a jo (jump-if-overflow) instruction for overflow detection, > but it failed to compile. > The patch is here: https://gist.github.com/3818aa3acbc78e28e7fa > > (Aside: the Ideal graph of the overflow check expression is like this: > http://dl.iteye.com/upload/picture/pic/114476/674e0a78-5515-3da3-8ea6-6eedbeb32f8e.png > This is the state right before matching the matcher rules) > > ADLC didn't complain, but the generated jmpAddOverflowNode::Expand() > function had compilation errors, saying: > > ../generated/adfiles/ad_x86_64_expand.cpp: In member function ?virtual > MachNode* jmpAddOverflowNode::Expand(State*, Node_List&, Node*)?: > ../generated/adfiles/ad_x86_64_expand.cpp:5915: error: ?num8? was not > declared in this scope > > Apparently I was doing something wrong in the ad file, but I don't quite > get what it was. > > Regards, > Kris From vladimir.kozlov at oracle.com Mon Jun 18 21:43:25 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 18 Jun 2012 21:43:25 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE00250.8010505@oracle.com> References: <4FE00250.8010505@oracle.com> Message-ID: <4FE0036D.5010400@oracle.com> Vladimir Kozlov wrote: > It will be difficult. Almost all data nodes produce only one result and I meant only one data edge (not result) is produced. > this rule is used in all parts of C2 (from parser to RA). One exception > is conditional stores which produce flag and memory state (look in > macro.cpp in expand_allocate_common() method). This case handled > specially everywhere. And you do need to add overflow and non-overflow > pair to BoolTest values. > > Vladimir > > Krystal Mok wrote: >> Hi all, >> >> I'm doing some experiments in C2, trying to add support in the IR for >> arithmetic overflow detection. Looks like it's quite involved, though. >> Any suggestions on how it could be done would be greatly appreciated :-) >> >> My questions: >> >> 1. The structure of IfNode: does the IR have to be in the form of >> If_proj->If->Bool->Cmp >> >> Although there's code in idealize_test() (in ifnode.cpp) that checks >> if iff->in(1)->is_Bool(), other places seem to assume the sole data >> input to If is a Bool, e.g. the transformation in Matcher::find_shared(). >> >> What if I wanted to add some node type other than Bool as the test >> input to If? Something like (If (CheckOverflow expr)), does that feel >> right? >> >> 2. The BoolTest kinds, does it feel right to add a pair of kinds for >> overflow? Like BoolTest::ovf and BoolTest::noovf. They'll still fit in >> the 3-bit encoding. >> >> If this pair is added, then to make it useful, the input to Bool >> wouldn't always be Cmp anymore; instead it could be any arithmetic >> nodes that modifies the condition flags as a side-effect. >> And...that doesn't seem to fit in C2's IR right now, since the only >> kind of node that models DEF of the condition flags are the Cmp nodes. >> >> 3. As a quick-n-dirty experiment, I tried not to touch the >> machine-independent IR, and instead modify only the ad file to pattern >> match the current Java implementation of Match.addExact(int, int) to >> make it emit a jo (jump-if-overflow) instruction for overflow >> detection, but it failed to compile. >> The patch is here: https://gist.github.com/3818aa3acbc78e28e7fa >> >> (Aside: the Ideal graph of the overflow check expression is like this: >> http://dl.iteye.com/upload/picture/pic/114476/674e0a78-5515-3da3-8ea6-6eedbeb32f8e.png >> >> This is the state right before matching the matcher rules) >> >> ADLC didn't complain, but the generated jmpAddOverflowNode::Expand() >> function had compilation errors, saying: >> >> ../generated/adfiles/ad_x86_64_expand.cpp: In member function ?virtual >> MachNode* jmpAddOverflowNode::Expand(State*, Node_List&, Node*)?: >> ../generated/adfiles/ad_x86_64_expand.cpp:5915: error: ?num8? was not >> declared in this scope >> >> Apparently I was doing something wrong in the ad file, but I don't >> quite get what it was. >> >> Regards, >> Kris From forax at univ-mlv.fr Tue Jun 19 00:19:17 2012 From: forax at univ-mlv.fr (=?windows-1252?Q?R=E9mi_Forax?=) Date: Tue, 19 Jun 2012 09:19:17 +0200 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE0036D.5010400@oracle.com> References: <4FE00250.8010505@oracle.com> <4FE0036D.5010400@oracle.com> Message-ID: <4FE027F5.1090003@univ-mlv.fr> I'm not sure to understand why you need a pair of values knowing that methods like Math.addExact() throws an ArithmeticException if it overflows so in my opinion, only one value is needed. I think the easy way is to check if their is a catch(ArithmeticException) that is transformed to a goto (the VM already does that) and to generate an add + a jump on overflow for that case. BTW, I'm very happy and I suppose that Charles (Nutter) and the Jython team is happy too, that you guys take a look to that optimization. cheers, R?mi On 06/19/2012 06:43 AM, Vladimir Kozlov wrote: > Vladimir Kozlov wrote: >> It will be difficult. Almost all data nodes produce only one result and > > I meant only one data edge (not result) is produced. > >> this rule is used in all parts of C2 (from parser to RA). One >> exception is conditional stores which produce flag and memory state >> (look in macro.cpp in expand_allocate_common() method). This case >> handled specially everywhere. And you do need to add overflow and >> non-overflow pair to BoolTest values. >> >> Vladimir >> >> Krystal Mok wrote: >>> Hi all, >>> >>> I'm doing some experiments in C2, trying to add support in the IR >>> for arithmetic overflow detection. Looks like it's quite involved, >>> though. >>> Any suggestions on how it could be done would be greatly appreciated >>> :-) >>> >>> My questions: >>> >>> 1. The structure of IfNode: does the IR have to be in the form of >>> If_proj->If->Bool->Cmp >>> >>> Although there's code in idealize_test() (in ifnode.cpp) that checks >>> if iff->in(1)->is_Bool(), other places seem to assume the sole data >>> input to If is a Bool, e.g. the transformation in >>> Matcher::find_shared(). >>> >>> What if I wanted to add some node type other than Bool as the test >>> input to If? Something like (If (CheckOverflow expr)), does that >>> feel right? >>> >>> 2. The BoolTest kinds, does it feel right to add a pair of kinds for >>> overflow? Like BoolTest::ovf and BoolTest::noovf. They'll still fit >>> in the 3-bit encoding. >>> >>> If this pair is added, then to make it useful, the input to Bool >>> wouldn't always be Cmp anymore; instead it could be any arithmetic >>> nodes that modifies the condition flags as a side-effect. >>> And...that doesn't seem to fit in C2's IR right now, since the only >>> kind of node that models DEF of the condition flags are the Cmp nodes. >>> >>> 3. As a quick-n-dirty experiment, I tried not to touch the >>> machine-independent IR, and instead modify only the ad file to >>> pattern match the current Java implementation of Match.addExact(int, >>> int) to make it emit a jo (jump-if-overflow) instruction for >>> overflow detection, but it failed to compile. >>> The patch is here: https://gist.github.com/3818aa3acbc78e28e7fa >>> >>> (Aside: the Ideal graph of the overflow check expression is like this: >>> http://dl.iteye.com/upload/picture/pic/114476/674e0a78-5515-3da3-8ea6-6eedbeb32f8e.png >>> >>> This is the state right before matching the matcher rules) >>> >>> ADLC didn't complain, but the generated jmpAddOverflowNode::Expand() >>> function had compilation errors, saying: >>> >>> ../generated/adfiles/ad_x86_64_expand.cpp: In member function >>> ?virtual MachNode* jmpAddOverflowNode::Expand(State*, Node_List&, >>> Node*)?: >>> ../generated/adfiles/ad_x86_64_expand.cpp:5915: error: ?num8? was >>> not declared in this scope >>> >>> Apparently I was doing something wrong in the ad file, but I don't >>> quite get what it was. >>> >>> Regards, >>> Kris From john.r.rose at oracle.com Tue Jun 19 00:55:13 2012 From: john.r.rose at oracle.com (John Rose) Date: Tue, 19 Jun 2012 00:55:13 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE00250.8010505@oracle.com> References: <4FE00250.8010505@oracle.com> Message-ID: <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> On Jun 18, 2012, at 9:38 PM, Vladimir Kozlov wrote: > will be difficult. Almost all data nodes produce only one result and this rule is used in all parts of C2 (from parser to RA). Yes; we won't have a good story for producing multiple values from IR nodes. But, for a workaround to this, look at UseDivMod. The idea is to let the IR nodes for the two results float separately, and fuse them when convenient at the end of the compilation. In this pattern, consider paired node types: AddI(a, b): I AddIOverflow(a, b): I It's probably not necessary to change the semantics of Bool. Just do something like this: If(Bool(ne, AddIOverflow(a, b))) The AddIOverflow works like a CmpI, and produces condition codes. There's no need for special ov conditions, IMO. The "magic" for accessing the HW overflow bit can be specified in a AD file match rule that recognizes a Bool and an AddIOverflow next to each other. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120619/f630e648/attachment.html From rednaxelafx at gmail.com Tue Jun 19 07:07:35 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Tue, 19 Jun 2012 22:07:35 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: Hi John, Thank you for the suggestion! There are a couple of things I didn't understand clearly with your suggestion: In the DivMod example, Div and Mod nodes with the same inputs start out floating separately, and get fused into a single DivMod late in Optimize(). The DivMod node type is a MultiNode with 2 projections, one for the div and the other for the mod. There's special treatment of DivMod in Matcher, and custom logic to match the projections. If I add a new node type AddIOverflow following the same model, I might get it like this: https://gist.github.com/bdd13666e4796b09f36e This node type would have 2 projections just like DivMod, one for the add, and the other for the overflow condition. Then there are two questions: 1. I'd need another new node type, presumably called "CheckAddIOverflow" here, that derives from CmpINode and acts as if it produces condition codes. AddI(a, b) and CheckAddIOverflow(a, b) float separately, just like the DivMod example. They get fused up late in Optimize() into the AddIOverflow shown above. Does this sound right? 2. With AddIOverflow going into the Matcher, how should I write the match rule in the ad file, to match: If(Bool(Proj(AddIOverflow(a, b)).overflow, ne), labl) ? Would it look like: match(If cop (AddIOverflow dest src)) ? If the pair of overflow/non-overflow conditions are in BoolTest and in cmpOp, perhaps I wouldn't need to match the If node, and could just let jmpCon rule handle it as-is. That way I just have to match AddIOverflow itself in the ad file, like DivMod. Regards, Kris On Tue, Jun 19, 2012 at 3:55 PM, John Rose wrote: > On Jun 18, 2012, at 9:38 PM, Vladimir Kozlov wrote: > > will be difficult. Almost all data nodes produce only one result and this > rule is used in all parts of C2 (from parser to RA). > > > Yes; we won't have a good story for producing multiple values from IR > nodes. > > But, for a workaround to this, look at UseDivMod. The idea is to let the > IR nodes for the two results float separately, and fuse them when > convenient at the end of the compilation. > > In this pattern, consider paired node types: > AddI(a, b): I > AddIOverflow(a, b): I > > It's probably not necessary to change the semantics of Bool. Just do > something like this: > If(Bool(ne, AddIOverflow(a, b))) > > The AddIOverflow works like a CmpI, and produces condition codes. There's > no need for special ov conditions, IMO. > > The "magic" for accessing the HW overflow bit can be specified in a AD > file match rule that recognizes a Bool and an AddIOverflow next to each > other. > > ? John > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120619/df3e0a78/attachment.html From rednaxelafx at gmail.com Tue Jun 19 07:35:13 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Tue, 19 Jun 2012 22:35:13 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE027F5.1090003@univ-mlv.fr> References: <4FE00250.8010505@oracle.com> <4FE0036D.5010400@oracle.com> <4FE027F5.1090003@univ-mlv.fr> Message-ID: Hi Remi, On Tue, Jun 19, 2012 at 3:19 PM, R?mi Forax wrote: > I'm not sure to understand why you need a pair of values knowing that > methods like Math.addExact() throws an ArithmeticException if it overflows > so in my opinion, only one value is needed. > > We need to model the implementation logic of Math.addExact() in C2's IR, and we have to represent it with basic IR nodes. There's no node in this IR that could "do addition and throw exception on overflow". We could certainly make one, but then it'd be a macro node, and has to be expanded (lowered) into the more basic nodes later on. There's only one example I know of in C2 that carries very heavy logic all the way into instruction selection, which is the STTNI optimizations for some String methods. As Vladimir and John already said, the IR in C2 usually produce only one data out edge (in other words, produces only a single value). Data nodes that produces multiple values are handled by projection nodes. > I think the easy way is to check if their is a catch(ArithmeticException) > that is > transformed to a goto (the VM already does that) and to generate an add + > a jump on overflow > for that case. > > That's actually not as easy as it seems. Well, it's the matter of where to put the logic into. > BTW, I'm very happy and I suppose that Charles (Nutter) and the Jython > team is happy too, > that you guys take a look to that optimization. > > I'm very happy to find something new to work on, so that I can get up to speed with C2. Hopefully I can get something running for you in time :-) BTW, have you tried out Graal for custom optimizations? - Kris > cheers, > R?mi > > > On 06/19/2012 06:43 AM, Vladimir Kozlov wrote: > >> Vladimir Kozlov wrote: >> >>> It will be difficult. Almost all data nodes produce only one result and >>> >> >> I meant only one data edge (not result) is produced. >> >> this rule is used in all parts of C2 (from parser to RA). One exception >>> is conditional stores which produce flag and memory state (look in >>> macro.cpp in expand_allocate_common() method). This case handled specially >>> everywhere. And you do need to add overflow and non-overflow pair to >>> BoolTest values. >>> >>> Vladimir >>> >>> Krystal Mok wrote: >>> >>>> Hi all, >>>> >>>> I'm doing some experiments in C2, trying to add support in the IR for >>>> arithmetic overflow detection. Looks like it's quite involved, though. >>>> Any suggestions on how it could be done would be greatly appreciated :-) >>>> >>>> My questions: >>>> >>>> 1. The structure of IfNode: does the IR have to be in the form of >>>> If_proj->If->Bool->Cmp >>>> >>>> Although there's code in idealize_test() (in ifnode.cpp) that checks if >>>> iff->in(1)->is_Bool(), other places seem to assume the sole data input to >>>> If is a Bool, e.g. the transformation in Matcher::find_shared(). >>>> >>>> What if I wanted to add some node type other than Bool as the test >>>> input to If? Something like (If (CheckOverflow expr)), does that feel right? >>>> >>>> 2. The BoolTest kinds, does it feel right to add a pair of kinds for >>>> overflow? Like BoolTest::ovf and BoolTest::noovf. They'll still fit in the >>>> 3-bit encoding. >>>> >>>> If this pair is added, then to make it useful, the input to Bool >>>> wouldn't always be Cmp anymore; instead it could be any arithmetic nodes >>>> that modifies the condition flags as a side-effect. >>>> And...that doesn't seem to fit in C2's IR right now, since the only >>>> kind of node that models DEF of the condition flags are the Cmp nodes. >>>> >>>> 3. As a quick-n-dirty experiment, I tried not to touch the >>>> machine-independent IR, and instead modify only the ad file to pattern >>>> match the current Java implementation of Match.addExact(int, int) to make >>>> it emit a jo (jump-if-overflow) instruction for overflow detection, but it >>>> failed to compile. >>>> The patch is here: https://gist.github.com/**3818aa3acbc78e28e7fa >>>> >>>> (Aside: the Ideal graph of the overflow check expression is like this: >>>> http://dl.iteye.com/upload/**picture/pic/114476/674e0a78-** >>>> 5515-3da3-8ea6-6eedbeb32f8e.**png >>>> This is the state right before matching the matcher rules) >>>> >>>> ADLC didn't complain, but the generated jmpAddOverflowNode::Expand() >>>> function had compilation errors, saying: >>>> >>>> ../generated/adfiles/ad_x86_**64_expand.cpp: In member function >>>> ?virtual MachNode* jmpAddOverflowNode::Expand(**State*, Node_List&, >>>> Node*)?: >>>> ../generated/adfiles/ad_x86_**64_expand.cpp:5915: error: ?num8? was >>>> not declared in this scope >>>> >>>> Apparently I was doing something wrong in the ad file, but I don't >>>> quite get what it was. >>>> >>>> Regards, >>>> Kris >>>> >>> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120619/52891dcc/attachment-0001.html From christian.thalinger at oracle.com Tue Jun 19 11:12:58 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Tue, 19 Jun 2012 11:12:58 -0700 Subject: Request for reviews (S): 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() In-Reply-To: <4FDFFC9C.8010405@oracle.com> References: <4FDFFC9C.8010405@oracle.com> Message-ID: <67B061A4-C422-41D7-82C0-42CA836B5B28@oracle.com> On Jun 18, 2012, at 9:14 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7177923/webrev > > 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() > > The code in clear() initialize 3 arrays in a loop. Two arrays are int[] and one is boolean[]. After 7119644 changes all 3 are vectorized. Pre-loop iterations are adjusted to align access for int[] arrays since there are more memory accesses to them. A vector on sparc contains 2 integer values so 2 iterations are executed in pre-loop which is not enough to align boolean[] array (which has 8 elements in vector). As result vector store into boolean[] throw SIGBUS in main loop. > > The solution is disable vectorization of a memory access with more elements per vector than one which is used for alignment if unaligned memory access is not allowed. Looks good. > > Also fixed incorrect matching rules in x86.ad and re-factored method vector_width_in_bytes(). So the vectorization didn't work on x86? -- Chris > > Tested with failing tests on sparc. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Tue Jun 19 11:21:34 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 19 Jun 2012 11:21:34 -0700 Subject: Request for reviews (S): 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() In-Reply-To: <67B061A4-C422-41D7-82C0-42CA836B5B28@oracle.com> References: <4FDFFC9C.8010405@oracle.com> <67B061A4-C422-41D7-82C0-42CA836B5B28@oracle.com> Message-ID: <4FE0C32E.7090101@oracle.com> > So the vectorization didn't work on x86? It works, only memory loads are separate instructions and it needs additional instruction to move from general register to XMM registers. The fixed instructions load directly into XMM registers. Thanks, Vladimir Christian Thalinger wrote: > On Jun 18, 2012, at 9:14 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7177923/webrev >> >> 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() >> >> The code in clear() initialize 3 arrays in a loop. Two arrays are int[] and one is boolean[]. After 7119644 changes all 3 are vectorized. Pre-loop iterations are adjusted to align access for int[] arrays since there are more memory accesses to them. A vector on sparc contains 2 integer values so 2 iterations are executed in pre-loop which is not enough to align boolean[] array (which has 8 elements in vector). As result vector store into boolean[] throw SIGBUS in main loop. >> >> The solution is disable vectorization of a memory access with more elements per vector than one which is used for alignment if unaligned memory access is not allowed. > > Looks good. > >> Also fixed incorrect matching rules in x86.ad and re-factored method vector_width_in_bytes(). > > So the vectorization didn't work on x86? > > -- Chris > >> Tested with failing tests on sparc. >> >> Thanks, >> Vladimir > From john.r.rose at oracle.com Tue Jun 19 12:12:47 2012 From: john.r.rose at oracle.com (John Rose) Date: Tue, 19 Jun 2012 12:12:47 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: On Jun 19, 2012, at 7:07 AM, Krystal Mok wrote: > In the DivMod example, Div and Mod nodes with the same inputs start out floating separately, and get fused into a single DivMod late in Optimize(). The DivMod node type is a MultiNode with 2 projections, one for the div and the other for the mod. There's special treatment of DivMod in Matcher, and custom logic to match the projections. > > If I add a new node type AddIOverflow following the same model, I might get it like this: > https://gist.github.com/bdd13666e4796b09f36e > This node type would have 2 projections just like DivMod, one for the add, and the other for the overflow condition. (rename INT_CC ? INT_CC_PAIR for clarity) > Then there are two questions: > > 1. I'd need another new node type, presumably called "CheckAddIOverflow" here, that derives from CmpINode and acts as if it produces condition codes. AddI(a, b) and CheckAddIOverflow(a, b) float separately, just like the DivMod example. They get fused up late in Optimize() into the AddIOverflow shown above. Does this sound right? Yes, that sounds right. The names don't feel right, yet. What's the best term for a version of Add which is not subject to overflow? That's what the user will be trying to build. Maybe a word like "Checked" or "Safe" is best, rather than focusing on overflow. Maybe: AddI(a, b) plus CmpAddI(a, b) ? CheckedAddI(a, b) plus two projections yielding the first two values. You might be right about adding two new BoolNode states. That way you can think in terms of: if ((c = a + b) != 0) ? turning into c=AddI(a,b); cc=CmpAddI(a,b); if(Bool::nz(cc)) ? And overflow turns into the natural special case supported by the HW. > 2. With AddIOverflow going into the Matcher, how should I write the match rule in the ad file, to match: If(Bool(Proj(AddIOverflow(a, b)).overflow, ne), labl) ? > > Would it look like: match(If cop (AddIOverflow dest src)) ? (You have probably already noticed it; the matcher.cpp comment "Convert (If (Bool (CmpX A B))) into (If (Bool) (CmpX A B))" is highly relevant to matching If nodes. See also uses of BinaryNode.) Following the DivMod pattern, the matcher (in its current state) will have to match the CheckedAddI as a stand-alone node. Subtrees of matches can only have one use; this is a key matcher invariant. But every DivMod or CheckedAddI will have two uses: Its two projections. So you'll have: match(CheckedAddI); and the pre-existing rule: If(cop cmp) The cop will be Bool::ov (or Bool::nz in the example above) and the cmp will be CheckedAddI.cmp. You might think about extending the matcher machine to allow rules which specify the disposition of both projections: match( (If cop (Proj#1 (CheckedAddI a b))); (Set c (Proj#0 (CheckedAddI a b)))); This would be a Big Project. Long term, I believe it is worth thinking about ways to model instructions that do more than one thing at a time. > If the pair of overflow/non-overflow conditions are in BoolTest and in cmpOp, perhaps I wouldn't need to match the If node, and could just let jmpCon rule handle it as-is. > That way I just have to match AddIOverflow itself in the ad file, like DivMod. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120619/61a166ae/attachment.html From mikael.vidstedt at oracle.com Tue Jun 19 15:10:03 2012 From: mikael.vidstedt at oracle.com (Mikael Vidstedt) Date: Tue, 19 Jun 2012 15:10:03 -0700 Subject: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test In-Reply-To: <4FDB41DC.2090806@oracle.com> References: <8AC9F9DA-87A3-414A-894F-C21B5CA4FD98@oracle.com> <4FDA42BB.7040606@oracle.com> <95EE2087-CD0E-440D-99FD-C5DE156789BB@oracle.com> <4FDB41DC.2090806@oracle.com> Message-ID: <4FE0F8BB.1040105@oracle.com> On 2012-06-15 07:08, Daniel D. Daugherty wrote: > Is it just me or this whole function just crazy complicated??? It's just you. No. Wait. The other thing. Question: Does anybody know if the code blob guarded by UnguardOnExecutionViolation near the end of the function is actually being used? Cheers, Mikael From vladimir.kozlov at oracle.com Tue Jun 19 19:51:53 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Wed, 20 Jun 2012 02:51:53 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() Message-ID: <20120620025201.AEBAE47A14@hg.openjdk.java.net> Changeset: 6f8f439e247d Author: kvn Date: 2012-06-19 15:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6f8f439e247d 7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() Summary: disable vectorization of a memory access with more elements per vector than one which is used for alignment on sparc Reviewed-by: twisti ! src/cpu/x86/vm/x86.ad ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/superword.cpp ! src/share/vm/opto/superword.hpp From rednaxelafx at gmail.com Wed Jun 20 09:45:57 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 21 Jun 2012 00:45:57 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: Thank you for all your input, John and Vladimir! I'm close to getting some prototype that could actually run...but not there just yet. I've got Match.addExact(int, int) compiled down to this graph: http://dl.iteye.com/upload/picture/pic/114582/cc7535db-20d8-3e5d-9abd-b96456c7166c.png with the CheckedAddI node resembling the way DivModI works. But apparently I'm not getting the Matcher part right yet. I'm getting this error message: # Internal Error (/home/sajia/temp/hotspot-comp/src/share/vm/opto/matcher.cpp:1564), pid=16856, tid=1117243712 # assert(false) failed: bad AD file from this stack trace: V [libjvm.so+0xb10bea] VMError::report(outputStream*)+0xfa4 V [libjvm.so+0xb11f77] VMError::report_and_die()+0x649 V [libjvm.so+0x59e706] report_vm_error(char const*, int, char const*, char const*)+0x9c V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, Node*, Node const*)+0x48c V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x101e V [libjvm.so+0x47aa8c] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0xea V [libjvm.so+0x53e552] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x332 V [libjvm.so+0x540f10] CompileBroker::compiler_thread_loop()+0x2fa V [libjvm.so+0xabed88] compiler_thread_entry(JavaThread*, Thread*)+0x54 V [libjvm.so+0xac288c] JavaThread::thread_main_inner()+0x102 V [libjvm.so+0xac4f0b] JavaThread::run()+0xef V [libjvm.so+0x979557] java_start(Thread*)+0x16f The current status of the patch is avaiable here: https://gist.github.com/05f6f33cb01c7f5aedf3 I haven't done a full-fledged intrinsic for Math.addExact(int, int) yet; just as a prototype, I'm faking the use of CmpAddI node right now. At the end of Optimize(), I pattern match for the overflow checking logic, replace it with a new fake CmpAddI node, then make the actual CheckedAddI node from the CmpAddI, finally replace the old AddI and Bool nodes. Most of the changes besides the new nodes are for adding the overflow/no-overflow conditions to BoolTest and cmpOp. If there were separate AddI and CmpAddI nodes, they would have had a (Set dst ...) and (Set cr ...) in their match rule. But I can't see how I can express it here. Regards, Kris -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120621/99cf056f/attachment.html From vladimir.kozlov at oracle.com Wed Jun 20 15:13:07 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 20 Jun 2012 15:13:07 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: <4FE24AF3.50308@oracle.com> Look on output before assert message. It should have problematic ideal subgraph dump which it can't match. I think the problem is that you have Proj node in between If and CheckedAddI nodes so that it can't match 'If' node since it looks for inputs which produce flags (cr). May be CheckedAddINode::match() is not enough. Also you can't use EMPTY mask for data result projection. Bind it to an register as DivMod node. And use masm instructions encoding ins_encode %{ __ addl($dst$$Register, $src$$Register); %} instead of ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); Vladimir Krystal Mok wrote: > Thank you for all your input, John and Vladimir! > I'm close to getting some prototype that could actually run...but not > there just yet. > > I've got Match.addExact(int, int) compiled down to this graph: > http://dl.iteye.com/upload/picture/pic/114582/cc7535db-20d8-3e5d-9abd-b96456c7166c.png > with the CheckedAddI node resembling the way DivModI works. > > But apparently I'm not getting the Matcher part right yet. I'm getting > this error message: > > # Internal Error > (/home/sajia/temp/hotspot-comp/src/share/vm/opto/matcher.cpp:1564), > pid=16856, tid=1117243712 > # assert(false) failed: bad AD file > > from this stack trace: > > V [libjvm.so+0xb10bea] VMError::report(outputStream*)+0xfa4 > V [libjvm.so+0xb11f77] VMError::report_and_die()+0x649 > V [libjvm.so+0x59e706] report_vm_error(char const*, int, char const*, > char const*)+0x9c > V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, Node*, > Node const*)+0x48c > V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 > V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d > V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e > V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 > V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, > ciMethod*, int, bool, bool)+0x101e > V [libjvm.so+0x47aa8c] C2Compiler::compile_method(ciEnv*, ciMethod*, > int)+0xea > V [libjvm.so+0x53e552] > CompileBroker::invoke_compiler_on_method(CompileTask*)+0x332 > V [libjvm.so+0x540f10] CompileBroker::compiler_thread_loop()+0x2fa > V [libjvm.so+0xabed88] compiler_thread_entry(JavaThread*, Thread*)+0x54 > V [libjvm.so+0xac288c] JavaThread::thread_main_inner()+0x102 > V [libjvm.so+0xac4f0b] JavaThread::run()+0xef > V [libjvm.so+0x979557] java_start(Thread*)+0x16f > > The current status of the patch is avaiable here: > https://gist.github.com/05f6f33cb01c7f5aedf3 > > I haven't done a full-fledged intrinsic for Math.addExact(int, int) yet; > just as a prototype, I'm faking the use of CmpAddI node right now. At > the end of Optimize(), I pattern match for the overflow checking logic, > replace it with a new fake CmpAddI node, then make the actual > CheckedAddI node from the CmpAddI, finally replace the old AddI and Bool > nodes. > > Most of the changes besides the new nodes are for adding the > overflow/no-overflow conditions to BoolTest and cmpOp. > > If there were separate AddI and CmpAddI nodes, they would have had a > (Set dst ...) and (Set cr ...) in their match rule. But I can't see how > I can express it here. > > Regards, > Kris From rednaxelafx at gmail.com Wed Jun 20 16:41:17 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 21 Jun 2012 07:41:17 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE24AF3.50308@oracle.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> Message-ID: <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> Thanks for the reply! Comments inline below: On 2012-6-21, at 6:13, Vladimir Kozlov wrote: > Look on output before assert message. It should have problematic ideal subgraph dump which it can't match. > The output is: > I think the problem is that you have Proj node in between If and CheckedAddI nodes so that it can't match 'If' node since it looks for inputs which produce flags (cr). May be CheckedAddINode::match() is not enough. > You're right, that's exactly what's happening. > Also you can't use EMPTY mask for data result projection. Bind it to an register as DivMod node. > But in the DivMod case, both data projections had to be in fixed registers because that's required by idiv, where as here binding the sum projection to a fixed register (e.g. rax) would be less optimal, right? If only there's a way to express the (Set dest ...) semantic for CheckedAddI's data projection ... Anyway, binding it fixed should at least get the example running. I'll try this first and look for alternative solutions later. > And use masm instructions encoding > > ins_encode %{ > __ addl($dst$$Register, $src$$Register); > %} > > instead of > > ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); > Will fix this one. I just copied the code from the basic instruct for AddI, which is still using the old ins_encode form. Thanks, Kris > Vladimir > > Krystal Mok wrote: >> Thank you for all your input, John and Vladimir! >> I'm close to getting some prototype that could actually run...but not there just yet. >> I've got Match.addExact(int, int) compiled down to this graph: >> http://dl.iteye.com/upload/picture/pic/114582/cc7535db-20d8-3e5d-9abd-b96456c7166c.png >> with the CheckedAddI node resembling the way DivModI works. >> But apparently I'm not getting the Matcher part right yet. I'm getting this error message: >> # Internal Error (/home/sajia/temp/hotspot-comp/src/share/vm/opto/matcher.cpp:1564), pid=16856, tid=1117243712 >> # assert(false) failed: bad AD file >> from this stack trace: >> V [libjvm.so+0xb10bea] VMError::report(outputStream*)+0xfa4 >> V [libjvm.so+0xb11f77] VMError::report_and_die()+0x649 >> V [libjvm.so+0x59e706] report_vm_error(char const*, int, char const*, char const*)+0x9c >> V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, Node*, Node const*)+0x48c >> V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 >> V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d >> V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e >> V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 >> V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x101e >> V [libjvm.so+0x47aa8c] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0xea >> V [libjvm.so+0x53e552] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x332 >> V [libjvm.so+0x540f10] CompileBroker::compiler_thread_loop()+0x2fa >> V [libjvm.so+0xabed88] compiler_thread_entry(JavaThread*, Thread*)+0x54 >> V [libjvm.so+0xac288c] JavaThread::thread_main_inner()+0x102 >> V [libjvm.so+0xac4f0b] JavaThread::run()+0xef >> V [libjvm.so+0x979557] java_start(Thread*)+0x16f >> The current status of the patch is avaiable here: >> https://gist.github.com/05f6f33cb01c7f5aedf3 >> I haven't done a full-fledged intrinsic for Math.addExact(int, int) yet; just as a prototype, I'm faking the use of CmpAddI node right now. At the end of Optimize(), I pattern match for the overflow checking logic, replace it with a new fake CmpAddI node, then make the actual CheckedAddI node from the CmpAddI, finally replace the old AddI and Bool nodes. >> Most of the changes besides the new nodes are for adding the overflow/no-overflow conditions to BoolTest and cmpOp. >> If there were separate AddI and CmpAddI nodes, they would have had a (Set dst ...) and (Set cr ...) in their match rule. But I can't see how I can express it here. >> Regards, >> Kris From vladimir.kozlov at oracle.com Wed Jun 20 17:03:19 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 20 Jun 2012 17:03:19 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> Message-ID: <4FE264C7.1020608@oracle.com> Krystal Mok wrote: > Thanks for the reply! Comments inline below: > > On 2012-6-21, at 6:13, Vladimir Kozlov wrote: > >> Look on output before assert message. It should have problematic ideal subgraph dump which it can't match. >> > The output is: You did not send output. > >> I think the problem is that you have Proj node in between If and CheckedAddI nodes so that it can't match 'If' node since it looks for inputs which produce flags (cr). May be CheckedAddINode::match() is not enough. >> > You're right, that's exactly what's happening. > >> Also you can't use EMPTY mask for data result projection. Bind it to an register as DivMod node. >> Mask should reflect in what registers could be result. You don't need to bind to specific register but you need to return non-empty mask, for example, INT_REG_mask(). And for flag projection you need INT_FLAGS_mask(). Vladimir > But in the DivMod case, both data projections had to be in fixed registers because that's required by idiv, where as here binding the sum projection to a fixed register (e.g. rax) would be less optimal, right? > > If only there's a way to express the (Set dest ...) semantic for CheckedAddI's data projection ... > > Anyway, binding it fixed should at least get the example running. I'll try this first and look for alternative solutions later. > >> And use masm instructions encoding >> >> ins_encode %{ >> __ addl($dst$$Register, $src$$Register); >> %} >> >> instead of >> >> ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); >> > Will fix this one. I just copied the code from the basic instruct for AddI, which is still using the old ins_encode form. > > Thanks, > Kris > >> Vladimir >> >> Krystal Mok wrote: >>> Thank you for all your input, John and Vladimir! >>> I'm close to getting some prototype that could actually run...but not there just yet. >>> I've got Match.addExact(int, int) compiled down to this graph: >>> http://dl.iteye.com/upload/picture/pic/114582/cc7535db-20d8-3e5d-9abd-b96456c7166c.png >>> with the CheckedAddI node resembling the way DivModI works. >>> But apparently I'm not getting the Matcher part right yet. I'm getting this error message: >>> # Internal Error (/home/sajia/temp/hotspot-comp/src/share/vm/opto/matcher.cpp:1564), pid=16856, tid=1117243712 >>> # assert(false) failed: bad AD file >>> from this stack trace: >>> V [libjvm.so+0xb10bea] VMError::report(outputStream*)+0xfa4 >>> V [libjvm.so+0xb11f77] VMError::report_and_die()+0x649 >>> V [libjvm.so+0x59e706] report_vm_error(char const*, int, char const*, char const*)+0x9c >>> V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, Node*, Node const*)+0x48c >>> V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 >>> V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d >>> V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e >>> V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 >>> V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x101e >>> V [libjvm.so+0x47aa8c] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0xea >>> V [libjvm.so+0x53e552] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x332 >>> V [libjvm.so+0x540f10] CompileBroker::compiler_thread_loop()+0x2fa >>> V [libjvm.so+0xabed88] compiler_thread_entry(JavaThread*, Thread*)+0x54 >>> V [libjvm.so+0xac288c] JavaThread::thread_main_inner()+0x102 >>> V [libjvm.so+0xac4f0b] JavaThread::run()+0xef >>> V [libjvm.so+0x979557] java_start(Thread*)+0x16f >>> The current status of the patch is avaiable here: >>> https://gist.github.com/05f6f33cb01c7f5aedf3 >>> I haven't done a full-fledged intrinsic for Math.addExact(int, int) yet; just as a prototype, I'm faking the use of CmpAddI node right now. At the end of Optimize(), I pattern match for the overflow checking logic, replace it with a new fake CmpAddI node, then make the actual CheckedAddI node from the CmpAddI, finally replace the old AddI and Bool nodes. >>> Most of the changes besides the new nodes are for adding the overflow/no-overflow conditions to BoolTest and cmpOp. >>> If there were separate AddI and CmpAddI nodes, they would have had a (Set dst ...) and (Set cr ...) in their match rule. But I can't see how I can express it here. >>> Regards, >>> Kris From rednaxelafx at gmail.com Wed Jun 20 17:28:41 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 21 Jun 2012 08:28:41 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE264C7.1020608@oracle.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> <4FE264C7.1020608@oracle.com> Message-ID: On Thu, Jun 21, 2012 at 8:03 AM, Vladimir Kozlov wrote: > Krystal Mok wrote: > >> Thanks for the reply! Comments inline below: >> >> On 2012-6-21, at 6:13, Vladimir Kozlov >> wrote: >> >> Look on output before assert message. It should have problematic ideal >>> subgraph dump which it can't match. >>> >>> The output is: >> > > You did not send output. > > Oops, I hit the send button too early ... Here's the output: o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 --N: o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 --N: o46 Bool === _ o45 [[o30 ]] [??] CMPOP 0 CMPOP CMPOPU 0 CMPOPU --N: o45 Proj === o43 [[o46 o30 ]] #1 RREGI 0 RREGI RAX_REGI 0 RAX_REGI RBX_REGI 0 RBX_REGI RCX_REGI 0 RCX_REGI RDX_REGI 0 RDX_REGI RDI_REGI 0 RDI_REGI NO_RCX_REGI 0 NO_RCX_REGI NO_RAX_RDX_REGI 0 NO_RAX_RDX_REGI STACKSLOTI 100 storeSSI > > >> I think the problem is that you have Proj node in between If and >>> CheckedAddI nodes so that it can't match 'If' node since it looks for >>> inputs which produce flags (cr). May be CheckedAddINode::match() is not >>> enough. >>> >>> You're right, that's exactly what's happening. >> > One more question on this one: how does the matcher know that the data projection should be in the same location as the dst input? There's nowhere to specify it. > >> Also you can't use EMPTY mask for data result projection. Bind it to an >>> register as DivMod node. >>> >>> > Mask should reflect in what registers could be result. You don't need to > bind to specific register but you need to return non-empty mask, for > example, INT_REG_mask(). And for flag projection you need INT_FLAGS_mask(). Ahh, so the register class declaration for RFLAGS moved to x86.ad ... no wonder I couldn't find it when I searched x86_64.ad. I'm still getting the same crash after I changed CheckedAddINode::match() to this: Node* CheckedAddINode::match(const ProjNode* proj, const Matcher* match) { uint ideal_reg = proj->ideal_reg(); RegMask rm = RegMask::Empty; if (proj->_con == sum_proj_num) { rm = match->checkedAddI_sum_proj_mask(); } else { assert(proj->_con == overflow_proj_num, "must be sum or overflow projection"); ideal_reg = Op_RegFlags; rm = match->overflow_proj_mask(); } return new (match->C, 1) MachProjNode(this, proj->_con, rm, ideal_reg); } Where both RegMasks specified as suggested above. The output log is still the same. Thanks, Kris > > > Vladimir > > > But in the DivMod case, both data projections had to be in fixed >> registers because that's required by idiv, where as here binding the sum >> projection to a fixed register (e.g. rax) would be less optimal, right? >> >> If only there's a way to express the (Set dest ...) semantic for >> CheckedAddI's data projection ... >> >> Anyway, binding it fixed should at least get the example running. I'll >> try this first and look for alternative solutions later. >> >> And use masm instructions encoding >>> >>> ins_encode %{ >>> __ addl($dst$$Register, $src$$Register); >>> %} >>> >>> instead of >>> >>> ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); >>> >>> Will fix this one. I just copied the code from the basic instruct for >> AddI, which is still using the old ins_encode form. >> >> Thanks, >> Kris >> >> Vladimir >>> >>> Krystal Mok wrote: >>> >>>> Thank you for all your input, John and Vladimir! >>>> I'm close to getting some prototype that could actually run...but not >>>> there just yet. >>>> I've got Match.addExact(int, int) compiled down to this graph: >>>> http://dl.iteye.com/upload/**picture/pic/114582/cc7535db-** >>>> 20d8-3e5d-9abd-b96456c7166c.**png >>>> with the CheckedAddI node resembling the way DivModI works. >>>> But apparently I'm not getting the Matcher part right yet. I'm getting >>>> this error message: >>>> # Internal Error (/home/sajia/temp/hotspot-**comp/src/share/vm/opto/**matcher.cpp:1564), >>>> pid=16856, tid=1117243712 >>>> # assert(false) failed: bad AD file >>>> from this stack trace: >>>> V [libjvm.so+0xb10bea] VMError::report(outputStream*)**+0xfa4 >>>> V [libjvm.so+0xb11f77] VMError::report_and_die()+**0x649 >>>> V [libjvm.so+0x59e706] report_vm_error(char const*, int, char const*, >>>> char const*)+0x9c >>>> V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, >>>> Node*, Node const*)+0x48c >>>> V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 >>>> V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d >>>> V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e >>>> V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 >>>> V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, >>>> ciMethod*, int, bool, bool)+0x101e >>>> V [libjvm.so+0x47aa8c] C2Compiler::compile_method(**ciEnv*, >>>> ciMethod*, int)+0xea >>>> V [libjvm.so+0x53e552] CompileBroker::invoke_**compiler_on_method(** >>>> CompileTask*)+0x332 >>>> V [libjvm.so+0x540f10] CompileBroker::compiler_**thread_loop()+0x2fa >>>> V [libjvm.so+0xabed88] compiler_thread_entry(**JavaThread*, >>>> Thread*)+0x54 >>>> V [libjvm.so+0xac288c] JavaThread::thread_main_inner(**)+0x102 >>>> V [libjvm.so+0xac4f0b] JavaThread::run()+0xef >>>> V [libjvm.so+0x979557] java_start(Thread*)+0x16f >>>> The current status of the patch is avaiable here: >>>> https://gist.github.com/**05f6f33cb01c7f5aedf3 >>>> I haven't done a full-fledged intrinsic for Math.addExact(int, int) >>>> yet; just as a prototype, I'm faking the use of CmpAddI node right now. At >>>> the end of Optimize(), I pattern match for the overflow checking logic, >>>> replace it with a new fake CmpAddI node, then make the actual CheckedAddI >>>> node from the CmpAddI, finally replace the old AddI and Bool nodes. >>>> Most of the changes besides the new nodes are for adding the >>>> overflow/no-overflow conditions to BoolTest and cmpOp. >>>> If there were separate AddI and CmpAddI nodes, they would have had a >>>> (Set dst ...) and (Set cr ...) in their match rule. But I can't see how I >>>> can express it here. >>>> Regards, >>>> Kris >>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120621/b40782b1/attachment-0001.html From rednaxelafx at gmail.com Wed Jun 20 18:29:25 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 21 Jun 2012 09:29:25 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> <4FE264C7.1020608@oracle.com> Message-ID: I traced the compilation, and found that CheckedAddINode::match() was never called before hitting the assert. The available rules for Proj #1 (the conditions projection) doesn't look right in the output log, does it? - Kris On Thu, Jun 21, 2012 at 8:28 AM, Krystal Mok wrote: > On Thu, Jun 21, 2012 at 8:03 AM, Vladimir Kozlov < > vladimir.kozlov at oracle.com> wrote: > >> Krystal Mok wrote: >> >>> Thanks for the reply! Comments inline below: >>> >>> On 2012-6-21, at 6:13, Vladimir Kozlov >>> wrote: >>> >>> Look on output before assert message. It should have problematic ideal >>>> subgraph dump which it can't match. >>>> >>>> The output is: >>> >> >> You did not send output. >> >> Oops, I hit the send button too early ... > > Here's the output: > > o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o46 Bool === _ o45 [[o30 ]] [??] > CMPOP 0 CMPOP > CMPOPU 0 CMPOPU > > --N: o45 Proj === o43 [[o46 o30 ]] #1 > RREGI 0 RREGI > RAX_REGI 0 RAX_REGI > RBX_REGI 0 RBX_REGI > RCX_REGI 0 RCX_REGI > RDX_REGI 0 RDX_REGI > RDI_REGI 0 RDI_REGI > NO_RCX_REGI 0 NO_RCX_REGI > NO_RAX_RDX_REGI 0 NO_RAX_RDX_REGI > STACKSLOTI 100 storeSSI > > > >> >> >>> I think the problem is that you have Proj node in between If and >>>> CheckedAddI nodes so that it can't match 'If' node since it looks for >>>> inputs which produce flags (cr). May be CheckedAddINode::match() is not >>>> enough. >>>> >>>> You're right, that's exactly what's happening. >>> >> > One more question on this one: how does the matcher know that the data > projection should be in the same location as the dst input? There's nowhere > to specify it. > > >> >>> Also you can't use EMPTY mask for data result projection. Bind it to an >>>> register as DivMod node. >>>> >>>> >> Mask should reflect in what registers could be result. You don't need to >> bind to specific register but you need to return non-empty mask, for >> example, INT_REG_mask(). And for flag projection you need INT_FLAGS_mask(). > > > Ahh, so the register class declaration for RFLAGS moved to x86.ad ... no > wonder I couldn't find it when I searched x86_64.ad. > > I'm still getting the same crash after I changed CheckedAddINode::match() > to this: > > Node* CheckedAddINode::match(const ProjNode* proj, const Matcher* match) { > uint ideal_reg = proj->ideal_reg(); > RegMask rm = RegMask::Empty; > if (proj->_con == sum_proj_num) { > rm = match->checkedAddI_sum_proj_mask(); > } else { > assert(proj->_con == overflow_proj_num, "must be sum or overflow > projection"); > ideal_reg = Op_RegFlags; > rm = match->overflow_proj_mask(); > } > return new (match->C, 1) MachProjNode(this, proj->_con, rm, ideal_reg); > } > > Where both RegMasks specified as suggested above. The output log is still > the same. > > Thanks, > Kris > > >> >> >> Vladimir >> >> >> But in the DivMod case, both data projections had to be in fixed >>> registers because that's required by idiv, where as here binding the sum >>> projection to a fixed register (e.g. rax) would be less optimal, right? >>> >>> If only there's a way to express the (Set dest ...) semantic for >>> CheckedAddI's data projection ... >>> >>> Anyway, binding it fixed should at least get the example running. I'll >>> try this first and look for alternative solutions later. >>> >>> And use masm instructions encoding >>>> >>>> ins_encode %{ >>>> __ addl($dst$$Register, $src$$Register); >>>> %} >>>> >>>> instead of >>>> >>>> ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); >>>> >>>> Will fix this one. I just copied the code from the basic instruct for >>> AddI, which is still using the old ins_encode form. >>> >>> Thanks, >>> Kris >>> >>> Vladimir >>>> >>>> Krystal Mok wrote: >>>> >>>>> Thank you for all your input, John and Vladimir! >>>>> I'm close to getting some prototype that could actually run...but not >>>>> there just yet. >>>>> I've got Match.addExact(int, int) compiled down to this graph: >>>>> http://dl.iteye.com/upload/**picture/pic/114582/cc7535db-** >>>>> 20d8-3e5d-9abd-b96456c7166c.**png >>>>> with the CheckedAddI node resembling the way DivModI works. >>>>> But apparently I'm not getting the Matcher part right yet. I'm getting >>>>> this error message: >>>>> # Internal Error (/home/sajia/temp/hotspot-**comp/src/share/vm/opto/* >>>>> *matcher.cpp:1564), pid=16856, tid=1117243712 >>>>> # assert(false) failed: bad AD file >>>>> from this stack trace: >>>>> V [libjvm.so+0xb10bea] VMError::report(outputStream*)**+0xfa4 >>>>> V [libjvm.so+0xb11f77] VMError::report_and_die()+**0x649 >>>>> V [libjvm.so+0x59e706] report_vm_error(char const*, int, char >>>>> const*, char const*)+0x9c >>>>> V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node const*, State*, >>>>> Node*, Node const*)+0x48c >>>>> V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node const*)+0x205 >>>>> V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d >>>>> V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e >>>>> V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 >>>>> V [libjvm.so+0x537678] Compile::Compile(ciEnv*, C2Compiler*, >>>>> ciMethod*, int, bool, bool)+0x101e >>>>> V [libjvm.so+0x47aa8c] C2Compiler::compile_method(**ciEnv*, >>>>> ciMethod*, int)+0xea >>>>> V [libjvm.so+0x53e552] CompileBroker::invoke_**compiler_on_method(** >>>>> CompileTask*)+0x332 >>>>> V [libjvm.so+0x540f10] CompileBroker::compiler_**thread_loop()+0x2fa >>>>> V [libjvm.so+0xabed88] compiler_thread_entry(**JavaThread*, >>>>> Thread*)+0x54 >>>>> V [libjvm.so+0xac288c] JavaThread::thread_main_inner(**)+0x102 >>>>> V [libjvm.so+0xac4f0b] JavaThread::run()+0xef >>>>> V [libjvm.so+0x979557] java_start(Thread*)+0x16f >>>>> The current status of the patch is avaiable here: >>>>> https://gist.github.com/**05f6f33cb01c7f5aedf3 >>>>> I haven't done a full-fledged intrinsic for Math.addExact(int, int) >>>>> yet; just as a prototype, I'm faking the use of CmpAddI node right now. At >>>>> the end of Optimize(), I pattern match for the overflow checking logic, >>>>> replace it with a new fake CmpAddI node, then make the actual CheckedAddI >>>>> node from the CmpAddI, finally replace the old AddI and Bool nodes. >>>>> Most of the changes besides the new nodes are for adding the >>>>> overflow/no-overflow conditions to BoolTest and cmpOp. >>>>> If there were separate AddI and CmpAddI nodes, they would have had a >>>>> (Set dst ...) and (Set cr ...) in their match rule. But I can't see how I >>>>> can express it here. >>>>> Regards, >>>>> Kris >>>>> >>>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120621/6deb0585/attachment.html From vladimir.kozlov at oracle.com Wed Jun 20 19:03:42 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 20 Jun 2012 19:03:42 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> <4FE264C7.1020608@oracle.com> Message-ID: <4FE280FE.6050402@oracle.com> As you see "o45 Proj === o43" does not produce RFLAG so matcher can't match it. ProjNode::ideal_reg() for overflow_proj_num should return Op_RegFlags. Vladimir Krystal Mok wrote: > On Thu, Jun 21, 2012 at 8:03 AM, Vladimir Kozlov > > wrote: > > Krystal Mok wrote: > > Thanks for the reply! Comments inline below: > > On 2012-6-21, at 6:13, Vladimir Kozlov > > > wrote: > > Look on output before assert message. It should have > problematic ideal subgraph dump which it can't match. > > The output is: > > > You did not send output. > > Oops, I hit the send button too early ... > > Here's the output: > > o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o46 Bool === _ o45 [[o30 ]] [??] > CMPOP 0 CMPOP > CMPOPU 0 CMPOPU > > --N: o45 Proj === o43 [[o46 o30 ]] #1 > RREGI 0 RREGI > RAX_REGI 0 RAX_REGI > RBX_REGI 0 RBX_REGI > RCX_REGI 0 RCX_REGI > RDX_REGI 0 RDX_REGI > RDI_REGI 0 RDI_REGI > NO_RCX_REGI 0 NO_RCX_REGI > NO_RAX_RDX_REGI 0 NO_RAX_RDX_REGI > STACKSLOTI 100 storeSSI > > > > > > I think the problem is that you have Proj node in between If > and CheckedAddI nodes so that it can't match 'If' node since > it looks for inputs which produce flags (cr). May be > CheckedAddINode::match() is not enough. > > You're right, that's exactly what's happening. > > > One more question on this one: how does the matcher know that the data > projection should be in the same location as the dst input? There's > nowhere to specify it. > > > > Also you can't use EMPTY mask for data result projection. > Bind it to an register as DivMod node. > > > Mask should reflect in what registers could be result. You don't > need to bind to specific register but you need to return non-empty > mask, for example, INT_REG_mask(). And for flag projection you need > INT_FLAGS_mask(). > > > Ahh, so the register class declaration for RFLAGS moved to x86.ad > ... no wonder I couldn't find it when I searched > x86_64.ad . > > I'm still getting the same crash after I changed > CheckedAddINode::match() to this: > > Node* CheckedAddINode::match(const ProjNode* proj, const Matcher* match) { > uint ideal_reg = proj->ideal_reg(); > RegMask rm = RegMask::Empty; > if (proj->_con == sum_proj_num) { > rm = match->checkedAddI_sum_proj_mask(); > } else { > assert(proj->_con == overflow_proj_num, "must be sum or overflow > projection"); > ideal_reg = Op_RegFlags; > rm = match->overflow_proj_mask(); > } > return new (match->C, 1) MachProjNode(this, proj->_con, rm, ideal_reg); > } > > Where both RegMasks specified as suggested above. The output log is > still the same. > > Thanks, > Kris > > > > > Vladimir > > > But in the DivMod case, both data projections had to be in fixed > registers because that's required by idiv, where as here binding > the sum projection to a fixed register (e.g. rax) would be less > optimal, right? > > If only there's a way to express the (Set dest ...) semantic for > CheckedAddI's data projection ... > > Anyway, binding it fixed should at least get the example > running. I'll try this first and look for alternative solutions > later. > > And use masm instructions encoding > > ins_encode %{ > __ addl($dst$$Register, $src$$Register); > %} > > instead of > > ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); > > Will fix this one. I just copied the code from the basic > instruct for AddI, which is still using the old ins_encode form. > > Thanks, > Kris > > Vladimir > > Krystal Mok wrote: > > Thank you for all your input, John and Vladimir! > I'm close to getting some prototype that could actually > run...but not there just yet. > I've got Match.addExact(int, int) compiled down to this > graph: > http://dl.iteye.com/upload/__picture/pic/114582/cc7535db-__20d8-3e5d-9abd-b96456c7166c.__png > > with the CheckedAddI node resembling the way DivModI works. > But apparently I'm not getting the Matcher part right > yet. I'm getting this error message: > # Internal Error > (/home/sajia/temp/hotspot-__comp/src/share/vm/opto/__matcher.cpp:1564), > pid=16856, tid=1117243712 > # assert(false) failed: bad AD file > from this stack trace: > V [libjvm.so+0xb10bea] > VMError::report(outputStream*)__+0xfa4 > V [libjvm.so+0xb11f77] VMError::report_and_die()+__0x649 > V [libjvm.so+0x59e706] report_vm_error(char const*, > int, char const*, char const*)+0x9c > V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node > const*, State*, Node*, Node const*)+0x48c > V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node > const*)+0x205 > V [libjvm.so+0x8d6397] Matcher::xform(Node*, int)+0x16d > V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e > V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 > V [libjvm.so+0x537678] Compile::Compile(ciEnv*, > C2Compiler*, ciMethod*, int, bool, bool)+0x101e > V [libjvm.so+0x47aa8c] > C2Compiler::compile_method(__ciEnv*, ciMethod*, int)+0xea > V [libjvm.so+0x53e552] > CompileBroker::invoke___compiler_on_method(__CompileTask*)+0x332 > V [libjvm.so+0x540f10] > CompileBroker::compiler___thread_loop()+0x2fa > V [libjvm.so+0xabed88] > compiler_thread_entry(__JavaThread*, Thread*)+0x54 > V [libjvm.so+0xac288c] > JavaThread::thread_main_inner(__)+0x102 > V [libjvm.so+0xac4f0b] JavaThread::run()+0xef > V [libjvm.so+0x979557] java_start(Thread*)+0x16f > The current status of the patch is avaiable here: > https://gist.github.com/__05f6f33cb01c7f5aedf3 > > I haven't done a full-fledged intrinsic for > Math.addExact(int, int) yet; just as a prototype, I'm > faking the use of CmpAddI node right now. At the end of > Optimize(), I pattern match for the overflow checking > logic, replace it with a new fake CmpAddI node, then > make the actual CheckedAddI node from the CmpAddI, > finally replace the old AddI and Bool nodes. > Most of the changes besides the new nodes are for adding > the overflow/no-overflow conditions to BoolTest and cmpOp. > If there were separate AddI and CmpAddI nodes, they > would have had a (Set dst ...) and (Set cr ...) in their > match rule. But I can't see how I can express it here. > Regards, > Kris > > From vladimir.kozlov at oracle.com Wed Jun 20 19:07:34 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Wed, 20 Jun 2012 19:07:34 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> <4FE264C7.1020608@oracle.com> Message-ID: <4FE281E6.1080200@oracle.com> C2 matchs from bottom to top of graph. So first it tries to match If node and failed. In second mail I explained that State for Proj node is incorrect for your case because ideal_reg() is incorrect: s->DFA( m->ideal_reg(), m ); Vladimir Krystal Mok wrote: > I traced the compilation, and found that CheckedAddINode::match() was > never called before hitting the assert. > The available rules for Proj #1 (the conditions projection) doesn't look > right in the output log, does it? > > - Kris > > On Thu, Jun 21, 2012 at 8:28 AM, Krystal Mok > wrote: > > On Thu, Jun 21, 2012 at 8:03 AM, Vladimir Kozlov > > wrote: > > Krystal Mok wrote: > > Thanks for the reply! Comments inline below: > > On 2012-6-21, at 6:13, Vladimir Kozlov > > wrote: > > Look on output before assert message. It should have > problematic ideal subgraph dump which it can't match. > > The output is: > > > You did not send output. > > Oops, I hit the send button too early ... > > Here's the output: > > o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o30 If === o5 o46 o45 [[o31 o32 6 ]] P=0.000001, C=-1.000000 > > --N: o46 Bool === _ o45 [[o30 ]] [??] > CMPOP 0 CMPOP > CMPOPU 0 CMPOPU > > --N: o45 Proj === o43 [[o46 o30 ]] #1 > RREGI 0 RREGI > RAX_REGI 0 RAX_REGI > RBX_REGI 0 RBX_REGI > RCX_REGI 0 RCX_REGI > RDX_REGI 0 RDX_REGI > RDI_REGI 0 RDI_REGI > NO_RCX_REGI 0 NO_RCX_REGI > NO_RAX_RDX_REGI 0 NO_RAX_RDX_REGI > STACKSLOTI 100 storeSSI > > > > > > I think the problem is that you have Proj node in > between If and CheckedAddI nodes so that it can't match > 'If' node since it looks for inputs which produce flags > (cr). May be CheckedAddINode::match() is not enough. > > You're right, that's exactly what's happening. > > > One more question on this one: how does the matcher know that the > data projection should be in the same location as the dst input? > There's nowhere to specify it. > > > > Also you can't use EMPTY mask for data result > projection. Bind it to an register as DivMod node. > > > Mask should reflect in what registers could be result. You don't > need to bind to specific register but you need to return > non-empty mask, for example, INT_REG_mask(). And for flag > projection you need INT_FLAGS_mask(). > > > Ahh, so the register class declaration for RFLAGS moved to x86.ad > ... no wonder I couldn't find it when I searched > x86_64.ad . > > I'm still getting the same crash after I changed > CheckedAddINode::match() to this: > > Node* CheckedAddINode::match(const ProjNode* proj, const Matcher* > match) { > uint ideal_reg = proj->ideal_reg(); > RegMask rm = RegMask::Empty; > if (proj->_con == sum_proj_num) { > rm = match->checkedAddI_sum_proj_mask(); > } else { > assert(proj->_con == overflow_proj_num, "must be sum or overflow > projection"); > ideal_reg = Op_RegFlags; > rm = match->overflow_proj_mask(); > } > return new (match->C, 1) MachProjNode(this, proj->_con, rm, > ideal_reg); > } > > Where both RegMasks specified as suggested above. The output log is > still the same. > > Thanks, > Kris > > > > > Vladimir > > > But in the DivMod case, both data projections had to be in > fixed registers because that's required by idiv, where as > here binding the sum projection to a fixed register (e.g. > rax) would be less optimal, right? > > If only there's a way to express the (Set dest ...) semantic > for CheckedAddI's data projection ... > > Anyway, binding it fixed should at least get the example > running. I'll try this first and look for alternative > solutions later. > > And use masm instructions encoding > > ins_encode %{ > __ addl($dst$$Register, $src$$Register); > %} > > instead of > > ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); > > Will fix this one. I just copied the code from the basic > instruct for AddI, which is still using the old ins_encode form. > > Thanks, > Kris > > Vladimir > > Krystal Mok wrote: > > Thank you for all your input, John and Vladimir! > I'm close to getting some prototype that could > actually run...but not there just yet. > I've got Match.addExact(int, int) compiled down to > this graph: > http://dl.iteye.com/upload/__picture/pic/114582/cc7535db-__20d8-3e5d-9abd-b96456c7166c.__png > > with the CheckedAddI node resembling the way DivModI > works. > But apparently I'm not getting the Matcher part > right yet. I'm getting this error message: > # Internal Error > (/home/sajia/temp/hotspot-__comp/src/share/vm/opto/__matcher.cpp:1564), > pid=16856, tid=1117243712 > # assert(false) failed: bad AD file > from this stack trace: > V [libjvm.so+0xb10bea] > VMError::report(outputStream*)__+0xfa4 > V [libjvm.so+0xb11f77] > VMError::report_and_die()+__0x649 > V [libjvm.so+0x59e706] report_vm_error(char > const*, int, char const*, char const*)+0x9c > V [libjvm.so+0x8d4af0] Matcher::Label_Root(Node > const*, State*, Node*, Node const*)+0x48c > V [libjvm.so+0x8d4d0f] Matcher::match_tree(Node > const*)+0x205 > V [libjvm.so+0x8d6397] Matcher::xform(Node*, > int)+0x16d > V [libjvm.so+0x8d9ea2] Matcher::match()+0xb0e > V [libjvm.so+0x52e20f] Compile::Code_Gen()+0x91 > V [libjvm.so+0x537678] Compile::Compile(ciEnv*, > C2Compiler*, ciMethod*, int, bool, bool)+0x101e > V [libjvm.so+0x47aa8c] > C2Compiler::compile_method(__ciEnv*, ciMethod*, > int)+0xea > V [libjvm.so+0x53e552] > CompileBroker::invoke___compiler_on_method(__CompileTask*)+0x332 > V [libjvm.so+0x540f10] > CompileBroker::compiler___thread_loop()+0x2fa > V [libjvm.so+0xabed88] > compiler_thread_entry(__JavaThread*, Thread*)+0x54 > V [libjvm.so+0xac288c] > JavaThread::thread_main_inner(__)+0x102 > V [libjvm.so+0xac4f0b] JavaThread::run()+0xef > V [libjvm.so+0x979557] java_start(Thread*)+0x16f > The current status of the patch is avaiable here: > https://gist.github.com/__05f6f33cb01c7f5aedf3 > > I haven't done a full-fledged intrinsic for > Math.addExact(int, int) yet; just as a prototype, > I'm faking the use of CmpAddI node right now. At the > end of Optimize(), I pattern match for the overflow > checking logic, replace it with a new fake CmpAddI > node, then make the actual CheckedAddI node from the > CmpAddI, finally replace the old AddI and Bool nodes. > Most of the changes besides the new nodes are for > adding the overflow/no-overflow conditions to > BoolTest and cmpOp. > If there were separate AddI and CmpAddI nodes, they > would have had a (Set dst ...) and (Set cr ...) in > their match rule. But I can't see how I can express > it here. > Regards, > Kris > > > From rednaxelafx at gmail.com Wed Jun 20 22:04:26 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Thu, 21 Jun 2012 13:04:26 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FE281E6.1080200@oracle.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FE24AF3.50308@oracle.com> <84E946D9-CD13-4B1A-88FE-B11B0E1BD6D5@gmail.com> <4FE264C7.1020608@oracle.com> <4FE281E6.1080200@oracle.com> Message-ID: Got the jo instruction emitted now. Thanks Vladimir! I added a new FlagsProjNode type that derives from ProjNode, and explicitly overrides bottom_type() and ideal_reg() to TypeInt::CC and Op_RegFlags, respectively. That enabled the projection node matching to work. Current status of the patch is avaiable here: https://gist.github.com/b24382a3dda090ab63ff But there are still some unexpected behavior. I was expecting the Bool(... [ov]) node to be matched into a cmpOp, and the If node to be matched into a jmpCon; instead, they're actually matched into the unsigned version. Can't figure out what was going on yet. The IR graph of Math.addExact(int, int), after Optimize(): http://dl.iteye.com/upload/picture/pic/114606/0e8e47af-729e-36ca-baee-ed15174dd178.png before matching: http://dl.iteye.com/upload/picture/pic/114610/05e81e91-ef99-3d9c-a543-12dacb9c2ae4.png (so far so good) after matching and GCM: http://dl.iteye.com/upload/picture/pic/114612/da53b8cf-3ed2-30d2-9cfa-a1a43e94a4c2.png (oops...got jmpConU instead of the expected jmpCon) Another problem is that I had to use a fixed register for the "dst" of checkedAddI_reg and its data result projection. In this case I'm using eax; but any fixed RegI will do. The cause is stated before: I don't know how to specify the relationship between the "dst" of checkedAddI_reg and its data result projection, so as to make them use the same register. If I can fix these two problems, then I'll go back and make a full-fledged intrinsic for Math.addExact(int, int). The way I pattern match the overflow checking logic wouldn't work when Math.addExact(int, int) is inlined into a caller with complex control-flow. Thanks, Kris On Thu, Jun 21, 2012 at 10:07 AM, Vladimir Kozlov < vladimir.kozlov at oracle.com> wrote: > C2 matchs from bottom to top of graph. So first it tries to match If node > and failed. In second mail I explained that State for Proj node is > incorrect for your case because ideal_reg() is incorrect: > > s->DFA( m->ideal_reg(), m ); > > Vladimir > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120621/162223cb/attachment.html From roland.westrelin at oracle.com Thu Jun 21 03:40:09 2012 From: roland.westrelin at oracle.com (roland.westrelin at oracle.com) Date: Thu, 21 Jun 2012 10:40:09 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7129715: MAC: SIGBUS in nsk stress test Message-ID: <20120621104016.4E00C47A65@hg.openjdk.java.net> Changeset: 40782a131183 Author: roland Date: 2012-06-21 09:52 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/40782a131183 7129715: MAC: SIGBUS in nsk stress test Summary: StackOverflowError may get lost on OSX. Reviewed-by: kvn, dcubed ! src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp From roland.westrelin at oracle.com Thu Jun 21 05:21:51 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Thu, 21 Jun 2012 14:21:51 +0200 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java Message-ID: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> The current intrinsics for pow and exp in c2 do not handle all cases and may trigger uncommon traps. When that happens, the next compilations won't attempt to use the intrinsic code and rather will fallback to inlining the java implementations of pow or exp which call the StrictMath implementation. So a java application could get different results for the same computation (either the intrinsic version or the StrictMath version). This is solved by never triggering uncommon traps in the intrinsic pow/exp but rather call the runtime on corner cases (similar to the interpreter/c1 code). A similar problem could show up if ConditionalMoveLimit=0: c2 wouldn't use the same implementation as the interpreter/c1. So we can't offer to bail out if ConditionalMoveLimit is 0. In inline_pow, the else branch of: if( jvms()->depth() >= 1 ) { was never tested (because we forbid compilation of pow as a standalone method) and had several problems that this change fixes. An alternate fix would have been to simply forbid the inlining of the java implementation of pow/exp when intrinsification fails. http://cr.openjdk.java.net/~roland/7177917/webrev.00/ Roland. From vladimir.kozlov at oracle.com Thu Jun 21 11:46:53 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 21 Jun 2012 11:46:53 -0700 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> Message-ID: <4FE36C1D.8060301@oracle.com> Did you run refworkload? Additional checks will increase code size and may slowdown performance. Did you consider the fix which keeps unctrap but instead of going into java code generate call to runtime only if there were NaN cases. May be call_runtime_pow_exp() instead of pow_exp_call_runtime() name. Fix comment "then go to Strict Math" since it is not true anymore. result_region and result_val are used only when !if_slow->is_top(). In inline_pow() next comment is strange ("but and"): // max_jlong is odd but and 9.223372036854776E18 is even Not for this fix but for future, may be we should use exponent values checks (as in __ieee754_pow() method) instead of converting D2L and L2D which could be expensive. Thanks, Vladimir Roland Westrelin wrote: > The current intrinsics for pow and exp in c2 do not handle all cases and may trigger uncommon traps. When that happens, the next compilations won't attempt to use the intrinsic code and rather will fallback to inlining the java implementations of pow or exp which call the StrictMath implementation. So a java application could get different results for the same computation (either the intrinsic version or the StrictMath version). This is solved by never triggering uncommon traps in the intrinsic pow/exp but rather call the runtime on corner cases (similar to the interpreter/c1 code). > A similar problem could show up if ConditionalMoveLimit=0: c2 wouldn't use the same implementation as the interpreter/c1. So we can't offer to bail out if ConditionalMoveLimit is 0. > In inline_pow, the else branch of: > if( jvms()->depth() >= 1 ) { > was never tested (because we forbid compilation of pow as a standalone method) and had several problems that this change fixes. > > An alternate fix would have been to simply forbid the inlining of the java implementation of pow/exp when intrinsification fails. > > http://cr.openjdk.java.net/~roland/7177917/webrev.00/ > > Roland. From jgo at kataf.nl Thu Jun 21 14:39:23 2012 From: jgo at kataf.nl (Skip Balk) Date: Thu, 21 Jun 2012 23:39:23 +0200 Subject: StringBuilding optimization bug since Java 7 update 4 Message-ID: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> Dear HotSpot developers, This is the first time I post anything on any mailinglist, so please forgive me if my message is not quite up to the standards you are used to. Last week, I encountered a bug in simple String concatenation, like: String s = "test"; s = s+s; s = s+s; s = s+s; yielding the string: "nullnulltesttest" instead of "testtesttesttesttesttesttesttest". The first Java version that seems to suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, 7u6(rc). It has been further reproduced on 32bit, 64bit, clientvm and servervm. After a few thousand (interpreted) runs of this code, it starts to give these incorrect results, leading me to assume that a HotSpot optimisation is the root cause of this problem, which is backed by the fact that when running the java process with the -Xint argument, the bug does not occur. Unfortunately, today I discovered that with my trivial sourcecode, the issue only occured with the Eclipse compiler. The Javac output seemed to be 'friendly' to HotSpot. Upon further investigation, it turned out that "s=s+s" was compiled to different bytecode by Javac and Eclipse: Eclipse: s = new StringBuilder(String.valueOf(s)).append(s).toString(); Javac: s = new StringBuilder().append(s).append(s).toString(); When writing the version Eclipse produces in Java sourcecode, the javac compiler also produced the bytecode that made HotSpot trip. Without further ado: here are the full code-dumps (both for eclipse and javac) http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html "javap -c" output, with sourcecode containing "s=s+s" Javac: http://pastebin.com/raw.php?i=pC3kRC6c Eclipse: http://pastebin.com/raw.php?i=Pbj0fyZ8 Console output: Java Version: 23.0-b21 Failed at iteration: 11983 Length mismatch: 16 <> 32 Expected: "testtesttesttesttesttesttesttest" Actual: "nullnulltesttest" Last but not least, this bug seems to be triggered by the empty-for-loop, which leads me to believe this is a case of too aggresive dead code removal. I hope you can With kind regards, Riven (http://www.java-gaming.org/ administrator) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120621/400e1234/attachment.html From john.coomes at oracle.com Thu Jun 21 20:40:24 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:40:24 +0000 Subject: hg: hsx/hotspot-comp: 3 new changesets Message-ID: <20120622034024.E074347A86@hg.openjdk.java.net> Changeset: 8fb4cd2f05a1 Author: mbykov Date: 2012-06-19 14:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/8fb4cd2f05a1 7178241: Basic script for JDK source code legal headers conformance verification Summary: A new script lic_check.sh to check license headers in JDK source code Reviewed-by: ohair, darcy Contributed-by: misha.bykov at oracle.com + make/scripts/lic_check.sh Changeset: e4f81a817447 Author: katleman Date: 2012-06-20 15:22 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/e4f81a817447 Merge Changeset: 1e989139ce0d Author: katleman Date: 2012-06-21 17:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/1e989139ce0d Added tag jdk8-b44 for changeset e4f81a817447 ! .hgtags From john.coomes at oracle.com Thu Jun 21 20:40:30 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:40:30 +0000 Subject: hg: hsx/hotspot-comp/corba: Added tag jdk8-b44 for changeset 439d9bf8e4ff Message-ID: <20120622034031.D97A147A87@hg.openjdk.java.net> Changeset: ad3ba4b392cc Author: katleman Date: 2012-06-21 17:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/ad3ba4b392cc Added tag jdk8-b44 for changeset 439d9bf8e4ff ! .hgtags From john.coomes at oracle.com Thu Jun 21 20:40:38 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:40:38 +0000 Subject: hg: hsx/hotspot-comp/jaxp: Added tag jdk8-b44 for changeset 0b3f3a4ce139 Message-ID: <20120622034043.8369947A88@hg.openjdk.java.net> Changeset: a5c1047a05e9 Author: katleman Date: 2012-06-21 17:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/a5c1047a05e9 Added tag jdk8-b44 for changeset 0b3f3a4ce139 ! .hgtags From john.coomes at oracle.com Thu Jun 21 20:40:50 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:40:50 +0000 Subject: hg: hsx/hotspot-comp/jaxws: Added tag jdk8-b44 for changeset f6a417540ef1 Message-ID: <20120622034054.7962247A89@hg.openjdk.java.net> Changeset: e80ac58b5ba9 Author: katleman Date: 2012-06-21 17:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/e80ac58b5ba9 Added tag jdk8-b44 for changeset f6a417540ef1 ! .hgtags From john.coomes at oracle.com Thu Jun 21 20:41:06 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:41:06 +0000 Subject: hg: hsx/hotspot-comp/jdk: Added tag jdk8-b44 for changeset db471a7af031 Message-ID: <20120622034132.C874347A8A@hg.openjdk.java.net> Changeset: 9d88f2ce6338 Author: katleman Date: 2012-06-21 17:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9d88f2ce6338 Added tag jdk8-b44 for changeset db471a7af031 ! .hgtags From john.coomes at oracle.com Thu Jun 21 20:43:02 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 22 Jun 2012 03:43:02 +0000 Subject: hg: hsx/hotspot-comp/langtools: Added tag jdk8-b44 for changeset 59cbead12ff4 Message-ID: <20120622034307.2F84F47A8B@hg.openjdk.java.net> Changeset: a39c99192184 Author: katleman Date: 2012-06-21 17:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/a39c99192184 Added tag jdk8-b44 for changeset 59cbead12ff4 ! .hgtags From vladimir.kozlov at oracle.com Thu Jun 21 23:01:42 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 21 Jun 2012 23:01:42 -0700 Subject: Request for reviews (S): 7178280: Failed new vector regression tests Message-ID: <4FE40A46.9050704@oracle.com> http://cr.openjdk.java.net/~kvn/7178280/webrev 7178280: Failed new vector regression tests Post-Allocation copy removal optimization incorrectly replaced spill copy with previously loaded register which was already modified by an other vector operation with smaller vector size. When looking for the same value in an other register check that all parts of that register has the same value. Also removed unused line. Tested with failing and other regression tests. Thanks, Vladimir From chunt at salesforce.com Fri Jun 22 06:47:38 2012 From: chunt at salesforce.com (Charlie Hunt) Date: Fri, 22 Jun 2012 06:47:38 -0700 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> Message-ID: Could you try your experiment with -XX:-OptimizeStringConcat to see if the unexpected behavior goes away? IIRC, -XX:+OptimizeStringConcat was made the default in 7u4. charlie ... On Jun 21, 2012, at 4:39 PM, Skip Balk wrote: Dear HotSpot developers, This is the first time I post anything on any mailinglist, so please forgive me if my message is not quite up to the standards you are used to. Last week, I encountered a bug in simple String concatenation, like: String s = "test"; s = s+s; s = s+s; s = s+s; yielding the string: "nullnulltesttest" instead of "testtesttesttesttesttesttesttest". The first Java version that seems to suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, 7u6(rc). It has been further reproduced on 32bit, 64bit, clientvm and servervm. After a few thousand (interpreted) runs of this code, it starts to give these incorrect results, leading me to assume that a HotSpot optimisation is the root cause of this problem, which is backed by the fact that when running the java process with the -Xint argument, the bug does not occur. Unfortunately, today I discovered that with my trivial sourcecode, the issue only occured with the Eclipse compiler. The Javac output seemed to be 'friendly' to HotSpot. Upon further investigation, it turned out that "s=s+s" was compiled to different bytecode by Javac and Eclipse: Eclipse: s = new StringBuilder(String.valueOf(s)).append(s).toString(); Javac: s = new StringBuilder().append(s).append(s).toString(); When writing the version Eclipse produces in Java sourcecode, the javac compiler also produced the bytecode that made HotSpot trip. Without further ado: here are the full code-dumps (both for eclipse and javac) http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html "javap -c" output, with sourcecode containing "s=s+s" Javac: http://pastebin.com/raw.php?i=pC3kRC6c Eclipse: http://pastebin.com/raw.php?i=Pbj0fyZ8 Console output: Java Version: 23.0-b21 Failed at iteration: 11983 Length mismatch: 16 <> 32 Expected: "testtesttesttesttesttesttesttest" Actual: "nullnulltesttest" Last but not least, this bug seems to be triggered by the empty-for-loop, which leads me to believe this is a case of too aggresive dead code removal. I hope you can With kind regards, Riven (http://www.java-gaming.org/ administrator) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120622/be0867bf/attachment-0001.html From damjan.jov at gmail.com Fri Jun 22 07:12:47 2012 From: damjan.jov at gmail.com (Damjan Jovanovic) Date: Fri, 22 Jun 2012 16:12:47 +0200 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> Message-ID: In JDK 1.7.0_04 amd64 and 1.7.0_05 x86, both on Ubuntu 12.04 amd64: -XX:+OptimizeStringConcat reproduces the bug in the Javac example from http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html -XX:-OptimizeStringConcat works correctly (it should infinite loop) Regards On Fri, Jun 22, 2012 at 3:47 PM, Charlie Hunt wrote: > Could you try your experiment with -XX:-OptimizeStringConcat to see if the > unexpected behavior goes away? > > IIRC, -XX:+OptimizeStringConcat was made the default in 7u4. > > charlie ... > > On Jun 21, 2012, at 4:39 PM, Skip Balk wrote: > > Dear HotSpot developers, > > > This is the first time I post anything on any mailinglist, so please forgive > me if my message is not quite up to the standards you are used to. > > Last week, I encountered a bug in simple String concatenation, like: > > String s = "test"; > ??? s = s+s; > ??? s = s+s; > ??? s = s+s; > > yielding the string: "nullnulltesttest" instead of > "testtesttesttesttesttesttesttest". The first Java version that seems to > suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, 7u6(rc). > It has been further reproduced on 32bit, 64bit, clientvm and servervm. > > After a few thousand (interpreted) runs of this code, it starts to give > these incorrect results, leading me to assume that a HotSpot optimisation is > the root cause of this problem, which is backed by the fact that when > running the java process with the?-Xint argument, the bug does not occur. > > Unfortunately, today I discovered that?with my trivial sourcecode, the issue > only occured with the Eclipse compiler. The Javac output seemed to be > 'friendly' to HotSpot. > > Upon further investigation, it turned out that "s=s+s" was compiled to > different bytecode by Javac and Eclipse: > ??? Eclipse: s = new StringBuilder(String.valueOf(s)).append(s).toString(); > ??? Javac:? ?s = new StringBuilder().append(s).append(s).toString(); > When writing the version Eclipse produces in Java sourcecode, the javac > compiler also produced the bytecode that made HotSpot trip. > > Without further ado: here are the full code-dumps (both for eclipse and > javac) > ????http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html > > "javap -c" output, with sourcecode containing "s=s+s" > ??? Javac:???http://pastebin.com/raw.php?i=pC3kRC6c > ??? Eclipse:?http://pastebin.com/raw.php?i=Pbj0fyZ8 > > Console output: > ??? Java Version: 23.0-b21 > ??? Failed at iteration: 11983 > ??? Length mismatch: 16 <> 32 > ??? Expected: "testtesttesttesttesttesttesttest" > ??? Actual:?? "nullnulltesttest" > > Last but not least, this bug seems to be triggered by the empty-for-loop, > which leads me to believe?this is a case of too aggresive?dead code removal. > I hope you can > > > With kind regards, > ??? Riven (http://www.java-gaming.org/?administrator) > > From chunt at salesforce.com Fri Jun 22 07:30:51 2012 From: chunt at salesforce.com (Charlie Hunt) Date: Fri, 22 Jun 2012 07:30:51 -0700 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> Message-ID: <9B9E3287-AA53-4FDA-B5A1-668922A6CB71@salesforce.com> Thanks for confirming. Fwiw, I added a "work around" comment to the blog entry. I'm sure one of the HotSpot compiler engineers will file a bug for it. On Jun 22, 2012, at 9:12 AM, Damjan Jovanovic wrote: > In JDK 1.7.0_04 amd64 and 1.7.0_05 x86, both on Ubuntu 12.04 amd64: > > -XX:+OptimizeStringConcat reproduces the bug in the Javac example from > http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html > -XX:-OptimizeStringConcat works correctly (it should infinite loop) > > Regards > > On Fri, Jun 22, 2012 at 3:47 PM, Charlie Hunt wrote: >> Could you try your experiment with -XX:-OptimizeStringConcat to see if the >> unexpected behavior goes away? >> >> IIRC, -XX:+OptimizeStringConcat was made the default in 7u4. >> >> charlie ... >> >> On Jun 21, 2012, at 4:39 PM, Skip Balk wrote: >> >> Dear HotSpot developers, >> >> >> This is the first time I post anything on any mailinglist, so please forgive >> me if my message is not quite up to the standards you are used to. >> >> Last week, I encountered a bug in simple String concatenation, like: >> >> String s = "test"; >> s = s+s; >> s = s+s; >> s = s+s; >> >> yielding the string: "nullnulltesttest" instead of >> "testtesttesttesttesttesttesttest". The first Java version that seems to >> suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, 7u6(rc). >> It has been further reproduced on 32bit, 64bit, clientvm and servervm. >> >> After a few thousand (interpreted) runs of this code, it starts to give >> these incorrect results, leading me to assume that a HotSpot optimisation is >> the root cause of this problem, which is backed by the fact that when >> running the java process with the -Xint argument, the bug does not occur. >> >> Unfortunately, today I discovered that with my trivial sourcecode, the issue >> only occured with the Eclipse compiler. The Javac output seemed to be >> 'friendly' to HotSpot. >> >> Upon further investigation, it turned out that "s=s+s" was compiled to >> different bytecode by Javac and Eclipse: >> Eclipse: s = new StringBuilder(String.valueOf(s)).append(s).toString(); >> Javac: s = new StringBuilder().append(s).append(s).toString(); >> When writing the version Eclipse produces in Java sourcecode, the javac >> compiler also produced the bytecode that made HotSpot trip. >> >> Without further ado: here are the full code-dumps (both for eclipse and >> javac) >> http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html >> >> "javap -c" output, with sourcecode containing "s=s+s" >> Javac: http://pastebin.com/raw.php?i=pC3kRC6c >> Eclipse: http://pastebin.com/raw.php?i=Pbj0fyZ8 >> >> Console output: >> Java Version: 23.0-b21 >> Failed at iteration: 11983 >> Length mismatch: 16 <> 32 >> Expected: "testtesttesttesttesttesttesttest" >> Actual: "nullnulltesttest" >> >> Last but not least, this bug seems to be triggered by the empty-for-loop, >> which leads me to believe this is a case of too aggresive dead code removal. >> I hope you can >> >> >> With kind regards, >> Riven (http://www.java-gaming.org/ administrator) >> >> From roland.westrelin at oracle.com Fri Jun 22 07:34:55 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 22 Jun 2012 16:34:55 +0200 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <4FE36C1D.8060301@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> Message-ID: <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> Hi Vladimir, Thanks for taking a look at this. > Did you run refworkload? Additional checks will increase code size and may slowdown performance. Did you consider the fix which keeps unctrap but instead of going into java code generate call to runtime only if there were NaN cases. Do you have a particular benchmark in mind? I checked reference_server and the only benchmark that make use of Math.pow() is specjvm98 but it does not seem critical to its performance: using the intrinsic or not doesn't make a difference. Here is a new webrev with uncommon traps: http://cr.openjdk.java.net/~roland/7177917/webrev.01/ I also took you other suggestions into account. > Not for this fix but for future, may be we should use exponent values checks (as in __ieee754_pow() method) instead of converting D2L and L2D which could be expensive. I agree that there could be a simpler/more efficient than d2l + l2d to check for an integer value. Roland. From vladimir.kozlov at oracle.com Fri Jun 22 08:41:47 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 22 Jun 2012 08:41:47 -0700 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> Message-ID: <4FE4923B.2060701@oracle.com> It looks good. Thank you for looking on refworkload. I would suggest to write a microbenchmark, we will need it anyway for SSE implementation. Two separate subtests for pow() and exp() called in small loop over pre-generated (in array) "random" (started from the same seed) normal (not NaN) values. Measure it's performance after warmup phase. Then run the same methods over different values (to cove at least some cases in our code) which will produce NaNs to force recompile (or not as in your first implementation). Measure performance with NaNs. Then back to good values and measure it again. Test current code, your first and last implementations. Thanks, Vladimir On 6/22/12 7:34 AM, Roland Westrelin wrote: > Hi Vladimir, > > Thanks for taking a look at this. > >> Did you run refworkload? Additional checks will increase code size and may slowdown performance. Did you consider the fix which keeps unctrap but instead of going into java code generate call to runtime only if there were NaN cases. > > Do you have a particular benchmark in mind? I checked reference_server and the only benchmark that make use of Math.pow() is specjvm98 but it does not seem critical to its performance: using the intrinsic or not doesn't make a difference. > > Here is a new webrev with uncommon traps: > http://cr.openjdk.java.net/~roland/7177917/webrev.01/ > > I also took you other suggestions into account. > >> Not for this fix but for future, may be we should use exponent values checks (as in __ieee754_pow() method) instead of converting D2L and L2D which could be expensive. > > I agree that there could be a simpler/more efficient than d2l + l2d to check for an integer value. > > Roland. From vladimir.kozlov at oracle.com Fri Jun 22 10:06:46 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 22 Jun 2012 10:06:46 -0700 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> Message-ID: <4FE4A626.4000605@oracle.com> Thank you for finding this issue, I filed bug report: 7179138: Incorrect result with String concatenation optimization Few questions: Can we add your tests to Hotspot VM regression tests? http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/file/1c280e5b8d31/test/compiler/ What should we put into the test's Copyright line? And what reference you want in test's @author line? Thanks, Vladimir Skip Balk wrote: > Dear HotSpot developers, > > > This is the first time I post anything on any mailinglist, so please > forgive me if my message is not quite up to the standards you are used to. > > Last week, I encountered a bug in simple String concatenation, like: > > String s = "test"; > s = s+s; > s = s+s; > s = s+s; > > yielding the string: "nullnulltesttest" instead of > "testtesttesttesttesttesttesttest". The first Java version that seems to > suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, > 7u6(rc). It has been further reproduced on 32bit, 64bit, clientvm and > servervm. > > After a few thousand (interpreted) runs of this code, it starts to give > these incorrect results, leading me to assume that a HotSpot > optimisation is the root cause of this problem, which is backed by the > fact that when running the java process with the -Xint argument, the bug > does not occur. > > Unfortunately, today I discovered that with my trivial sourcecode, the > issue only occured with the Eclipse compiler. The Javac output seemed to > be 'friendly' to HotSpot. > > Upon further investigation, it turned out that "s=s+s" was compiled to > different bytecode by Javac and Eclipse: > Eclipse: s = new StringBuilder(String.valueOf(s)).append(s).toString(); > Javac: s = new StringBuilder().append(s).append(s).toString(); > When writing the version Eclipse produces in Java sourcecode, the javac > compiler also produced the bytecode that made HotSpot trip. > > Without further ado: here are the full code-dumps (both for eclipse and > javac) > > http://riven8192.blogspot.com/2012/06/hotspot-bug-in-java-7u4-7u5-7u6rc-with.html > > "javap -c" output, with sourcecode containing "s=s+s" > Javac: http://pastebin.com/raw.php?i=pC3kRC6c > Eclipse: http://pastebin.com/raw.php?i=Pbj0fyZ8 > > Console output: > Java Version: 23.0-b21 > Failed at iteration: 11983 > Length mismatch: 16 <> 32 > Expected: "testtesttesttesttesttesttesttest" > Actual: "nullnulltesttest" > > Last but not least, this bug seems to be triggered by the > empty-for-loop, which leads me to believe this is a case of too > aggresive dead code removal. I hope you can > > > With kind regards, > Riven (http://www.java-gaming.org/ administrator) From christian.thalinger at oracle.com Fri Jun 22 10:39:35 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Fri, 22 Jun 2012 10:39:35 -0700 Subject: Request for reviews (S): 7178280: Failed new vector regression tests In-Reply-To: <4FE40A46.9050704@oracle.com> References: <4FE40A46.9050704@oracle.com> Message-ID: Looks good. -- Chris On Jun 21, 2012, at 11:01 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7178280/webrev > > 7178280: Failed new vector regression tests > > Post-Allocation copy removal optimization incorrectly replaced spill copy with previously loaded register which was already modified by an other vector operation with smaller vector size. > > When looking for the same value in an other register check that all parts of that register has the same value. > > Also removed unused line. > > Tested with failing and other regression tests. > > Thanks, > Vladimir From roland.westrelin at oracle.com Fri Jun 22 10:49:19 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Fri, 22 Jun 2012 19:49:19 +0200 Subject: Request for reviews (S): 7178280: Failed new vector regression tests In-Reply-To: <4FE40A46.9050704@oracle.com> References: <4FE40A46.9050704@oracle.com> Message-ID: <5AFD5B11-9E7C-4687-8A53-29C16A0B2AB6@oracle.com> AFAICT, it's good. Roland. From vladimir.kozlov at oracle.com Fri Jun 22 10:51:18 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 22 Jun 2012 10:51:18 -0700 Subject: Request for reviews (S): 7178280: Failed new vector regression tests In-Reply-To: References: <4FE40A46.9050704@oracle.com> Message-ID: <4FE4B096.3040906@oracle.com> Thank you, Christian and John Cuthbertson. Vladimir Christian Thalinger wrote: > Looks good. -- Chris > > On Jun 21, 2012, at 11:01 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7178280/webrev >> >> 7178280: Failed new vector regression tests >> >> Post-Allocation copy removal optimization incorrectly replaced spill copy with previously loaded register which was already modified by an other vector operation with smaller vector size. >> >> When looking for the same value in an other register check that all parts of that register has the same value. >> >> Also removed unused line. >> >> Tested with failing and other regression tests. >> >> Thanks, >> Vladimir > From vladimir.kozlov at oracle.com Fri Jun 22 10:52:00 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 22 Jun 2012 10:52:00 -0700 Subject: Request for reviews (S): 7178280: Failed new vector regression tests In-Reply-To: <5AFD5B11-9E7C-4687-8A53-29C16A0B2AB6@oracle.com> References: <4FE40A46.9050704@oracle.com> <5AFD5B11-9E7C-4687-8A53-29C16A0B2AB6@oracle.com> Message-ID: <4FE4B0C0.5060007@oracle.com> Thank you, Roland Vladimir Roland Westrelin wrote: > AFAICT, it's good. > > Roland. From vladimir.kozlov at oracle.com Fri Jun 22 12:31:41 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 22 Jun 2012 19:31:41 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7178280: Failed new vector regression tests Message-ID: <20120622193146.B065347AB9@hg.openjdk.java.net> Changeset: 424142833d10 Author: kvn Date: 2012-06-22 10:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/424142833d10 7178280: Failed new vector regression tests Summary: When looking for the same value in an other register check that all parts of that register has the same value. Reviewed-by: johnc, twisti ! src/share/vm/opto/postaloc.cpp From rednaxelafx at gmail.com Mon Jun 25 05:33:54 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Mon, 25 Jun 2012 20:33:54 +0800 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: <4FE4A626.4000605@oracle.com> References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> <4FE4A626.4000605@oracle.com> Message-ID: Hi all, Is anybody fixing this bug already? I looked at this issue earlier today. It looks like the problem had something to do with coalescing stacked string concats. When I comment out the "try to coalesce separate concats" block from PhaseStringOpts's constructor, the bug doesn't reproduce any more. There was a lot of noise in the original test case, that it was hard to analyze what went wrong on the IR level. Here's a smaller repro case derived from Riven's: https://gist.github.com/2987732 It still reproduces on JDK7u4/HS23 and JDK8b43/HS24, both with OSR and standard compilation. Strangely, it doesn't reproduce when OSR is disabled (with either -UseOnStackReplacement or -CICompileOSR): $ java -XX:-UseOnStackReplacement Main CompilerOracle: exclude Main.logError Java Version: 24.0-b14-internal-jvmg try OSR compilation 1071 1 b java.lang.String::length (6 bytes) 1135 2 n java.lang.System::arraycopy (0 bytes) (static) 1148 3 b java.lang.Object:: (1 bytes) 1178 4 b java.lang.AbstractStringBuilder::ensureCapacityInternal (16 bytes) 1229 5 b java.lang.String::getChars (62 bytes) 1397 6 b java.lang.AbstractStringBuilder::append (48 bytes) 2013 7 b java.lang.StringBuilder::append (8 bytes) 2682 8 b java.lang.Math::min (11 bytes) 2702 9 b java.lang.String:: (67 bytes) 3140 10 b java.util.Arrays::copyOfRange (63 bytes) 3331 11 b java.lang.AbstractStringBuilder:: (12 bytes) 3390 12 b java.lang.StringBuilder::toString (17 bytes) 3993 13 b java.lang.String::valueOf (14 bytes) 4028 14 b java.lang.StringBuilder:: (18 bytes) try standard compilation 5563 15 b Main::foo (98 bytes) $ ... Regards, Kris On Sat, Jun 23, 2012 at 1:06 AM, Vladimir Kozlov wrote: > Thank you for finding this issue, I filed bug report: > > 7179138: Incorrect result with String concatenation optimization > > Few questions: > > Can we add your tests to Hotspot VM regression tests? > > http://hg.openjdk.java.net/**hsx/hotspot-main/hotspot/file/** > 1c280e5b8d31/test/compiler/ > > What should we put into the test's Copyright line? > And what reference you want in test's @author line? > > Thanks, > Vladimir > > > Skip Balk wrote: > >> Dear HotSpot developers, >> This is the first time I post anything on any mailinglist, so please >> forgive me if my message is not quite up to the standards you are used to. >> Last week, I encountered a bug in simple String concatenation, like: >> String s = "test"; >> s = s+s; >> s = s+s; >> s = s+s; >> yielding the string: "nullnulltesttest" instead of "** >> testtesttesttesttesttesttestte**st". The first Java version that seems >> to suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, >> 7u6(rc). It has been further reproduced on 32bit, 64bit, clientvm and >> servervm. >> After a few thousand (interpreted) runs of this code, it starts to give >> these incorrect results, leading me to assume that a HotSpot optimisation >> is the root cause of this problem, which is backed by the fact that when >> running the java process with the -Xint argument, the bug does not occur. >> Unfortunately, today I discovered that with my trivial sourcecode, the >> issue only occured with the Eclipse compiler. The Javac output seemed to be >> 'friendly' to HotSpot. >> Upon further investigation, it turned out that "s=s+s" was compiled to >> different bytecode by Javac and Eclipse: >> Eclipse: s = new StringBuilder(String.valueOf(** >> s)).append(s).toString(); >> Javac: s = new StringBuilder().append(s).**append(s).toString(); >> When writing the version Eclipse produces in Java sourcecode, the javac >> compiler also produced the bytecode that made HotSpot trip. >> Without further ado: here are the full code-dumps (both for eclipse and >> javac) >> http://riven8192.blogspot.com/**2012/06/hotspot-bug-in-java-** >> 7u4-7u5-7u6rc-with.html >> "javap -c" output, with sourcecode containing "s=s+s" >> Javac: http://pastebin.com/raw.php?i=**pC3kRC6c >> Eclipse: http://pastebin.com/raw.php?i=**Pbj0fyZ8 >> Console output: >> Java Version: 23.0-b21 >> Failed at iteration: 11983 >> Length mismatch: 16 <> 32 >> Expected: "**testtesttesttesttesttesttestte**st" >> Actual: "nullnulltesttest" >> Last but not least, this bug seems to be triggered by the >> empty-for-loop, which leads me to believe this is a case of too aggresive >> dead code removal. I hope you can >> With kind regards, >> Riven (http://www.java-gaming.org/ administrator) >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120625/5d6e0e0c/attachment.html From roland.westrelin at oracle.com Mon Jun 25 07:43:37 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 25 Jun 2012 16:43:37 +0200 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <4FE4923B.2060701@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> <4FE4923B.2060701@oracle.com> Message-ID: Hi Vladimir, > Thank you for looking on refworkload. I would suggest to write a microbenchmark, we will need it anyway for SSE > implementation. Two separate subtests for pow() and exp() called in small loop over pre-generated (in array) "random" > (started from the same seed) normal (not NaN) values. Measure it's performance after warmup phase. Then run the same > methods over different values (to cove at least some cases in our code) which will produce NaNs to force recompile (or > not as in your first implementation). Measure performance with NaNs. Then back to good values and measure it again. > > Test current code, your first and last implementations. I'm not sure I understand what you mean by: "Then run the same methods over different values (to cove at least some cases in our code) which will produce NaNs to force recompile (or not as in your first implementation). Measure performance with NaNs.". I wrote a micro benchmark that: - chooses 1 million "good" random values for pow - time the computation of pow for the 1 million values - force the uncommon trap and recompilation - do the measurement again with the same 1 million values same thing with exp and I did the measurement with the previous and current version of the code but I don't see any difference. Where does the test go when it is ready? In the test subdirectory? Roland. From roland.westrelin at oracle.com Mon Jun 25 08:09:23 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Mon, 25 Jun 2012 17:09:23 +0200 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> Message-ID: Here is a new webrev: http://cr.openjdk.java.net/~roland/7023898/webrev.01/ that takes these suggestions into account: > The C2 part looks good. I have a few small suggestions. > > 1. Replace push(cas) by push_node(type, load_store). > > 2. I don't understand why the (kind = cmpxchg) case doesn't push a result. Does't the original push(cas) do that? > > 3. In the if/else chain testing 'kind', change the bare 'else' to 'else if (kind ? cmpxchg)' and follow up with 'else ShouldNotReachHere()'. At least put an "assert(kind ? cmpxchg)". This will ease maintenance, in case somebody adds a new case to load_store_kind. > > 4. Naming: Consider using a more type-like name for load_store_kind, such as LoadStoreKind. Compare ReexecuteState and NodeType enums. Also, the enum names themselves could use a prefix or camel-case, e.g., LS_xadd or _xadd or XAdd. Since the names are private to library_call.cpp, it doesn't matter as much as in other places, but it still improves readability of code that contains the names. (Reason: an all-lower-case simple name like xadd appears at first glance to be a local variable. Manifest constants should look different.) Roland. From vladimir.kozlov at oracle.com Mon Jun 25 09:16:51 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 25 Jun 2012 09:16:51 -0700 Subject: StringBuilding optimization bug since Java 7 update 4 In-Reply-To: References: <77D7AF2E2645484CBA4265F454081C76@PCvanRiven> <4FE4A626.4000605@oracle.com> Message-ID: <4FE88EF3.1010404@oracle.com> I have a fix which I tested over weekend, I will send review request today. Vladimir On 6/25/12 5:33 AM, Krystal Mok wrote: > Hi all, > > Is anybody fixing this bug already? > > I looked at this issue earlier today. It looks like the problem had something to do with coalescing stacked string > concats. When I comment out the "try to coalesce separate concats" block from PhaseStringOpts's constructor, the bug > doesn't reproduce any more. > > There was a lot of noise in the original test case, that it was hard to analyze what went wrong on the IR level. > Here's a smaller repro case derived from Riven's: https://gist.github.com/2987732 > It still reproduces on JDK7u4/HS23 and JDK8b43/HS24, both with OSR and standard compilation. > > Strangely, it doesn't reproduce when OSR is disabled (with either -UseOnStackReplacement or -CICompileOSR): > > $ java -XX:-UseOnStackReplacement Main > CompilerOracle: exclude Main.logError > Java Version: 24.0-b14-internal-jvmg > try OSR compilation > 1071 1 b java.lang.String::length (6 bytes) > 1135 2 n java.lang.System::arraycopy (0 bytes) (static) > 1148 3 b java.lang.Object:: (1 bytes) > 1178 4 b java.lang.AbstractStringBuilder::ensureCapacityInternal (16 bytes) > 1229 5 b java.lang.String::getChars (62 bytes) > 1397 6 b java.lang.AbstractStringBuilder::append (48 bytes) > 2013 7 b java.lang.StringBuilder::append (8 bytes) > 2682 8 b java.lang.Math::min (11 bytes) > 2702 9 b java.lang.String:: (67 bytes) > 3140 10 b java.util.Arrays::copyOfRange (63 bytes) > 3331 11 b java.lang.AbstractStringBuilder:: (12 bytes) > 3390 12 b java.lang.StringBuilder::toString (17 bytes) > 3993 13 b java.lang.String::valueOf (14 bytes) > 4028 14 b java.lang.StringBuilder:: (18 bytes) > try standard compilation > 5563 15 b Main::foo (98 bytes) > $ > > ... > > Regards, > Kris > > On Sat, Jun 23, 2012 at 1:06 AM, Vladimir Kozlov > wrote: > > Thank you for finding this issue, I filed bug report: > > 7179138: Incorrect result with String concatenation optimization > > Few questions: > > Can we add your tests to Hotspot VM regression tests? > > http://hg.openjdk.java.net/__hsx/hotspot-main/hotspot/file/__1c280e5b8d31/test/compiler/ > > > What should we put into the test's Copyright line? > And what reference you want in test's @author line? > > Thanks, > Vladimir > > > Skip Balk wrote: > > Dear HotSpot developers, > This is the first time I post anything on any mailinglist, so please forgive me if my message is not quite up > to the standards you are used to. > Last week, I encountered a bug in simple String concatenation, like: > String s = "test"; > s = s+s; > s = s+s; > s = s+s; > yielding the string: "nullnulltesttest" instead of "__testtesttesttesttesttesttestte__st". The first Java > version that seems to suffer from this bug is Java 7u4, and is confirmed to occur in 7u5, 7u6(rc). It has been > further reproduced on 32bit, 64bit, clientvm and servervm. > After a few thousand (interpreted) runs of this code, it starts to give these incorrect results, leading me to > assume that a HotSpot optimisation is the root cause of this problem, which is backed by the fact that when > running the java process with the -Xint argument, the bug does not occur. > Unfortunately, today I discovered that with my trivial sourcecode, the issue only occured with the Eclipse > compiler. The Javac output seemed to be 'friendly' to HotSpot. > Upon further investigation, it turned out that "s=s+s" was compiled to different bytecode by Javac and Eclipse: > Eclipse: s = new StringBuilder(String.valueOf(__s)).append(s).toString(); > Javac: s = new StringBuilder().append(s).__append(s).toString(); > When writing the version Eclipse produces in Java sourcecode, the javac compiler also produced the bytecode that > made HotSpot trip. > Without further ado: here are the full code-dumps (both for eclipse and javac) > http://riven8192.blogspot.com/__2012/06/hotspot-bug-in-java-__7u4-7u5-7u6rc-with.html > > "javap -c" output, with sourcecode containing "s=s+s" > Javac: http://pastebin.com/raw.php?i=__pC3kRC6c > Eclipse: http://pastebin.com/raw.php?i=__Pbj0fyZ8 > Console output: > Java Version: 23.0-b21 > Failed at iteration: 11983 > Length mismatch: 16 <> 32 > Expected: "__testtesttesttesttesttesttestte__st" > Actual: "nullnulltesttest" > Last but not least, this bug seems to be triggered by the empty-for-loop, which leads me to believe this is a > case of too aggresive dead code removal. I hope you can > With kind regards, > Riven (http://www.java-gaming.org/ administrator) > > From vladimir.kozlov at oracle.com Mon Jun 25 11:01:42 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 25 Jun 2012 11:01:42 -0700 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> <4FE4923B.2060701@oracle.com> Message-ID: <4FE8A786.80806@oracle.com> Roland Westrelin wrote: > Hi Vladimir, > >> Thank you for looking on refworkload. I would suggest to write a >> microbenchmark, we will need it anyway for SSE >> implementation. Two separate subtests for pow() and exp() called in >> small loop over pre-generated (in array) "random" >> (started from the same seed) normal (not NaN) values. Measure it's >> performance after warmup phase. Then run the same >> methods over different values (to cove at least some cases in our >> code) which will produce NaNs to force recompile (or >> not as in your first implementation). Measure performance with NaNs. >> Then back to good values and measure it again. >> >> Test current code, your first and last implementations. > > I'm not sure I understand what you mean by: "Then run the same methods > over different values (to cove at least some cases in our code) which > will produce NaNs to force recompile (or not as in your first > implementation). Measure performance with NaNs.". Your first implementation does not deoptimize NaN cases so I wanted to see if there is difference in performance. > > I wrote a micro benchmark that: > > - chooses 1 million "good" random values for pow > - time the computation of pow for the 1 million values > - force the uncommon trap and recompilation > - do the measurement again with the same 1 million values > > same thing with exp and I did the measurement with the previous and > current version of the code but I don't see any difference. Did you verify that during first round you did not get NaN and deoptimized code already? There should be a difference. Did you pre-generate randoms values? > > Where does the test go when it is ready? In the test subdirectory? Unfortunately we don't have special place for performance tests. You can add it to our regression tests, but don't add "@ test" line so it is not run automatically by Nightly. If you want it run regular during Nightly reduce number of iterations to guarantee compilation only. Vladimir > > Roland. From vladimir.kozlov at oracle.com Mon Jun 25 12:08:51 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 25 Jun 2012 12:08:51 -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> Message-ID: <4FE8B743.9090207@oracle.com> Even so John said you can use LS I would suggest to use full name. Why not use nodes names? For a example: GetAndAdd, GetAndSet, CompareAndSwap. It is easier to understand the meaning. The rest is good. Thanks, Vladimir Roland Westrelin wrote: > Here is a new webrev: > http://cr.openjdk.java.net/~roland/7023898/webrev.01/ > > that takes these suggestions into account: > >> The C2 part looks good. I have a few small suggestions. >> >> 1. Replace push(cas) by push_node(type, load_store). >> >> 2. I don't understand why the (kind = cmpxchg) case doesn't push a >> result. Does't the original push(cas) do that? >> >> 3. In the if/else chain testing 'kind', change the bare 'else' to >> 'else if (kind ? cmpxchg)' and follow up with 'else >> ShouldNotReachHere()'. At least put an "assert(kind ? cmpxchg)". >> This will ease maintenance, in case somebody adds a new case to >> load_store_kind. >> >> 4. Naming: Consider using a more type-like name for load_store_kind, >> such as LoadStoreKind. Compare ReexecuteState and NodeType enums. >> Also, the enum names themselves could use a prefix or camel-case, >> e.g., LS_xadd or _xadd or XAdd. Since the names are private to >> library_call.cpp, it doesn't matter as much as in other places, but it >> still improves readability of code that contains the names. (Reason: >> an all-lower-case simple name like xadd appears at first glance to be >> a local variable. Manifest constants should look different.) > > Roland. From vladimir.kozlov at oracle.com Mon Jun 25 16:19:36 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 25 Jun 2012 16:19:36 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization Message-ID: <4FE8F208.1080500@oracle.com> http://cr.openjdk.java.net/~kvn/7179138/webrev 7179138: Incorrect result with String concatenation optimization The problem happens when one StringBuilder append/toString sequence uses the result of previous StringBuilder sequence and both sequences are merged by string concatenation optimization. Additional condition is the usage of String.valueOf(s) call as argument of StringBuilder constructor (which is implicitly generated by Eclipse java compiler). In normal case, when toString() result is directly referenced by the constructor, string concatenation optimization will use input arguments of previous StringBuilder append/toString sequence as additional arguments of merged sequence instead of toString() result itself. It is done because string concatenation optimization replaces the original code with new one and it will throw away original calls, including intermediate toString() calls. The problem with bug's case is toString() result is separated by Phi node from diamond shaped code from valueOf(s) method (s==null ? "null" : s) and it is kept as argument to new String concatenation code. But the input to valueOf(s) check become dead after the call to toString() is removed from graph. As result "null" string is used incorrectly instead. The fix is to look for diamond shaped code which checks for NULL the result of toString() call and look through it as we do now for directly referenced toString() results. I also fixed call nodes elimination code which did not remove Initialize nodes from merged StringBuilder sequences. Currently it removes only first one. Added regression tests from bug report. Tested with Hotspot regression tests, jdk java/lang tests, CTW. Thanks, Vladimir From christian.thalinger at oracle.com Mon Jun 25 16:49:03 2012 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Mon, 25 Jun 2012 16:49:03 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE8F208.1080500@oracle.com> References: <4FE8F208.1080500@oracle.com> Message-ID: Looks good. I think it would be better to return v1 instead of assigning it to value here: + value = v1; -- Chris On Jun 25, 2012, at 4:19 PM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7179138/webrev > > 7179138: Incorrect result with String concatenation optimization > > The problem happens when one StringBuilder append/toString sequence uses the result of previous StringBuilder sequence and both sequences are merged by string concatenation optimization. Additional condition is the usage of String.valueOf(s) call as argument of StringBuilder constructor (which is implicitly generated by Eclipse java compiler). > > In normal case, when toString() result is directly referenced by the constructor, string concatenation optimization will use input arguments of previous StringBuilder append/toString sequence as additional arguments of merged sequence instead of toString() result itself. It is done because string concatenation optimization replaces the original code with new one and it will throw away original calls, including intermediate toString() calls. > > The problem with bug's case is toString() result is separated by Phi node from diamond shaped code from valueOf(s) method (s==null ? "null" : s) and it is kept as argument to new String concatenation code. But the input to valueOf(s) check become dead after the call to toString() is removed from graph. As result "null" string is used incorrectly instead. > > The fix is to look for diamond shaped code which checks for NULL the result of toString() call and look through it as we do now for directly referenced toString() results. > > I also fixed call nodes elimination code which did not remove Initialize nodes from merged StringBuilder sequences. Currently it removes only first one. > > Added regression tests from bug report. > > Tested with Hotspot regression tests, jdk java/lang tests, CTW. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Mon Jun 25 18:03:09 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 25 Jun 2012 18:03:09 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: References: <4FE8F208.1080500@oracle.com> Message-ID: <4FE90A4D.2010405@oracle.com> Thank you, Christian Christian Thalinger wrote: > Looks good. I think it would be better to return v1 instead of assigning it to value here: > > + value = v1; Done. Vladimir > > -- Chris > > On Jun 25, 2012, at 4:19 PM, Vladimir Kozlov wrote: > >> http://cr.openjdk.java.net/~kvn/7179138/webrev >> >> 7179138: Incorrect result with String concatenation optimization >> >> The problem happens when one StringBuilder append/toString sequence uses the result of previous StringBuilder sequence and both sequences are merged by string concatenation optimization. Additional condition is the usage of String.valueOf(s) call as argument of StringBuilder constructor (which is implicitly generated by Eclipse java compiler). >> >> In normal case, when toString() result is directly referenced by the constructor, string concatenation optimization will use input arguments of previous StringBuilder append/toString sequence as additional arguments of merged sequence instead of toString() result itself. It is done because string concatenation optimization replaces the original code with new one and it will throw away original calls, including intermediate toString() calls. >> >> The problem with bug's case is toString() result is separated by Phi node from diamond shaped code from valueOf(s) method (s==null ? "null" : s) and it is kept as argument to new String concatenation code. But the input to valueOf(s) check become dead after the call to toString() is removed from graph. As result "null" string is used incorrectly instead. >> >> The fix is to look for diamond shaped code which checks for NULL the result of toString() call and look through it as we do now for directly referenced toString() results. >> >> I also fixed call nodes elimination code which did not remove Initialize nodes from merged StringBuilder sequences. Currently it removes only first one. >> >> Added regression tests from bug report. >> >> Tested with Hotspot regression tests, jdk java/lang tests, CTW. >> >> Thanks, >> Vladimir > From roland.westrelin at oracle.com Tue Jun 26 00:55:04 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 26 Jun 2012 09:55:04 +0200 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <4FE8B743.9090207@oracle.com> References: <13AE9B3D-2AB6-4F42-9820-C2DEE87B86D4@oracle.com> <5E3B4B1B-6336-44B5-996F-74082BAD51D5@oracle.com> <4FE8B743.9090207@oracle.com> Message-ID: > Even so John said you can use LS I would suggest to use full name. Why not use nodes names? For a example: GetAndAdd, GetAndSet, CompareAndSwap. It is easier to understand the meaning. Are you suggesting I drop the LS prefix as well? I would expect it to be good for readability that the name contains a hint that all those constants are related to each other. Roland. From roland.westrelin at oracle.com Tue Jun 26 01:53:50 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 26 Jun 2012 10:53:50 +0200 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <4FE8A786.80806@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> <4FE4923B.2060701@oracle.com> <4FE8A786.80806@oracle.com> Message-ID: <2CA85277-9AAF-4531-BD2B-C09DCFE4B093@oracle.com> Hi Vladimir, >> I'm not sure I understand what you mean by: "Then run the same methods over different values (to cove at least some cases in our code) which will produce NaNs to force recompile (or not as in your first implementation). Measure performance with NaNs.". > > Your first implementation does not deoptimize NaN cases so I wanted to see if there is difference in performance. Sorry. It's unclear to me. Is there anything beyond these: >> I wrote a micro benchmark that: >> - chooses 1 million "good" random values for pow >> - time the computation of pow for the 1 million values >> - force the uncommon trap and recompilation >> - do the measurement again with the same 1 million values that you wanted to see measured? >> same thing with exp and I did the measurement with the previous and current version of the code but I don't see any difference. > > Did you verify that during first round you did not get NaN and deoptimized code already? There should be a difference. Did you pre-generate randoms values? Yes to both questions. Here is the micro benchmark: http://cr.openjdk.java.net/~roland/7177917/webrev.02/test/compiler/7177917/Test7177917.java.html Roland. From roland.westrelin at oracle.com Tue Jun 26 02:20:34 2012 From: roland.westrelin at oracle.com (Roland Westrelin) Date: Tue, 26 Jun 2012 11:20:34 +0200 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE8F208.1080500@oracle.com> References: <4FE8F208.1080500@oracle.com> Message-ID: Looks good to me. Roland. From vladimir.x.ivanov at oracle.com Tue Jun 26 06:57:53 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 26 Jun 2012 17:57:53 +0400 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE8F208.1080500@oracle.com> References: <4FE8F208.1080500@oracle.com> Message-ID: <4FE9BFE1.4070906@oracle.com> Vladimir, The changes look good for me. I have a couple of small comments though: 1) Don't you want to add some assertions into skip_string_null_check to check the following precondition on value? 149 // phi->region->if_proj->ifnode->bool 150 BoolNode* b = value->in(0)->in(1)->in(0)->in(1)->as_Bool(); 2) Why do you check only result string length in the tests and not it's content, since you know it? Moreover, "null" and "test" are both 4-char words :-) Best regards, Vladimir Ivanov On 06/26/12 03:19, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7179138/webrev > > 7179138: Incorrect result with String concatenation optimization > > The problem happens when one StringBuilder append/toString sequence uses > the result of previous StringBuilder sequence and both sequences are > merged by string concatenation optimization. Additional condition is the > usage of String.valueOf(s) call as argument of StringBuilder constructor > (which is implicitly generated by Eclipse java compiler). > > In normal case, when toString() result is directly referenced by the > constructor, string concatenation optimization will use input arguments > of previous StringBuilder append/toString sequence as additional > arguments of merged sequence instead of toString() result itself. It is > done because string concatenation optimization replaces the original > code with new one and it will throw away original calls, including > intermediate toString() calls. > > The problem with bug's case is toString() result is separated by Phi > node from diamond shaped code from valueOf(s) method (s==null ? "null" : > s) and it is kept as argument to new String concatenation code. But the > input to valueOf(s) check become dead after the call to toString() is > removed from graph. As result "null" string is used incorrectly instead. > > The fix is to look for diamond shaped code which checks for NULL the > result of toString() call and look through it as we do now for directly > referenced toString() results. > > I also fixed call nodes elimination code which did not remove Initialize > nodes from merged StringBuilder sequences. Currently it removes only > first one. > > Added regression tests from bug report. > > Tested with Hotspot regression tests, jdk java/lang tests, CTW. > > Thanks, > Vladimir From vladimir.kozlov at oracle.com Tue Jun 26 07:27:58 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 07:27:58 -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> Message-ID: <4FE9C6EE.2020603@oracle.com> I first thought about LoadStoreAdd, LoadStoreSet, LoadStoreCmpXchg. I don't like abbreviation (LS). On 6/26/12 12:55 AM, Roland Westrelin wrote: >> Even so John said you can use LS I would suggest to use full name. Why not use nodes names? For a example: GetAndAdd, GetAndSet, CompareAndSwap. It is easier to understand the meaning. > > Are you suggesting I drop the LS prefix as well? > I would expect it to be good for readability that the name contains a hint that all those constants are related to each other. They are used in the same method so one can see that they are related. I don't like abbreviation (LS) but I am not strongly against it. It is up to you. Vladimir > > Roland. From vladimir.kozlov at oracle.com Tue Jun 26 07:29:33 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 07:29:33 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: References: <4FE8F208.1080500@oracle.com> Message-ID: <4FE9C74D.3000801@oracle.com> Thanks, Roland Vladimir On 6/26/12 2:20 AM, Roland Westrelin wrote: > Looks good to me. > > Roland. From vladimir.kozlov at oracle.com Tue Jun 26 08:01:08 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 08:01:08 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE9BFE1.4070906@oracle.com> References: <4FE8F208.1080500@oracle.com> <4FE9BFE1.4070906@oracle.com> Message-ID: <4FE9CEB4.3040503@oracle.com> On 6/26/12 6:57 AM, Vladimir Ivanov wrote: > Vladimir, > > The changes look good for me. > > I have a couple of small comments though: > 1) Don't you want to add some assertions into skip_string_null_check > to check the following precondition on value? > 149 // phi->region->if_proj->ifnode->bool > 150 BoolNode* b = value->in(0)->in(1)->in(0)->in(1)->as_Bool(); PhiNode::is_diamond_phi() checks for graph shape and as_Bool() has assert inside: type##Node *as_##type() const { \ assert(is_##type(), "invalid node class"); \ return (type##Node*)this; \ } \ > > 2) Why do you check only result string length in the tests and not > it's content, since you know it? Moreover, "null" and "test" are both > 4-char words :-) The correct string is "testtest" vs "null" and doubles after each append. The failed (incorrect result) is "nullnulltesttest" instead of "testtesttesttesttesttesttesttest". Vladimir > > Best regards, > Vladimir Ivanov > > On 06/26/12 03:19, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7179138/webrev >> >> 7179138: Incorrect result with String concatenation optimization >> >> The problem happens when one StringBuilder append/toString sequence uses >> the result of previous StringBuilder sequence and both sequences are >> merged by string concatenation optimization. Additional condition is the >> usage of String.valueOf(s) call as argument of StringBuilder constructor >> (which is implicitly generated by Eclipse java compiler). >> >> In normal case, when toString() result is directly referenced by the >> constructor, string concatenation optimization will use input arguments >> of previous StringBuilder append/toString sequence as additional >> arguments of merged sequence instead of toString() result itself. It is >> done because string concatenation optimization replaces the original >> code with new one and it will throw away original calls, including >> intermediate toString() calls. >> >> The problem with bug's case is toString() result is separated by Phi >> node from diamond shaped code from valueOf(s) method (s==null ? "null" : >> s) and it is kept as argument to new String concatenation code. But the >> input to valueOf(s) check become dead after the call to toString() is >> removed from graph. As result "null" string is used incorrectly instead. >> >> The fix is to look for diamond shaped code which checks for NULL the >> result of toString() call and look through it as we do now for directly >> referenced toString() results. >> >> I also fixed call nodes elimination code which did not remove Initialize >> nodes from merged StringBuilder sequences. Currently it removes only >> first one. >> >> Added regression tests from bug report. >> >> Tested with Hotspot regression tests, jdk java/lang tests, CTW. >> >> Thanks, >> Vladimir From vladimir.x.ivanov at oracle.com Tue Jun 26 08:51:53 2012 From: vladimir.x.ivanov at oracle.com (Vladimir Ivanov) Date: Tue, 26 Jun 2012 19:51:53 +0400 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE9CEB4.3040503@oracle.com> References: <4FE8F208.1080500@oracle.com> <4FE9BFE1.4070906@oracle.com> <4FE9CEB4.3040503@oracle.com> Message-ID: <4FE9DA99.3030103@oracle.com> Vladimir, I see. Thanks for the clarifications! Best regards, Vladimir Ivanov On 06/26/12 19:01, Vladimir Kozlov wrote: > On 6/26/12 6:57 AM, Vladimir Ivanov wrote: >> Vladimir, >> >> The changes look good for me. >> >> I have a couple of small comments though: >> 1) Don't you want to add some assertions into skip_string_null_check >> to check the following precondition on value? >> 149 // phi->region->if_proj->ifnode->bool >> 150 BoolNode* b = value->in(0)->in(1)->in(0)->in(1)->as_Bool(); > > PhiNode::is_diamond_phi() checks for graph shape and as_Bool() has > assert inside: > > type##Node *as_##type() const { \ > assert(is_##type(), "invalid node class"); \ > return (type##Node*)this; \ > } \ > >> >> 2) Why do you check only result string length in the tests and not >> it's content, since you know it? Moreover, "null" and "test" are both >> 4-char words :-) > > The correct string is "testtest" vs "null" and doubles after each > append. The failed (incorrect result) is "nullnulltesttest" instead of > "testtesttesttesttesttesttesttest". > > Vladimir > >> >> Best regards, >> Vladimir Ivanov >> >> On 06/26/12 03:19, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7179138/webrev >>> >>> 7179138: Incorrect result with String concatenation optimization >>> >>> The problem happens when one StringBuilder append/toString sequence uses >>> the result of previous StringBuilder sequence and both sequences are >>> merged by string concatenation optimization. Additional condition is the >>> usage of String.valueOf(s) call as argument of StringBuilder constructor >>> (which is implicitly generated by Eclipse java compiler). >>> >>> In normal case, when toString() result is directly referenced by the >>> constructor, string concatenation optimization will use input arguments >>> of previous StringBuilder append/toString sequence as additional >>> arguments of merged sequence instead of toString() result itself. It is >>> done because string concatenation optimization replaces the original >>> code with new one and it will throw away original calls, including >>> intermediate toString() calls. >>> >>> The problem with bug's case is toString() result is separated by Phi >>> node from diamond shaped code from valueOf(s) method (s==null ? "null" : >>> s) and it is kept as argument to new String concatenation code. But the >>> input to valueOf(s) check become dead after the call to toString() is >>> removed from graph. As result "null" string is used incorrectly instead. >>> >>> The fix is to look for diamond shaped code which checks for NULL the >>> result of toString() call and look through it as we do now for directly >>> referenced toString() results. >>> >>> I also fixed call nodes elimination code which did not remove Initialize >>> nodes from merged StringBuilder sequences. Currently it removes only >>> first one. >>> >>> Added regression tests from bug report. >>> >>> Tested with Hotspot regression tests, jdk java/lang tests, CTW. >>> >>> Thanks, >>> Vladimir From vladimir.kozlov at oracle.com Tue Jun 26 09:01:33 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 09:01:33 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE9DA99.3030103@oracle.com> References: <4FE8F208.1080500@oracle.com> <4FE9BFE1.4070906@oracle.com> <4FE9CEB4.3040503@oracle.com> <4FE9DA99.3030103@oracle.com> Message-ID: <4FE9DCDD.6080006@oracle.com> Thank you, Vladimir, for review. Vladimir Vladimir Ivanov wrote: > Vladimir, > > I see. Thanks for the clarifications! > > Best regards, > Vladimir Ivanov > > On 06/26/12 19:01, Vladimir Kozlov wrote: >> On 6/26/12 6:57 AM, Vladimir Ivanov wrote: >>> Vladimir, >>> >>> The changes look good for me. >>> >>> I have a couple of small comments though: >>> 1) Don't you want to add some assertions into skip_string_null_check >>> to check the following precondition on value? >>> 149 // phi->region->if_proj->ifnode->bool >>> 150 BoolNode* b = value->in(0)->in(1)->in(0)->in(1)->as_Bool(); >> PhiNode::is_diamond_phi() checks for graph shape and as_Bool() has >> assert inside: >> >> type##Node *as_##type() const { \ >> assert(is_##type(), "invalid node class"); \ >> return (type##Node*)this; \ >> } \ >> >>> 2) Why do you check only result string length in the tests and not >>> it's content, since you know it? Moreover, "null" and "test" are both >>> 4-char words :-) >> The correct string is "testtest" vs "null" and doubles after each >> append. The failed (incorrect result) is "nullnulltesttest" instead of >> "testtesttesttesttesttesttesttest". >> >> Vladimir >> >>> Best regards, >>> Vladimir Ivanov >>> >>> On 06/26/12 03:19, Vladimir Kozlov wrote: >>>> http://cr.openjdk.java.net/~kvn/7179138/webrev >>>> >>>> 7179138: Incorrect result with String concatenation optimization >>>> >>>> The problem happens when one StringBuilder append/toString sequence uses >>>> the result of previous StringBuilder sequence and both sequences are >>>> merged by string concatenation optimization. Additional condition is the >>>> usage of String.valueOf(s) call as argument of StringBuilder constructor >>>> (which is implicitly generated by Eclipse java compiler). >>>> >>>> In normal case, when toString() result is directly referenced by the >>>> constructor, string concatenation optimization will use input arguments >>>> of previous StringBuilder append/toString sequence as additional >>>> arguments of merged sequence instead of toString() result itself. It is >>>> done because string concatenation optimization replaces the original >>>> code with new one and it will throw away original calls, including >>>> intermediate toString() calls. >>>> >>>> The problem with bug's case is toString() result is separated by Phi >>>> node from diamond shaped code from valueOf(s) method (s==null ? "null" : >>>> s) and it is kept as argument to new String concatenation code. But the >>>> input to valueOf(s) check become dead after the call to toString() is >>>> removed from graph. As result "null" string is used incorrectly instead. >>>> >>>> The fix is to look for diamond shaped code which checks for NULL the >>>> result of toString() call and look through it as we do now for directly >>>> referenced toString() results. >>>> >>>> I also fixed call nodes elimination code which did not remove Initialize >>>> nodes from merged StringBuilder sequences. Currently it removes only >>>> first one. >>>> >>>> Added regression tests from bug report. >>>> >>>> Tested with Hotspot regression tests, jdk java/lang tests, CTW. >>>> >>>> Thanks, >>>> Vladimir From vladimir.kozlov at oracle.com Tue Jun 26 11:04:51 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Tue, 26 Jun 2012 18:04:51 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 7179138: Incorrect result with String concatenation optimization Message-ID: <20120626180456.C41C147B2C@hg.openjdk.java.net> Changeset: 751bd303aa45 Author: kvn Date: 2012-06-26 09:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/751bd303aa45 7179138: Incorrect result with String concatenation optimization Summary: check for and skip diamond shaped NULL check code for the result of toString() Reviewed-by: twisti, roland ! src/share/vm/opto/stringopts.cpp + test/compiler/7179138/Test7179138_1.java + test/compiler/7179138/Test7179138_2.java From john.r.rose at oracle.com Tue Jun 26 11:24:45 2012 From: john.r.rose at oracle.com (John Rose) Date: Tue, 26 Jun 2012 11:24:45 -0700 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <4FE9C6EE.2020603@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> Message-ID: <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@oracle.com> On Jun 26, 2012, at 7:27 AM, Vladimir Kozlov wrote: > I first thought about LoadStoreAdd, LoadStoreSet, LoadStoreCmpXchg. I don't like abbreviation (LS). > > On 6/26/12 12:55 AM, Roland Westrelin wrote: >>> Even so John said you can use LS I would suggest to use full name. Why not use nodes names? For a example: GetAndAdd, GetAndSet, CompareAndSwap. It is easier to understand the meaning. >> >> Are you suggesting I drop the LS prefix as well? >> I would expect it to be good for readability that the name contains a hint that all those constants are related to each other. > > They are used in the same method so one can see that they are related. I don't like abbreviation (LS) but I am not strongly against it. It is up to you. > > Vladimir Here's another $0.02 on the subject. To me the important thing is that enums (like all manifest constants) should be easy to distinguish from other names (variables, classes), and easy to relate to their definition site and meaning. There are several ways we do this in the source base. A common prefix or suffix is one way, a common theme word is another way. I just tried the following grep and found the output instructive: grep -A2 '^ enum[^;]*$' $(hg loc -I 'src/share/**/*.hpp') Leading underscores and/or all-caps spellings can reinforce the status of enum names as manifest constants. The bare operation names above (in either lower case or camel-case) do not look like manifest constants to me; that is why I suggested some extra decoration. But it is just a suggestion. I like Vladimir's idea of adapting pre-existing names (GetAndSet), but without adjustment they look too much like C++ class names. Note that our Node type enums have an Op_ prefix, so they can be recognized as constants more easily. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120626/d3f6705d/attachment-0001.html From vladimir.kozlov at oracle.com Tue Jun 26 12:04:01 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 12:04:01 -0700 Subject: RFR (S): 7177917: Failed test java/lang/Math/PowTests.java In-Reply-To: <2CA85277-9AAF-4531-BD2B-C09DCFE4B093@oracle.com> References: <9F6B04F8-8E42-4462-8EDB-9897C1D4EB85@oracle.com> <4FE36C1D.8060301@oracle.com> <78637ECB-0E75-46D2-A29A-0B2F2E76DE3F@oracle.com> <4FE4923B.2060701@oracle.com> <4FE8A786.80806@oracle.com> <2CA85277-9AAF-4531-BD2B-C09DCFE4B093@oracle.com> Message-ID: <4FEA07A1.8050709@oracle.com> Roland Westrelin wrote: > Hi Vladimir, > >>> I'm not sure I understand what you mean by: "Then run the same methods over different values (to cove at least some cases in our code) which will produce NaNs to force recompile (or not as in your first implementation). Measure performance with NaNs.". >> Your first implementation does not deoptimize NaN cases so I wanted to see if there is difference in performance. > > Sorry. It's unclear to me. Is there anything beyond these: > >>> I wrote a micro benchmark that: >>> - chooses 1 million "good" random values for pow >>> - time the computation of pow for the 1 million values >>> - force the uncommon trap and recompilation >>> - do the measurement again with the same 1 million values > > that you wanted to see measured? - do the measurement with "bad" 1 million values when pow produces NaN but it is not important so we can skip it. > >>> same thing with exp and I did the measurement with the previous and current version of the code but I don't see any difference. I also do not see difference between your 2 implementations with your test. I still prefer second (with uncommon trap) since it generate simpler code for normal case. >> Did you verify that during first round you did not get NaN and deoptimized code already? There should be a difference. Did you pre-generate randoms values? > > Yes to both questions. > > Here is the micro benchmark: > http://cr.openjdk.java.net/~roland/7177917/webrev.02/test/compiler/7177917/Test7177917.java.html The test is good. I thought that a big array will not fit into CPU's cache and will affect performance, but it does not - hardware prefetch really works in modern CPUs :) Your changes are good. You can push then if you think they are ready and well tested. Thanks, Vladimir > > Roland. From vladimir.kozlov at oracle.com Tue Jun 26 12:25:16 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 12:25:16 -0700 Subject: RFR (M): 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() In-Reply-To: <314BE454-3F24-4EA1-8CF2-B1FE21DFD439@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> Message-ID: <4FEA0C9C.3050300@oracle.com> OK, I think we should stop here. Roland, use what you think is best. Vladimir John Rose wrote: > On Jun 26, 2012, at 7:27 AM, Vladimir Kozlov wrote: > >> I first thought about LoadStoreAdd, LoadStoreSet, LoadStoreCmpXchg. I >> don't like abbreviation (LS). >> >> On 6/26/12 12:55 AM, Roland Westrelin wrote: >>>> Even so John said you can use LS I would suggest to use full name. >>>> Why not use nodes names? For a example: GetAndAdd, GetAndSet, >>>> CompareAndSwap. It is easier to understand the meaning. >>> >>> Are you suggesting I drop the LS prefix as well? >>> I would expect it to be good for readability that the name contains a >>> hint that all those constants are related to each other. >> >> They are used in the same method so one can see that they are related. >> I don't like abbreviation (LS) but I am not strongly against it. It is >> up to you. >> >> Vladimir > > Here's another $0.02 on the subject. > > To me the important thing is that enums (like all manifest constants) > should be easy to distinguish from other names (variables, classes), and > easy to relate to their definition site and meaning. > > There are several ways we do this in the source base. A common > prefix or suffix is one way, a common theme word is another way. I just > tried the following grep and found the output instructive: > grep -A2 '^ enum[^;]*$' $(hg loc -I 'src/share/**/*.hpp') > > Leading underscores and/or all-caps spellings can reinforce the status > of enum names as manifest constants. > > The bare operation names above (in either lower case or camel-case) do > not look like manifest constants to me; that is why I suggested some > extra decoration. But it is just a suggestion. I like Vladimir's idea > of adapting pre-existing names (GetAndSet), but without adjustment they > look too much like C++ class names. Note that our Node type enums have > an Op_ prefix, so they can be recognized as constants more easily. > > ? John From rednaxelafx at gmail.com Tue Jun 26 13:06:57 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Wed, 27 Jun 2012 04:06:57 +0800 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FE8F208.1080500@oracle.com> References: <4FE8F208.1080500@oracle.com> Message-ID: Hi Vladimir, Sorry for being too late for this CR, but I'd like to suggest one further change in StringConcat::argument_uncast(): diff -r 751bd303aa45 src/share/vm/opto/stringopts.cpp --- a/src/share/vm/opto/stringopts.cpp Tue Jun 26 09:06:16 2012 -0700 +++ b/src/share/vm/opto/stringopts.cpp Wed Jun 27 03:50:45 2012 +0800 @@ -172,7 +172,7 @@ int amode = mode(i); if (amode == StringConcat::StringMode || amode == StringConcat::StringNullCheckMode) { - arg = skip_string_null_check(arg); + arg = skip_string_null_check(arg)->uncast(); } return arg; } This could help situations where there are extra levels of toString() calls in the way, e.g. public class MultipleUse { public static String foo() { String s = "testing"; s = new StringBuilder(s).append(s).toString().toString(); s = new StringBuilder(s).append(s).toString(); return s; } public static void main(String[] args) throws Exception { final String s = "testing"; for (int i = 0; i < 20000; i++) { if (!(s + s + s + s).equals(foo())) { System.out.println("bad string concat"); } } System.out.println("done"); System.in.read(); } } By adding the uncast() call, coalescing string concats would still work in this case. This should still be safe because argument_uncast() is only used when coalesing string concats, and that the result of a SB.toString() cannot be null. Regards, Kris On Tue, Jun 26, 2012 at 7:19 AM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~**kvn/7179138/webrev > > 7179138: Incorrect result with String concatenation optimization > > The problem happens when one StringBuilder append/toString sequence uses > the result of previous StringBuilder sequence and both sequences are merged > by string concatenation optimization. Additional condition is the usage of > String.valueOf(s) call as argument of StringBuilder constructor (which is > implicitly generated by Eclipse java compiler). > > In normal case, when toString() result is directly referenced by the > constructor, string concatenation optimization will use input arguments of > previous StringBuilder append/toString sequence as additional arguments of > merged sequence instead of toString() result itself. It is done because > string concatenation optimization replaces the original code with new one > and it will throw away original calls, including intermediate toString() > calls. > > The problem with bug's case is toString() result is separated by Phi node > from diamond shaped code from valueOf(s) method (s==null ? "null" : s) and > it is kept as argument to new String concatenation code. But the input to > valueOf(s) check become dead after the call to toString() is removed from > graph. As result "null" string is used incorrectly instead. > > The fix is to look for diamond shaped code which checks for NULL the > result of toString() call and look through it as we do now for directly > referenced toString() results. > > I also fixed call nodes elimination code which did not remove Initialize > nodes from merged StringBuilder sequences. Currently it removes only first > one. > > Added regression tests from bug report. > > Tested with Hotspot regression tests, jdk java/lang tests, CTW. > > Thanks, > Vladimir > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120627/42aaea53/attachment.html From vladimir.kozlov at oracle.com Tue Jun 26 14:53:24 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 26 Jun 2012 14:53:24 -0700 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: References: <4FE8F208.1080500@oracle.com> Message-ID: <4FEA2F54.3040801@oracle.com> Thank you, Kris Unfortunately I already pushed my fix. I filed RFE 7179968: improve String concatenation optimization There are other cases where we bailout and which could be fixed. We will combine those fixes. Thanks, Vladimir Krystal Mok wrote: > Hi Vladimir, > > Sorry for being too late for this CR, but I'd like to suggest one > further change in StringConcat::argument_uncast(): > > diff -r 751bd303aa45 src/share/vm/opto/stringopts.cpp > --- a/src/share/vm/opto/stringopts.cpp Tue Jun 26 09:06:16 2012 -0700 > +++ b/src/share/vm/opto/stringopts.cpp Wed Jun 27 03:50:45 2012 +0800 > @@ -172,7 +172,7 @@ > int amode = mode(i); > if (amode == StringConcat::StringMode || > amode == StringConcat::StringNullCheckMode) { > - arg = skip_string_null_check(arg); > + arg = skip_string_null_check(arg)->uncast(); > } > return arg; > } > > > This could help situations where there are extra levels of toString() > calls in the way, e.g. > > public class MultipleUse { > public static String foo() { > String s = "testing"; > s = new StringBuilder(s).append(s).toString().toString(); > s = new StringBuilder(s).append(s).toString(); > return s; > } > > public static void main(String[] args) throws Exception { > final String s = "testing"; > for (int i = 0; i < 20000; i++) { > if (!(s + s + s + s).equals(foo())) { > System.out.println("bad string concat"); > } > } > System.out.println("done"); > System.in.read(); > } > } > > By adding the uncast() call, coalescing string concats would still work > in this case. > This should still be safe because argument_uncast() is only used when > coalesing string concats, and that the result of a SB.toString() cannot > be null. > > Regards, > Kris > > On Tue, Jun 26, 2012 at 7:19 AM, Vladimir Kozlov > > wrote: > > http://cr.openjdk.java.net/~__kvn/7179138/webrev > > > 7179138: Incorrect result with String concatenation optimization > > The problem happens when one StringBuilder append/toString sequence > uses the result of previous StringBuilder sequence and both > sequences are merged by string concatenation optimization. > Additional condition is the usage of String.valueOf(s) call as > argument of StringBuilder constructor (which is implicitly generated > by Eclipse java compiler). > > In normal case, when toString() result is directly referenced by the > constructor, string concatenation optimization will use input > arguments of previous StringBuilder append/toString sequence as > additional arguments of merged sequence instead of toString() result > itself. It is done because string concatenation optimization > replaces the original code with new one and it will throw away > original calls, including intermediate toString() calls. > > The problem with bug's case is toString() result is separated by Phi > node from diamond shaped code from valueOf(s) method (s==null ? > "null" : s) and it is kept as argument to new String concatenation > code. But the input to valueOf(s) check become dead after the call > to toString() is removed from graph. As result "null" string is used > incorrectly instead. > > The fix is to look for diamond shaped code which checks for NULL the > result of toString() call and look through it as we do now for > directly referenced toString() results. > > I also fixed call nodes elimination code which did not remove > Initialize nodes from merged StringBuilder sequences. Currently it > removes only first one. > > Added regression tests from bug report. > > Tested with Hotspot regression tests, jdk java/lang tests, CTW. > > Thanks, > Vladimir > > From rednaxelafx at gmail.com Tue Jun 26 18:01:43 2012 From: rednaxelafx at gmail.com (Kris Mok) Date: Wed, 27 Jun 2012 09:01:43 +0800 Subject: Request for reviews (S): 7179138: Incorrect result with String concatenation optimization In-Reply-To: <4FEA2F54.3040801@oracle.com> References: <4FE8F208.1080500@oracle.com> <4FEA2F54.3040801@oracle.com> Message-ID: <9CFABA83-04BD-4002-9D3E-7A77C347E46D@gmail.com> I'm fine with that. Thank you, Vladimir. - Kris On 2012-6-27, at 5:53, Vladimir Kozlov wrote: > Thank you, Kris > > Unfortunately I already pushed my fix. > > I filed RFE 7179968: improve String concatenation optimization > > There are other cases where we bailout and which could be fixed. We will combine those fixes. > > Thanks, > Vladimir > > Krystal Mok wrote: >> Hi Vladimir, >> Sorry for being too late for this CR, but I'd like to suggest one further change in StringConcat::argument_uncast(): >> diff -r 751bd303aa45 src/share/vm/opto/stringopts.cpp >> --- a/src/share/vm/opto/stringopts.cpp Tue Jun 26 09:06:16 2012 -0700 >> +++ b/src/share/vm/opto/stringopts.cpp Wed Jun 27 03:50:45 2012 +0800 >> @@ -172,7 +172,7 @@ >> int amode = mode(i); >> if (amode == StringConcat::StringMode || >> amode == StringConcat::StringNullCheckMode) { >> - arg = skip_string_null_check(arg); >> + arg = skip_string_null_check(arg)->uncast(); >> } >> return arg; >> } >> This could help situations where there are extra levels of toString() calls in the way, e.g. >> public class MultipleUse { >> public static String foo() { >> String s = "testing"; >> s = new StringBuilder(s).append(s).toString().toString(); >> s = new StringBuilder(s).append(s).toString(); >> return s; >> } >> public static void main(String[] args) throws Exception { >> final String s = "testing"; >> for (int i = 0; i < 20000; i++) { >> if (!(s + s + s + s).equals(foo())) { >> System.out.println("bad string concat"); >> } >> } >> System.out.println("done"); >> System.in.read(); >> } >> } >> By adding the uncast() call, coalescing string concats would still work in this case. >> This should still be safe because argument_uncast() is only used when coalesing string concats, and that the result of a SB.toString() cannot be null. >> Regards, >> Kris >> On Tue, Jun 26, 2012 at 7:19 AM, Vladimir Kozlov > wrote: >> http://cr.openjdk.java.net/~__kvn/7179138/webrev >> >> 7179138: Incorrect result with String concatenation optimization >> The problem happens when one StringBuilder append/toString sequence >> uses the result of previous StringBuilder sequence and both >> sequences are merged by string concatenation optimization. >> Additional condition is the usage of String.valueOf(s) call as >> argument of StringBuilder constructor (which is implicitly generated >> by Eclipse java compiler). >> In normal case, when toString() result is directly referenced by the >> constructor, string concatenation optimization will use input >> arguments of previous StringBuilder append/toString sequence as >> additional arguments of merged sequence instead of toString() result >> itself. It is done because string concatenation optimization >> replaces the original code with new one and it will throw away >> original calls, including intermediate toString() calls. >> The problem with bug's case is toString() result is separated by Phi >> node from diamond shaped code from valueOf(s) method (s==null ? >> "null" : s) and it is kept as argument to new String concatenation >> code. But the input to valueOf(s) check become dead after the call >> to toString() is removed from graph. As result "null" string is used >> incorrectly instead. >> The fix is to look for diamond shaped code which checks for NULL the >> result of toString() call and look through it as we do now for >> directly referenced toString() results. >> I also fixed call nodes elimination code which did not remove >> Initialize nodes from merged StringBuilder sequences. Currently it >> removes only first one. >> Added regression tests from bug report. >> Tested with Hotspot regression tests, jdk java/lang tests, CTW. >> Thanks, >> Vladimir From rednaxelafx at gmail.com Wed Jun 27 06:37:55 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Wed, 27 Jun 2012 21:37:55 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: Hi all, Just FYI, I've posted an updated version of the patch here: https://gist.github.com/db03ab15ef8b76246b84#file_checked_add_prototype.ver3.patch It pretty much implements what John suggested in a previous email (quoted below). This version still suffers from a couple of problem mentioned before: 1. It's emitting a jmpConU instead of a jmpCon during instruction selection. Is there a way to force it use jmpCon here? 2. I had to use a fixed register for the sum projection of CheckedAddI, otherwise I couldn't find a way to specify this projection should use the same register as "dst". - Kris On Wed, Jun 20, 2012 at 3:12 AM, John Rose wrote: > On Jun 19, 2012, at 7:07 AM, Krystal Mok wrote: > > In the DivMod example, Div and Mod nodes with the same inputs start out > floating separately, and get fused into a single DivMod late in Optimize(). > The DivMod node type is a MultiNode with 2 projections, one for the div and > the other for the mod. There's special treatment of DivMod in Matcher, and > custom logic to match the projections. > > If I add a new node type AddIOverflow following the same model, I might > get it like this: > https://gist.github.com/bdd13666e4796b09f36e > This node type would have 2 projections just like DivMod, one for the add, > and the other for the overflow condition. > > > (rename INT_CC => INT_CC_PAIR for clarity) > > Then there are two questions: > > 1. I'd need another new node type, presumably called "CheckAddIOverflow" > here, that derives from CmpINode and acts as if it produces condition > codes. AddI(a, b) and CheckAddIOverflow(a, b) float separately, just like > the DivMod example. They get fused up late in Optimize() into the > AddIOverflow shown above. Does this sound right? > > > Yes, that sounds right. The names don't feel right, yet. What's the best > term for a version of Add which is not subject to overflow? That's what > the user will be trying to build. Maybe a word like "Checked" or "Safe" is > best, rather than focusing on overflow. > > Maybe: AddI(a, b) plus CmpAddI(a, b) => CheckedAddI(a, b) plus two > projections yielding the first two values. > You might be right about adding two new BoolNode states. That way you can > think in terms of: > if ((c = a + b) != 0) ... > turning into > c=AddI(a,b); cc=CmpAddI(a,b); if(Bool::nz(cc)) ... > > And overflow turns into the natural special case supported by the HW. > > 2. With AddIOverflow going into the Matcher, how should I write the match > rule in the ad file, to match: If(Bool(Proj(AddIOverflow(a, b)).overflow, > ne), labl) ? > > Would it look like: match(If cop (AddIOverflow dest src)) ? > > > (You have probably already noticed it; the matcher.cpp comment "Convert > (If (Bool (CmpX A B))) into (If (Bool) (CmpX A B))" is highly relevant to > matching If nodes. See also uses of BinaryNode.) > > Following the DivMod pattern, the matcher (in its current state) will have > to match the CheckedAddI as a stand-alone node. Subtrees of matches can > only have one use; this is a key matcher invariant. But every DivMod or > CheckedAddI will have two uses: Its two projections. > > So you'll have: > > match(CheckedAddI); > > and the pre-existing rule: > > If(cop cmp) > > The cop will be Bool::ov (or Bool::nz in the example above) and the cmp > will be CheckedAddI.cmp. > > You might think about extending the matcher machine to allow rules which > specify the disposition of both projections: > > match( (If cop (Proj#1 (CheckedAddI a b))); (Set c (Proj#0 (CheckedAddI > a b)))); > > This would be a Big Project. Long term, I believe it is worth thinking > about ways to model instructions that do more than one thing at a time. > > If the pair of overflow/non-overflow conditions are in BoolTest and in > cmpOp, perhaps I wouldn't need to match the If node, and could just let > jmpCon rule handle it as-is. > That way I just have to match AddIOverflow itself in the ad file, like > DivMod. > > > -- John > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120627/edf4a294/attachment.html From forax at univ-mlv.fr Wed Jun 27 06:52:23 2012 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Wed, 27 Jun 2012 15:52:23 +0200 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: <4FEB1017.40109@univ-mlv.fr> On 06/27/2012 03:37 PM, Krystal Mok wrote: > Hi all, > > Just FYI, I've posted an updated version of the patch here: > https://gist.github.com/db03ab15ef8b76246b84#file_checked_add_prototype.ver3.patch > > It pretty much implements what John suggested in a previous email > (quoted below). > > This version still suffers from a couple of problem mentioned before: > 1. It's emitting a jmpConU instead of a jmpCon during instruction > selection. Is there a way to force it use jmpCon here? I'm may be wrong but the idea is to put 0 (or a very small value) to the frequency of the basic block that follow the jump on overflow. > 2. I had to use a fixed register for the sum projection of > CheckedAddI, otherwise I couldn't find a way to specify this > projection should use the same register as "dst". > > - Kris R?mi From rednaxelafx at gmail.com Wed Jun 27 08:05:32 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Wed, 27 Jun 2012 23:05:32 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FEB1017.40109@univ-mlv.fr> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FEB1017.40109@univ-mlv.fr> Message-ID: On Wed, Jun 27, 2012 at 9:52 PM, R?mi Forax wrote: > On 06/27/2012 03:37 PM, Krystal Mok wrote: > >> Hi all, >> >> Just FYI, I've posted an updated version of the patch here: >> https://gist.github.com/**db03ab15ef8b76246b84#file_** >> checked_add_prototype.ver3.**patch >> >> It pretty much implements what John suggested in a previous email (quoted >> below). >> >> This version still suffers from a couple of problem mentioned before: >> 1. It's emitting a jmpConU instead of a jmpCon during instruction >> selection. Is there a way to force it use jmpCon here? >> > > I'm may be wrong but the idea is to put 0 (or a very small value) to the > frequency of the basic block > that follow the jump on overflow. > > No, that's a different problem. The problem here is that the Matcher decided to use an unsigned version of conditional jump, instead of a normal (signed) version. It doesn't really affect the actual emitted code because I've made both cases do the same thing. But it just doesn't feel right to be using the unsigned version here. - Kris > > 2. I had to use a fixed register for the sum projection of CheckedAddI, >> otherwise I couldn't find a way to specify this projection should use the >> same register as "dst". >> >> - Kris >> > > R?mi > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120627/386fa7e9/attachment.html From Roland.Westrelin at oracle.COM Thu Jun 28 03:43:28 2012 From: Roland.Westrelin at oracle.COM (Roland Westrelin) Date: Thu, 28 Jun 2012 12:43:28 +0200 Subject: nmethod::has_dependencies() always return true? Message-ID: <464639B0-5492-4E5A-8640-5E92EA885E5A@oracle.COM> I noticed on one of my tests that nmethod::has_dependencies() for an nmethod that has no dependency returned true. Given ciEnv::register_method() calls dependencies()->encode_content_bytes() whether the compilation recorded dependencies or not and Dependencies::encode_content_bytes() always at least add a sentinel byte, it seems to make sense that Dependencies::size_in_bytes() is always strictly positive and so that nmethod::has_dependencies() always return true. Roland. From vladimir.kozlov at oracle.com Thu Jun 28 07:18:13 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 28 Jun 2012 07:18:13 -0700 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> Message-ID: <4FEC67A5.6030707@oracle.com> This looks good. Add next line only in cmpOp() operand to matching signed. + overflow(0x0, "o"); + no_overflow(0x1, "no"); Do not rename, just use 'n' as argument: +CheckedAddINode* CheckedAddINode::make(Compile* C, Node* cmpadd) { + Node* n = cmpadd; Did you tried INT_REG_mask() instead of INT_RAX_REG_mask() in checkedAddI_sum_proj_mask() to avoid using bound register in checkedAddI_rReg()? And did you tried match(Set dst (CheckedAddI dst src))? Thanks, Vladimir Krystal Mok wrote: > Hi all, > > Just FYI, I've posted an updated version of the patch here: > https://gist.github.com/db03ab15ef8b76246b84#file_checked_add_prototype.ver3.patch > > It pretty much implements what John suggested in a previous email > (quoted below). > > This version still suffers from a couple of problem mentioned before: > 1. It's emitting a jmpConU instead of a jmpCon during instruction > selection. Is there a way to force it use jmpCon here? > 2. I had to use a fixed register for the sum projection of CheckedAddI, > otherwise I couldn't find a way to specify this projection should use > the same register as "dst". > > - Kris > > On Wed, Jun 20, 2012 at 3:12 AM, John Rose > wrote: > > On Jun 19, 2012, at 7:07 AM, Krystal Mok wrote: > >> In the DivMod example, Div and Mod nodes with the same inputs >> start out floating separately, and get fused into a single DivMod >> late in Optimize(). The DivMod node type is a MultiNode with 2 >> projections, one for the div and the other for the mod. There's >> special treatment of DivMod in Matcher, and custom logic to match >> the projections. >> >> If I add a new node type AddIOverflow following the same model, I >> might get it like this: >> https://gist.github.com/bdd13666e4796b09f36e >> This node type would have 2 projections just like DivMod, one for >> the add, and the other for the overflow condition. > > (rename INT_CC ? INT_CC_PAIR for clarity) > >> Then there are two questions: >> >> 1. I'd need another new node type, presumably called >> "CheckAddIOverflow" here, that derives from CmpINode and acts as >> if it produces condition codes. AddI(a, b) and >> CheckAddIOverflow(a, b) float separately, just like the DivMod >> example. They get fused up late in Optimize() into the >> AddIOverflow shown above. Does this sound right? > > Yes, that sounds right. The names don't feel right, yet. What's > the best term for a version of Add which is not subject to overflow? > That's what the user will be trying to build. Maybe a word like > "Checked" or "Safe" is best, rather than focusing on overflow. > > Maybe: AddI(a, b) plus CmpAddI(a, b) ? CheckedAddI(a, b) plus two > projections yielding the first two values. > You might be right about adding two new BoolNode states. That way > you can think in terms of: > if ((c = a + b) != 0) ? > turning into > c=AddI(a,b); cc=CmpAddI(a,b); if(Bool::nz(cc)) ? > > And overflow turns into the natural special case supported by the HW. > >> 2. With AddIOverflow going into the Matcher, how should I write >> the match rule in the ad file, to >> match: If(Bool(Proj(AddIOverflow(a, b)).overflow, ne), labl) ? >> >> Would it look like: match(If cop (AddIOverflow dest src)) ? > > (You have probably already noticed it; the matcher.cpp comment > "Convert (If (Bool (CmpX A B))) into (If (Bool) (CmpX A B))" is > highly relevant to matching If nodes. See also uses of BinaryNode.) > > Following the DivMod pattern, the matcher (in its current state) > will have to match the CheckedAddI as a stand-alone node. Subtrees > of matches can only have one use; this is a key matcher invariant. > But every DivMod or CheckedAddI will have two uses: Its two > projections. > > So you'll have: > > match(CheckedAddI); > > and the pre-existing rule: > > If(cop cmp) > > The cop will be Bool::ov (or Bool::nz in the example above) and the > cmp will be CheckedAddI.cmp. > > You might think about extending the matcher machine to allow rules > which specify the disposition of both projections: > > match( (If cop (Proj#1 (CheckedAddI a b))); (Set c (Proj#0 > (CheckedAddI a b)))); > > This would be a Big Project. Long term, I believe it is worth > thinking about ways to model instructions that do more than one > thing at a time. > >> If the pair of overflow/non-overflow conditions are in BoolTest >> and in cmpOp, perhaps I wouldn't need to match the If node, and >> could just let jmpCon rule handle it as-is. >> That way I just have to match AddIOverflow itself in the ad file, >> like DivMod. > > ? John > > From vladimir.kozlov at oracle.com Thu Jun 28 14:40:41 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Thu, 28 Jun 2012 21:40:41 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 23 new changesets Message-ID: <20120628214130.1959B47BAC@hg.openjdk.java.net> Changeset: e77b8e0ed1f8 Author: cl Date: 2012-06-07 12:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e77b8e0ed1f8 Added tag jdk8-b42 for changeset 55954061c6e8 ! .hgtags Changeset: b38fb5f31e31 Author: katleman Date: 2012-06-14 13:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b38fb5f31e31 Added tag jdk8-b43 for changeset e77b8e0ed1f8 ! .hgtags Changeset: 5ba29a1db46e Author: amurillo Date: 2012-06-15 14:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5ba29a1db46e Merge Changeset: 831e5c76a20a Author: amurillo Date: 2012-06-15 14:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/831e5c76a20a Added tag hs24-b14 for changeset 5ba29a1db46e ! .hgtags Changeset: 1c280e5b8d31 Author: amurillo Date: 2012-06-15 14:17 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1c280e5b8d31 7175515: new hotspot build - hs24-b15 Reviewed-by: jcoomes ! make/hotspot_version Changeset: e9140bf80b4a Author: coleenp Date: 2012-06-13 19:52 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e9140bf80b4a 7158800: Improve storage of symbol tables Summary: Use an alternate version of hashing algorithm for symbol string tables and after a certain bucket size to improve performance Reviewed-by: pbk, kamg, dlong, kvn, fparain + src/share/vm/classfile/altHashing.cpp + src/share/vm/classfile/altHashing.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/memory/dump.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp ! src/share/vm/utilities/hashtable.inline.hpp + test/runtime/7158800/BadUtf8.java + test/runtime/7158800/InternTest.java + test/runtime/7158800/badstrings.txt Changeset: b87e5a681416 Author: poonam Date: 2012-06-14 02:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b87e5a681416 6310967: SA: jstack -m produce failures in output Summary: While looking for the sender frame check that the frame pointer should not be less than the stack pointer. Reviewed-by: dholmes, sla ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/amd64/AMD64CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/x86/X86CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/sparc/LinuxSPARCCFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86CFrame.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcCFrame.java ! agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java Changeset: e16bc4ad5f20 Author: poonam Date: 2012-06-14 22:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e16bc4ad5f20 Merge Changeset: 86e17e45019d Author: coleenp Date: 2012-06-15 07:51 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/86e17e45019d 7177307: fix fo CR7158800 doesn't contain Test7158800.sh Summary: forgot to hg add it Reviewed-by: pbk, kamg, dlong, kvn, fparain + test/runtime/7158800/Test7158800.sh Changeset: 58ad5f22317e Author: sla Date: 2012-06-18 11:33 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/58ad5f22317e Merge ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/runtime/globals.hpp Changeset: d1b0644d6acf Author: dcubed Date: 2012-06-20 14:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d1b0644d6acf 7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips) Summary: Fix bad paths in client/64 and server/64 debug info and symlink creation Reviewed-by: ohair, dholmes ! make/solaris/makefiles/add_gnu_debuglink.make ! make/solaris/makefiles/dtrace.make ! make/solaris/makefiles/fix_empty_sec_hdr_flags.make Changeset: 7de1d3b57419 Author: dcubed Date: 2012-06-20 14:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7de1d3b57419 Merge ! make/solaris/makefiles/defs.make Changeset: cfa2c82f4c04 Author: minqi Date: 2012-06-22 15:35 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/cfa2c82f4c04 7175133: jinfo failed to get system properties after 6924259 Summary: String offset and count fields as fix of 6924259 were removed, and become optional. SA still use offset and count fields to read String contents and failed. Fix if they exist, use them other then use value field only to read, this keeps consistent with the changes in 6924259. Reviewed-by: dholmes, mikael Contributed-by: yumin.qi at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java Changeset: d8a240abb23a Author: minqi Date: 2012-06-22 15:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d8a240abb23a 7177128: SA cannot get correct system properties after 7126277 Summary: Bug fix of 7126277 changed hashing algorithm and also changed key as final field, this led SA unable to set correct value for key. Solution by reading key/value and insert them into the new table. Reviewed-by: dholmes, mikael Contributed-by: yumin.qi at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java Changeset: 588f559105c1 Author: sla Date: 2012-06-25 14:34 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/588f559105c1 7178846: IterateThroughHeap: heap_iteration_callback passes a negative size Summary: Missing cast caused integer overflow Reviewed-by: rbackman, dholmes ! src/share/vm/prims/jvmtiTagMap.cpp Changeset: 246d977b51f2 Author: coleenp Date: 2012-06-25 21:33 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/246d977b51f2 7178670: runtime/7158800/BadUtf8.java fails in SymbolTable::rehash_table Summary: Cannot delete _buckets and HashtableEntries in shared space (CDS) Reviewed-by: acorn, kvn, dlong, dcubed, kamg ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp Changeset: 36b2d4cfcf03 Author: coleenp Date: 2012-06-25 18:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/36b2d4cfcf03 Merge Changeset: 74533f63b116 Author: sla Date: 2012-06-27 15:23 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/74533f63b116 7178667: ALT_EXPORT_PATH does not export server jvm on macosx Summary: Missing .PHONY targets in makefile Reviewed-by: dholmes, dsamersoff ! make/bsd/makefiles/universal.gmk Changeset: f7baf26515fc Author: collins Date: 2012-06-19 21:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f7baf26515fc 7178113: build environment change Summary: Simple change to enable proper builds of arm target Reviewed-by: ohair, dholmes ! make/jprt.properties Changeset: 634b8615a6ba Author: jiangli Date: 2012-06-22 14:00 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/634b8615a6ba 7177409: Perf regression in JVM_GetClassDeclaredFields after generic signature changes. Summary: In fieldDescriptor::generic_signature() returns NULL immediately if the field has no generic signature. Reviewed-by: dholmes, coleenp, jcoomes ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/reflection.cpp Changeset: 06320b1578cb Author: dlong Date: 2012-06-25 15:34 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/06320b1578cb 7156729: PPC: R_PPC_REL24 relocation error related to some libraries built without -fPIC Summary: build powerpc with -fPIC Reviewed-by: mikael, vladidan, roland Contributed-by: dean.long at oracle.com ! make/pic.make Changeset: 7d5f65916db0 Author: bdelsart Date: 2012-06-28 04:21 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7d5f65916db0 Merge Changeset: de2f17add1fb Author: kvn Date: 2012-06-28 10:35 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/de2f17add1fb Merge From rednaxelafx at gmail.com Thu Jun 28 19:42:30 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Fri, 29 Jun 2012 10:42:30 +0800 Subject: Question on arithmetic overflow detection support in C2 In-Reply-To: <4FEC67A5.6030707@oracle.com> References: <4FE00250.8010505@oracle.com> <6967F9CC-3967-4A65-8F6E-6659761F09E1@oracle.com> <4FEC67A5.6030707@oracle.com> Message-ID: Hi Vladimir, Thank you for reviewing. Comments inline: On Thu, Jun 28, 2012 at 10:18 PM, Vladimir Kozlov < vladimir.kozlov at oracle.com> wrote: > This looks good. > Add next line only in cmpOp() operand to matching signed. > > + overflow(0x0, "o"); > + no_overflow(0x1, "no"); > > I tried this, but it doesn't work. There would be an error when building the VM: assert fails /home/sajia/temp/hotspot-comp/src/share/vm/adlc/output_c.cpp 2908: Do not support octal or decimal encode constants which is caused by not assigning anything to the overflow/no_overflow's encoding in other cmpOps. > Do not rename, just use 'n' as argument: > > +CheckedAddINode* CheckedAddINode::make(Compile* C, Node* cmpadd) { > + Node* n = cmpadd; > > Oops, I missed this one on code cleanup. Thanks! > Did you tried INT_REG_mask() instead of INT_RAX_REG_mask() in > checkedAddI_sum_proj_mask() to avoid using bound register in > checkedAddI_rReg()? Yes, I did. I tried this, and the whole checkedAddI_rReg node and its outgoing data-flow was lost after RA/GCM. And then I realized it was because the sum projection didn't have a DEF for its result, so it the whole thing got removed. With the ver3 patch, Math.addExact would be compiled as: 000 B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1 000 # stack bang pushq rbp # Save rbp subq rsp, #16 # Create frame 00c movl RAX, RSI # spill 00e addl RAX, RDX # int with overflow check 010 jo,us B3 P=0.000001 C=-1.000000 010 012 B2: # N1 <- B1 Freq: 0.999999 012 addq rsp, 16 # Destroy frame popq rbp testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC 01d ret 01d 01e B3: # N1 <- B1 Freq: 1e-06 01e movl RSI, #153 # int 023 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='153') # java.lang.Math::addExact @ bci:14 L[0]=_ L[1]=_ L[2]=_ # OopMap{off=40} 028 int3 # ShouldNotReachHere 028 Reverting to not using bound register for the sum projection, it'd become: 000 B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1 000 # stack bang pushq rbp # Save rbp subq rsp, #16 # Create frame 00c jo,us B3 P=0.000001 C=-1.000000 00c 00e B2: # N1 <- B1 Freq: 0.999999 00e addq rsp, 16 # Destroy frame popq rbp testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC 019 ret 019 01a B3: # N1 <- B1 Freq: 1e-06 01a movl RSI, #153 # int 01f call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='153') # java.lang.Math::addExact @ bci:14 L[0]=_ L[1]=_ L[2]=_ # OopMap{off=36} 024 int3 # ShouldNotReachHere 024 > And did you tried match(Set dst (CheckedAddI dst src))? > > Yes, I tried it in conjunction with not using bound register for the sum projection, but it didn't work. I needed a way to specify the effect for the projection node so that it'd match up with its source. Thanks, Kris > Thanks, > Vladimir > > Krystal Mok wrote: > >> Hi all, >> >> Just FYI, I've posted an updated version of the patch here: >> https://gist.github.com/**db03ab15ef8b76246b84#file_** >> checked_add_prototype.ver3.**patch >> >> It pretty much implements what John suggested in a previous email (quoted >> below). >> >> This version still suffers from a couple of problem mentioned before: >> 1. It's emitting a jmpConU instead of a jmpCon during instruction >> selection. Is there a way to force it use jmpCon here? >> 2. I had to use a fixed register for the sum projection of CheckedAddI, >> otherwise I couldn't find a way to specify this projection should use the >> same register as "dst". >> >> - Kris >> >> On Wed, Jun 20, 2012 at 3:12 AM, John Rose > john.r.rose at oracle.com**>> wrote: >> >> On Jun 19, 2012, at 7:07 AM, Krystal Mok wrote: >> >> In the DivMod example, Div and Mod nodes with the same inputs >>> start out floating separately, and get fused into a single DivMod >>> late in Optimize(). The DivMod node type is a MultiNode with 2 >>> projections, one for the div and the other for the mod. There's >>> special treatment of DivMod in Matcher, and custom logic to match >>> the projections. >>> >>> If I add a new node type AddIOverflow following the same model, I >>> might get it like this: >>> https://gist.github.com/**bdd13666e4796b09f36e >>> This node type would have 2 projections just like DivMod, one for >>> the add, and the other for the overflow condition. >>> >> >> (rename INT_CC => INT_CC_PAIR for clarity) >> >> Then there are two questions: >>> >>> 1. I'd need another new node type, presumably called >>> "CheckAddIOverflow" here, that derives from CmpINode and acts as >>> if it produces condition codes. AddI(a, b) and >>> CheckAddIOverflow(a, b) float separately, just like the DivMod >>> example. They get fused up late in Optimize() into the >>> AddIOverflow shown above. Does this sound right? >>> >> >> Yes, that sounds right. The names don't feel right, yet. What's >> the best term for a version of Add which is not subject to overflow? >> That's what the user will be trying to build. Maybe a word like >> "Checked" or "Safe" is best, rather than focusing on overflow. >> >> Maybe: AddI(a, b) plus CmpAddI(a, b) => CheckedAddI(a, b) plus two >> projections yielding the first two values. >> You might be right about adding two new BoolNode states. That way >> you can think in terms of: >> if ((c = a + b) != 0) ... >> turning into >> c=AddI(a,b); cc=CmpAddI(a,b); if(Bool::nz(cc)) ... >> >> And overflow turns into the natural special case supported by the HW. >> >> 2. With AddIOverflow going into the Matcher, how should I write >>> the match rule in the ad file, to >>> match: If(Bool(Proj(AddIOverflow(a, b)).overflow, ne), labl) ? >>> >>> Would it look like: match(If cop (AddIOverflow dest src)) ? >>> >> >> (You have probably already noticed it; the matcher.cpp comment >> "Convert (If (Bool (CmpX A B))) into (If (Bool) (CmpX A B))" is >> highly relevant to matching If nodes. See also uses of BinaryNode.) >> >> Following the DivMod pattern, the matcher (in its current state) >> will have to match the CheckedAddI as a stand-alone node. Subtrees >> of matches can only have one use; this is a key matcher invariant. >> But every DivMod or CheckedAddI will have two uses: Its two >> projections. >> >> So you'll have: >> >> match(CheckedAddI); >> >> and the pre-existing rule: >> >> If(cop cmp) >> >> The cop will be Bool::ov (or Bool::nz in the example above) and the >> cmp will be CheckedAddI.cmp. >> >> You might think about extending the matcher machine to allow rules >> which specify the disposition of both projections: >> >> match( (If cop (Proj#1 (CheckedAddI a b))); (Set c (Proj#0 >> (CheckedAddI a b)))); >> >> This would be a Big Project. Long term, I believe it is worth >> thinking about ways to model instructions that do more than one >> thing at a time. >> >> If the pair of overflow/non-overflow conditions are in BoolTest >>> and in cmpOp, perhaps I wouldn't need to match the If node, and >>> could just let jmpCon rule handle it as-is. >>> That way I just have to match AddIOverflow itself in the ad file, >>> like DivMod. >>> >> >> -- John >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120629/924722d1/attachment-0001.html From john.coomes at oracle.com Fri Jun 29 01:59:25 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 08:59:25 +0000 Subject: hg: hsx/hotspot-comp: 4 new changesets Message-ID: <20120629085925.AB20E47BC7@hg.openjdk.java.net> Changeset: 1af3996aa431 Author: sla Date: 2012-06-11 20:52 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/1af3996aa431 7175802: Missing jdk_jfr in top-level make file Reviewed-by: alanb ! test/Makefile Changeset: 67e1fb3b2b33 Author: lana Date: 2012-06-17 21:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/67e1fb3b2b33 Merge Changeset: 633f2378c904 Author: lana Date: 2012-06-25 21:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/633f2378c904 Merge Changeset: 27fa766a2298 Author: katleman Date: 2012-06-28 09:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/rev/27fa766a2298 Added tag jdk8-b45 for changeset 633f2378c904 ! .hgtags From john.coomes at oracle.com Fri Jun 29 01:59:33 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 08:59:33 +0000 Subject: hg: hsx/hotspot-comp/corba: 9 new changesets Message-ID: <20120629085939.7796147BC8@hg.openjdk.java.net> Changeset: 5222b7d658d4 Author: coffeys Date: 2012-03-26 14:01 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/5222b7d658d4 7143851: Improve IIOP stub and tie generation in RMIC 7149048: Changes to corba rmic stubGenerator class are not used during jdk build process Reviewed-by: mschoene, robm ! src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java Changeset: e324dfb90c9e Author: mbankal Date: 2012-03-28 02:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/e324dfb90c9e 7079902: Refine CORBA data models Reviewed-by: coffeys ! src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ServerRequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java ! src/share/classes/com/sun/corba/se/impl/oa/toa/TOAFactory.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserTable.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/LocalClientRequestDispatcherBase.java ! src/share/classes/com/sun/corba/se/impl/util/RepositoryId.java ! src/share/classes/com/sun/corba/se/spi/logging/CORBALogDomains.java ! src/share/classes/sun/rmi/rmic/iiop/IDLNames.java Changeset: 2846cb957582 Author: mbankal Date: 2012-03-28 02:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/2846cb957582 Merge Changeset: a00c5c0b1f30 Author: asaha Date: 2012-04-10 10:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/a00c5c0b1f30 Merge - make/tools/src/build/tools/stripproperties/StripProperties.java Changeset: 3697feea6f54 Author: asaha Date: 2012-05-08 07:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/3697feea6f54 Merge Changeset: 787fb5a0602f Author: asaha Date: 2012-05-21 14:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/787fb5a0602f Merge Changeset: 25bb958d07de Author: asaha Date: 2012-06-07 12:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/25bb958d07de Merge Changeset: 747dad9e9d37 Author: lana Date: 2012-06-26 10:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/747dad9e9d37 Merge Changeset: 30141e598d72 Author: katleman Date: 2012-06-28 09:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/corba/rev/30141e598d72 Added tag jdk8-b45 for changeset 747dad9e9d37 ! .hgtags From john.coomes at oracle.com Fri Jun 29 02:00:37 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 09:00:37 +0000 Subject: hg: hsx/hotspot-comp/jaxws: Added tag jdk8-b45 for changeset e80ac58b5ba9 Message-ID: <20120629090041.3035847BCA@hg.openjdk.java.net> Changeset: ae368a83c240 Author: katleman Date: 2012-06-28 09:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxws/rev/ae368a83c240 Added tag jdk8-b45 for changeset e80ac58b5ba9 ! .hgtags From john.coomes at oracle.com Fri Jun 29 02:06:17 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 09:06:17 +0000 Subject: hg: hsx/hotspot-comp/jdk: 57 new changesets Message-ID: <20120629091736.F168147BCB@hg.openjdk.java.net> Changeset: eb50eeb2eb7d Author: prr Date: 2012-06-13 12:46 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/eb50eeb2eb7d 7027300: Unsynchronized HashMap access causes endless loop Reviewed-by: bae, jgodinez ! src/share/classes/sun/font/SunLayoutEngine.java Changeset: 5959fec806d8 Author: bae Date: 2012-06-14 11:14 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/5959fec806d8 7153693: Three 2D_ImageIO tests failed due ImageFormatException on OEL 6.* Unbreakable Kernel x64 Reviewed-by: jgodinez, prr ! src/share/native/sun/awt/image/jpeg/jpegdecoder.c Changeset: 2aa89f018a2f Author: prr Date: 2012-06-14 16:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2aa89f018a2f 7158366: [macosx] Print-to-file dialog doesn't have an entry field for a name Reviewed-by: bae, jgodinez ! src/share/classes/sun/print/ServiceDialog.java Changeset: e42563f8ec12 Author: lana Date: 2012-06-17 22:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e42563f8ec12 Merge - makefiles/altclasses/Makefile - makefiles/apple/Makefile - makefiles/apple/applescript/Makefile - makefiles/com/Makefile - makefiles/com/apple/Makefile - makefiles/com/apple/osx/Makefile - makefiles/com/apple/osxui/Makefile - makefiles/com/oracle/Makefile - makefiles/com/oracle/jfr/Makefile - makefiles/com/oracle/security/ucrypto/FILES_c.gmk - makefiles/com/oracle/security/ucrypto/Makefile - makefiles/com/oracle/security/ucrypto/mapfile-vers - makefiles/com/sun/Makefile - makefiles/common/shared/Defs-utils.gmk - makefiles/java/fdlibm/FILES_c.gmk - makefiles/java/fdlibm/Makefile - makefiles/java/instrument/Makefile - makefiles/java/instrument/mapfile-vers - makefiles/java/java/Exportedfiles.gmk - makefiles/java/java/FILES_c.gmk - makefiles/java/java/FILES_java.gmk - makefiles/java/java/Makefile - makefiles/java/java/localelist.sh - makefiles/java/java/mapfile-vers - makefiles/java/java/reflect/Makefile - makefiles/java/java/reorder-i586 - makefiles/java/java/reorder-sparc - makefiles/java/java/reorder-sparcv9 - makefiles/java/java_crw_demo/Makefile - makefiles/java/java_crw_demo/mapfile-vers - makefiles/java/java_hprof_demo/Makefile - makefiles/java/java_hprof_demo/mapfile-vers - makefiles/java/jexec/Makefile - makefiles/java/jli/Makefile - makefiles/java/jli/mapfile-vers - makefiles/java/jobjc/Makefile - makefiles/java/jvm/Makefile - makefiles/java/main/Makefile - makefiles/java/main/java/Makefile - makefiles/java/main/java/mapfile-amd64 - makefiles/java/main/java/mapfile-i586 - makefiles/java/main/java/mapfile-sparc - makefiles/java/main/java/mapfile-sparcv9 - makefiles/java/main/javaw/Makefile - makefiles/java/management/Exportedfiles.gmk - makefiles/java/management/FILES_c.gmk - makefiles/java/management/Makefile - makefiles/java/management/mapfile-vers - makefiles/java/net/FILES_c.gmk - makefiles/java/net/Makefile - makefiles/java/net/mapfile-vers - makefiles/java/nio/Exportedfiles.gmk - makefiles/java/nio/FILES_c.gmk - makefiles/java/nio/FILES_java.gmk - makefiles/java/nio/Makefile - makefiles/java/nio/addNotices.sh - makefiles/java/nio/genBuffer.sh - makefiles/java/nio/genCharsetProvider.sh - makefiles/java/nio/genCoder.sh - makefiles/java/nio/genExceptions.sh - makefiles/java/nio/mapfile-bsd - makefiles/java/nio/mapfile-linux - makefiles/java/nio/mapfile-solaris - makefiles/java/nio/reorder-i586 - makefiles/java/nio/reorder-sparc - makefiles/java/nio/reorder-sparcv9 - makefiles/java/npt/Makefile - makefiles/java/npt/mapfile-vers - makefiles/java/redist/fonts/Makefile - makefiles/java/security/Makefile - makefiles/java/sun_nio/FILES_java.gmk - makefiles/java/sun_nio/Makefile - makefiles/java/util/FILES_java.gmk - makefiles/java/util/FILES_properties.gmk - makefiles/java/util/Makefile - makefiles/java/verify/Makefile - makefiles/java/verify/mapfile-vers - makefiles/java/verify/reorder-i586 - makefiles/java/verify/reorder-sparc - makefiles/java/verify/reorder-sparcv9 - makefiles/javax/Makefile - makefiles/javax/imageio/Makefile - makefiles/javax/management/Makefile - makefiles/javax/sound/FILES_c.gmk - makefiles/javax/sound/Makefile - makefiles/javax/sound/SoundDefs.gmk - makefiles/javax/sound/jsoundalsa/Makefile - makefiles/javax/sound/jsoundalsa/mapfile-vers - makefiles/javax/sound/jsoundds/Makefile - makefiles/javax/sound/mapfile-vers - makefiles/javax/sql/Makefile - makefiles/javax/swing/FILES.gmk - makefiles/javax/swing/Makefile - makefiles/javax/swing/beaninfo/FILES.gmk - makefiles/javax/swing/beaninfo/Makefile - makefiles/javax/swing/beaninfo/SwingBeans.gmk - makefiles/javax/swing/beaninfo/manifest - makefiles/javax/swing/html32dtd/Makefile - makefiles/javax/swing/plaf/FILES.gmk - makefiles/javax/swing/plaf/Makefile - makefiles/sun/Makefile - makefiles/sun/awt/CondenseRules.awk - makefiles/sun/awt/Depend.mak - makefiles/sun/awt/Depend.sed - makefiles/sun/awt/FILES_c_macosx.gmk - makefiles/sun/awt/FILES_c_unix.gmk - makefiles/sun/awt/FILES_c_windows.gmk - makefiles/sun/awt/FILES_export_macosx.gmk - makefiles/sun/awt/FILES_export_unix.gmk - makefiles/sun/awt/FILES_export_windows.gmk - makefiles/sun/awt/Makefile - makefiles/sun/awt/README - makefiles/sun/awt/make.depend - makefiles/sun/awt/mapfile-mawt-vers - makefiles/sun/awt/mapfile-vers - makefiles/sun/awt/mapfile-vers-linux - makefiles/sun/awt/mawt.gmk - makefiles/sun/cmm/Makefile - makefiles/sun/cmm/kcms/FILES_c_unix.gmk - makefiles/sun/cmm/kcms/FILES_c_windows.gmk - makefiles/sun/cmm/kcms/Makefile - makefiles/sun/cmm/kcms/mapfile-vers - makefiles/sun/dcpr/FILES_c.gmk - makefiles/sun/dcpr/Makefile - makefiles/sun/dcpr/mapfile-vers - makefiles/sun/headless/Makefile - makefiles/sun/headless/mapfile-vers - makefiles/sun/headless/reorder-i586 - makefiles/sun/headless/reorder-sparc - makefiles/sun/headless/reorder-sparcv9 - makefiles/sun/image/Makefile - makefiles/sun/image/generic/FILES_c.gmk - makefiles/sun/image/generic/Makefile - makefiles/sun/image/generic/mapfile-vers - makefiles/sun/image/vis/FILES_c.gmk - makefiles/sun/image/vis/Makefile - makefiles/sun/javazic/Makefile - makefiles/sun/jdbc/Makefile - makefiles/sun/jdga/Makefile - makefiles/sun/jdga/mapfile-vers - makefiles/sun/lwawt/FILES_c_macosx.gmk - makefiles/sun/lwawt/FILES_export_macosx.gmk - makefiles/sun/lwawt/Makefile - makefiles/sun/nio/Makefile - makefiles/sun/nio/cs/FILES_java.gmk - makefiles/sun/nio/cs/Makefile - makefiles/sun/org/Makefile - makefiles/sun/org/mozilla/Makefile - makefiles/sun/org/mozilla/javascript/Makefile - makefiles/sun/osxapp/Makefile - makefiles/sun/security/Makefile - makefiles/sun/security/ec/FILES_c.gmk - makefiles/sun/security/ec/mapfile-vers - makefiles/sun/security/jgss/Makefile - makefiles/sun/security/jgss/wrapper/FILES_c.gmk - makefiles/sun/security/jgss/wrapper/Makefile - makefiles/sun/security/jgss/wrapper/mapfile-vers - makefiles/sun/security/krb5/FILES_c_windows.gmk - makefiles/sun/security/krb5/Makefile - makefiles/sun/security/mscapi/FILES_cpp.gmk - makefiles/sun/security/mscapi/Makefile - makefiles/sun/security/other/Makefile - makefiles/sun/security/smartcardio/FILES_c.gmk - makefiles/sun/security/smartcardio/Makefile - makefiles/sun/security/smartcardio/mapfile-vers - makefiles/sun/security/tools/Makefile - makefiles/sun/security/util/Makefile - makefiles/sun/splashscreen/FILES_c.gmk - makefiles/sun/splashscreen/Makefile - makefiles/sun/splashscreen/mapfile-vers - makefiles/sun/xawt/FILES_c_unix.gmk - makefiles/sun/xawt/FILES_export_unix.gmk - makefiles/sun/xawt/Makefile - makefiles/sun/xawt/mapfile-vers - src/share/classes/sun/nio/ch/DevPollSelectorProvider.java - src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java - src/share/classes/sun/security/provider/certpath/OCSPChecker.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java - src/share/native/java/sql/DriverManager.c - test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh - test/sun/security/krb5/auto/ok-as-delegate.sh Changeset: b8ff85860648 Author: prr Date: 2012-06-19 09:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b8ff85860648 7124536: [macosx] PrintServiceLookup.lookupDefaultPrintService() return null Reviewed-by: bae, igor ! src/solaris/classes/sun/print/CUPSPrinter.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java Changeset: c05893704c82 Author: lana Date: 2012-06-25 21:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/c05893704c82 Merge Changeset: 45259658e158 Author: rupashka Date: 2012-06-09 17:42 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/45259658e158 7165725: JAVA6 HTML PARSER CANNOT PARSE MULTIPLE SCRIPT TAGS IN A LINE CORRECTLY Reviewed-by: alexsch ! src/share/classes/javax/swing/text/html/parser/Parser.java + test/javax/swing/text/html/parser/Parser/7165725/bug7165725.java + test/javax/swing/text/html/parser/Parser/7165725/false-text-after-script.html + test/javax/swing/text/html/parser/Parser/7165725/successive-script-tag.html Changeset: 0474e0ed2ef2 Author: kizune Date: 2012-06-09 19:18 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0474e0ed2ef2 7173487: closed/java/awt/Frame/RemoveNotifyTest/RemoveNotifyTest.html Reviewed-by: anthony, dcherepanov, serb ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Changeset: b57167b71169 Author: luchsh Date: 2012-06-11 10:52 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b57167b71169 7155887: ComboBox does not display focus outline in GTK L&F Reviewed-by: rupashka ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java Changeset: f05e517a74b3 Author: anthony Date: 2012-06-13 18:33 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f05e517a74b3 7176644: [macosx] Missing NSAutoreleasePool in CGLGraphicsConfig.m OGLGC_DestroyOGLGraphicsConfig Summary: Create and drain an autorelease pool Reviewed-by: anthony, dcherepanov Contributed-by: Tomas Hurka ! src/macosx/native/sun/java2d/opengl/CGLGraphicsConfig.m Changeset: f90369b3d61d Author: alexsch Date: 2012-06-13 18:43 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f90369b3d61d 7150049: [macosx] closed/javax/swing/JCheckBox/4449413/bug4449413.java check the checkbox again,it auto fail Reviewed-by: rupashka + test/javax/swing/JCheckBox/4449413/bug4449413.html + test/javax/swing/JCheckBox/4449413/bug4449413.java Changeset: 8326709c6315 Author: kizune Date: 2012-06-15 18:28 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8326709c6315 7171163: [macosx] Shortcomings in the design of the secondary native event loop made JavaFX DnD deadlock Reviewed-by: anthony, art ! src/macosx/classes/sun/lwawt/macosx/CToolkitThreadBlockedHandler.java ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/macosx/native/sun/awt/LWCToolkit.m ! src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Changeset: f709f8ebebd4 Author: lana Date: 2012-06-17 22:03 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/f709f8ebebd4 Merge - makefiles/altclasses/Makefile - makefiles/apple/Makefile - makefiles/apple/applescript/Makefile - makefiles/com/Makefile - makefiles/com/apple/Makefile - makefiles/com/apple/osx/Makefile - makefiles/com/apple/osxui/Makefile - makefiles/com/oracle/Makefile - makefiles/com/oracle/jfr/Makefile - makefiles/com/oracle/security/ucrypto/FILES_c.gmk - makefiles/com/oracle/security/ucrypto/Makefile - makefiles/com/oracle/security/ucrypto/mapfile-vers - makefiles/com/sun/Makefile - makefiles/common/shared/Defs-utils.gmk - makefiles/java/fdlibm/FILES_c.gmk - makefiles/java/fdlibm/Makefile - makefiles/java/instrument/Makefile - makefiles/java/instrument/mapfile-vers - makefiles/java/java/Exportedfiles.gmk - makefiles/java/java/FILES_c.gmk - makefiles/java/java/FILES_java.gmk - makefiles/java/java/Makefile - makefiles/java/java/localelist.sh - makefiles/java/java/mapfile-vers - makefiles/java/java/reflect/Makefile - makefiles/java/java/reorder-i586 - makefiles/java/java/reorder-sparc - makefiles/java/java/reorder-sparcv9 - makefiles/java/java_crw_demo/Makefile - makefiles/java/java_crw_demo/mapfile-vers - makefiles/java/java_hprof_demo/Makefile - makefiles/java/java_hprof_demo/mapfile-vers - makefiles/java/jexec/Makefile - makefiles/java/jli/Makefile - makefiles/java/jli/mapfile-vers - makefiles/java/jobjc/Makefile - makefiles/java/jvm/Makefile - makefiles/java/main/Makefile - makefiles/java/main/java/Makefile - makefiles/java/main/java/mapfile-amd64 - makefiles/java/main/java/mapfile-i586 - makefiles/java/main/java/mapfile-sparc - makefiles/java/main/java/mapfile-sparcv9 - makefiles/java/main/javaw/Makefile - makefiles/java/management/Exportedfiles.gmk - makefiles/java/management/FILES_c.gmk - makefiles/java/management/Makefile - makefiles/java/management/mapfile-vers - makefiles/java/net/FILES_c.gmk - makefiles/java/net/Makefile - makefiles/java/net/mapfile-vers - makefiles/java/nio/Exportedfiles.gmk - makefiles/java/nio/FILES_c.gmk - makefiles/java/nio/FILES_java.gmk - makefiles/java/nio/Makefile - makefiles/java/nio/addNotices.sh - makefiles/java/nio/genBuffer.sh - makefiles/java/nio/genCharsetProvider.sh - makefiles/java/nio/genCoder.sh - makefiles/java/nio/genExceptions.sh - makefiles/java/nio/mapfile-bsd - makefiles/java/nio/mapfile-linux - makefiles/java/nio/mapfile-solaris - makefiles/java/nio/reorder-i586 - makefiles/java/nio/reorder-sparc - makefiles/java/nio/reorder-sparcv9 - makefiles/java/npt/Makefile - makefiles/java/npt/mapfile-vers - makefiles/java/redist/fonts/Makefile - makefiles/java/security/Makefile - makefiles/java/sun_nio/FILES_java.gmk - makefiles/java/sun_nio/Makefile - makefiles/java/util/FILES_java.gmk - makefiles/java/util/FILES_properties.gmk - makefiles/java/util/Makefile - makefiles/java/verify/Makefile - makefiles/java/verify/mapfile-vers - makefiles/java/verify/reorder-i586 - makefiles/java/verify/reorder-sparc - makefiles/java/verify/reorder-sparcv9 - makefiles/javax/Makefile - makefiles/javax/imageio/Makefile - makefiles/javax/management/Makefile - makefiles/javax/sound/FILES_c.gmk - makefiles/javax/sound/Makefile - makefiles/javax/sound/SoundDefs.gmk - makefiles/javax/sound/jsoundalsa/Makefile - makefiles/javax/sound/jsoundalsa/mapfile-vers - makefiles/javax/sound/jsoundds/Makefile - makefiles/javax/sound/mapfile-vers - makefiles/javax/sql/Makefile - makefiles/javax/swing/FILES.gmk - makefiles/javax/swing/Makefile - makefiles/javax/swing/beaninfo/FILES.gmk - makefiles/javax/swing/beaninfo/Makefile - makefiles/javax/swing/beaninfo/SwingBeans.gmk - makefiles/javax/swing/beaninfo/manifest - makefiles/javax/swing/html32dtd/Makefile - makefiles/javax/swing/plaf/FILES.gmk - makefiles/javax/swing/plaf/Makefile - makefiles/sun/Makefile - makefiles/sun/awt/CondenseRules.awk - makefiles/sun/awt/Depend.mak - makefiles/sun/awt/Depend.sed - makefiles/sun/awt/FILES_c_macosx.gmk - makefiles/sun/awt/FILES_c_unix.gmk - makefiles/sun/awt/FILES_c_windows.gmk - makefiles/sun/awt/FILES_export_macosx.gmk - makefiles/sun/awt/FILES_export_unix.gmk - makefiles/sun/awt/FILES_export_windows.gmk - makefiles/sun/awt/Makefile - makefiles/sun/awt/README - makefiles/sun/awt/make.depend - makefiles/sun/awt/mapfile-mawt-vers - makefiles/sun/awt/mapfile-vers - makefiles/sun/awt/mapfile-vers-linux - makefiles/sun/awt/mawt.gmk - makefiles/sun/cmm/Makefile - makefiles/sun/cmm/kcms/FILES_c_unix.gmk - makefiles/sun/cmm/kcms/FILES_c_windows.gmk - makefiles/sun/cmm/kcms/Makefile - makefiles/sun/cmm/kcms/mapfile-vers - makefiles/sun/dcpr/FILES_c.gmk - makefiles/sun/dcpr/Makefile - makefiles/sun/dcpr/mapfile-vers - makefiles/sun/headless/Makefile - makefiles/sun/headless/mapfile-vers - makefiles/sun/headless/reorder-i586 - makefiles/sun/headless/reorder-sparc - makefiles/sun/headless/reorder-sparcv9 - makefiles/sun/image/Makefile - makefiles/sun/image/generic/FILES_c.gmk - makefiles/sun/image/generic/Makefile - makefiles/sun/image/generic/mapfile-vers - makefiles/sun/image/vis/FILES_c.gmk - makefiles/sun/image/vis/Makefile - makefiles/sun/javazic/Makefile - makefiles/sun/jdbc/Makefile - makefiles/sun/jdga/Makefile - makefiles/sun/jdga/mapfile-vers - makefiles/sun/lwawt/FILES_c_macosx.gmk - makefiles/sun/lwawt/FILES_export_macosx.gmk - makefiles/sun/lwawt/Makefile - makefiles/sun/nio/Makefile - makefiles/sun/nio/cs/FILES_java.gmk - makefiles/sun/nio/cs/Makefile - makefiles/sun/org/Makefile - makefiles/sun/org/mozilla/Makefile - makefiles/sun/org/mozilla/javascript/Makefile - makefiles/sun/osxapp/Makefile - makefiles/sun/security/Makefile - makefiles/sun/security/ec/FILES_c.gmk - makefiles/sun/security/ec/mapfile-vers - makefiles/sun/security/jgss/Makefile - makefiles/sun/security/jgss/wrapper/FILES_c.gmk - makefiles/sun/security/jgss/wrapper/Makefile - makefiles/sun/security/jgss/wrapper/mapfile-vers - makefiles/sun/security/krb5/FILES_c_windows.gmk - makefiles/sun/security/krb5/Makefile - makefiles/sun/security/mscapi/FILES_cpp.gmk - makefiles/sun/security/mscapi/Makefile - makefiles/sun/security/other/Makefile - makefiles/sun/security/smartcardio/FILES_c.gmk - makefiles/sun/security/smartcardio/Makefile - makefiles/sun/security/smartcardio/mapfile-vers - makefiles/sun/security/tools/Makefile - makefiles/sun/security/util/Makefile - makefiles/sun/splashscreen/FILES_c.gmk - makefiles/sun/splashscreen/Makefile - makefiles/sun/splashscreen/mapfile-vers - makefiles/sun/xawt/FILES_c_unix.gmk - makefiles/sun/xawt/FILES_export_unix.gmk - makefiles/sun/xawt/Makefile - makefiles/sun/xawt/mapfile-vers - src/share/classes/sun/nio/ch/DevPollSelectorProvider.java - src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java - src/share/classes/sun/security/provider/certpath/OCSPChecker.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java - src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java - src/share/native/java/sql/DriverManager.c - test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh - test/sun/security/krb5/auto/ok-as-delegate.sh Changeset: 4b470e9017da Author: alexsch Date: 2012-06-18 15:39 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4b470e9017da 7174970: NLS [ccjk] Extra mnemonic keys at standard filechooserdialog (open and save) in metal L&F Reviewed-by: rupashka ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties Changeset: 3226f1968e77 Author: kizune Date: 2012-06-19 21:09 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3226f1968e77 7172430: [macosx] debug message in non debug jdk build Reviewed-by: anthony, serb ! src/macosx/native/sun/awt/AWTView.m Changeset: e7dc778d768e Author: anthony Date: 2012-06-22 16:32 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e7dc778d768e 7170716: JVM crash when opening an AWT app from a registered file. Summary: Copy the queued blocks to prevent their deallocation Reviewed-by: anthony, swingler Contributed-by: Marco Dinacci ! src/macosx/native/sun/osxapp/QueuingApplicationDelegate.h ! src/macosx/native/sun/osxapp/QueuingApplicationDelegate.m Changeset: cafcc94a11a7 Author: anthony Date: 2012-06-25 17:27 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cafcc94a11a7 7174718: [macosx] Regression in 7u6 b12: PopupFactory leaks DefaultFrames. Summary: Fix memory management Reviewed-by: art, serb ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/native/sun/awt/AWTWindow.m Changeset: 6dae09c6759e Author: lana Date: 2012-06-25 21:36 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6dae09c6759e Merge Changeset: fc575c78f5d3 Author: alanb Date: 2012-06-10 10:29 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/fc575c78f5d3 7175775: Disable SA options in jinfo/Basic.java test until SA updated for new hash and String count/offset Reviewed-by: minqi ! test/sun/tools/jinfo/Basic.sh Changeset: 46ff1b63b0c3 Author: lancea Date: 2012-06-11 07:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/46ff1b63b0c3 7171917: CachedRowSetImpl.populate does not handle map properly Reviewed-by: joehw ! src/share/classes/com/sun/rowset/CachedRowSetImpl.java Changeset: 6b6a73e8c036 Author: lancea Date: 2012-06-12 17:32 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6b6a73e8c036 7171918: XmlReaderContentHandler.endElement does not handle a Delete Tag properly Reviewed-by: joehw ! src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java Changeset: 9fd127ff51d5 Author: ohair Date: 2012-06-12 13:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9fd127ff51d5 7176138: Fixes for missing close() calls and possible null pointer reference instead of fatal error Reviewed-by: dcubed ! src/share/demo/jvmti/hprof/hprof_table.c ! src/solaris/demo/jvmti/hprof/hprof_md.c Changeset: 7b93a2a9cd15 Author: ohair Date: 2012-06-12 15:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/7b93a2a9cd15 Merge Changeset: 4435f8b20d08 Author: weijun Date: 2012-06-13 19:23 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4435f8b20d08 7176574: sun/security/krb5/auto/TcpTimeout.java failed with solaris-i586 Reviewed-by: chegar ! test/sun/security/krb5/auto/TcpTimeout.java Changeset: 4f99d146fce0 Author: alanb Date: 2012-06-14 12:13 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4f99d146fce0 7176630: (sc) SocketChannel.write does not write more than 128k when channel configured blocking [win] Reviewed-by: khazra, chegar ! src/windows/native/sun/nio/ch/SocketDispatcher.c + test/java/nio/channels/SocketChannel/ShortWrite.java Changeset: 505455116320 Author: mduigou Date: 2012-06-13 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/505455116320 7173919: Minor optimization of hashing methods Summary: several minor optimizations to hashing methods used by hash map classes Reviewed-by: dholmes ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/WeakHashMap.java ! src/share/classes/java/util/concurrent/ConcurrentHashMap.java Changeset: 28588ace1fb9 Author: lancea Date: 2012-06-14 15:05 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/28588ace1fb9 7145913: CachedRowSetSwriter.insertNewRow() throws SQLException Reviewed-by: joehw, naoto, psandoz, forax ! src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java Changeset: 00c9d6cce3ec Author: coffeys Date: 2012-06-15 14:16 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/00c9d6cce3ec 7156963: Incorrect copyright header in java/io/SerialCallbackContext Reviewed-by: weijun, coffeys Contributed-by: edvard.wendelin at oracle.com ! src/share/classes/java/io/SerialCallbackContext.java Changeset: 8deec0d1fc6f Author: mullan Date: 2012-06-15 08:43 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8deec0d1fc6f 7176326: CertPath/CertPathBuilderTest failures after webrev 6854712_6637288_7126011 Reviewed-by: xuelei ! src/share/classes/sun/security/provider/certpath/BasicChecker.java + test/java/security/cert/CertPathBuilder/zeroLengthPath/ZeroLengthPath.java Changeset: 0e382512610f Author: mullan Date: 2012-06-15 08:47 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/0e382512610f Merge Changeset: e01b47409e37 Author: mullan Date: 2012-06-15 09:16 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e01b47409e37 Merge Changeset: 23394d686f74 Author: alanb Date: 2012-06-15 17:16 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/23394d686f74 7176485: (bf) Allow temporary buffer cache to grow to IOV_MAX Reviewed-by: chegar, coffeys ! make/java/nio/mapfile-linux ! make/java/nio/mapfile-solaris ! src/share/classes/sun/nio/ch/IOUtil.java ! src/share/classes/sun/nio/ch/Util.java ! src/solaris/native/sun/nio/ch/FileDispatcherImpl.c ! src/solaris/native/sun/nio/ch/IOUtil.c ! src/windows/native/sun/nio/ch/IOUtil.c ! src/windows/native/sun/nio/ch/SocketDispatcher.c ! src/windows/native/sun/nio/ch/nio_util.h Changeset: e60cedd3a4aa Author: mduigou Date: 2012-06-15 13:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/e60cedd3a4aa 7175758: Improve unit test of Map iterators and Iterator.remove() Summary: Adds additional tests of Map iterators and Iterator.remove() Reviewed-by: lancea ! test/java/util/Map/Collisions.java Changeset: 8e5635ded425 Author: wetmore Date: 2012-06-15 17:42 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8e5635ded425 7177556: Put TestProviderLeak.java on the ProblemList until test can be reworked Reviewed-by: khazra ! test/ProblemList.txt Changeset: 6b40703aad55 Author: lana Date: 2012-06-17 21:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/6b40703aad55 Merge - makefiles/altclasses/Makefile - makefiles/apple/Makefile - makefiles/apple/applescript/Makefile - makefiles/com/Makefile - makefiles/com/apple/Makefile - makefiles/com/apple/osx/Makefile - makefiles/com/apple/osxui/Makefile - makefiles/com/oracle/Makefile - makefiles/com/oracle/jfr/Makefile - makefiles/com/oracle/security/ucrypto/FILES_c.gmk - makefiles/com/oracle/security/ucrypto/Makefile - makefiles/com/oracle/security/ucrypto/mapfile-vers - makefiles/com/sun/Makefile - makefiles/common/shared/Defs-utils.gmk - makefiles/java/fdlibm/FILES_c.gmk - makefiles/java/fdlibm/Makefile - makefiles/java/instrument/Makefile - makefiles/java/instrument/mapfile-vers - makefiles/java/java/Exportedfiles.gmk - makefiles/java/java/FILES_c.gmk - makefiles/java/java/FILES_java.gmk - makefiles/java/java/Makefile - makefiles/java/java/localelist.sh - makefiles/java/java/mapfile-vers - makefiles/java/java/reflect/Makefile - makefiles/java/java/reorder-i586 - makefiles/java/java/reorder-sparc - makefiles/java/java/reorder-sparcv9 - makefiles/java/java_crw_demo/Makefile - makefiles/java/java_crw_demo/mapfile-vers - makefiles/java/java_hprof_demo/Makefile - makefiles/java/java_hprof_demo/mapfile-vers - makefiles/java/jexec/Makefile - makefiles/java/jli/Makefile - makefiles/java/jli/mapfile-vers - makefiles/java/jobjc/Makefile - makefiles/java/jvm/Makefile - makefiles/java/main/Makefile - makefiles/java/main/java/Makefile - makefiles/java/main/java/mapfile-amd64 - makefiles/java/main/java/mapfile-i586 - makefiles/java/main/java/mapfile-sparc - makefiles/java/main/java/mapfile-sparcv9 - makefiles/java/main/javaw/Makefile - makefiles/java/management/Exportedfiles.gmk - makefiles/java/management/FILES_c.gmk - makefiles/java/management/Makefile - makefiles/java/management/mapfile-vers - makefiles/java/net/FILES_c.gmk - makefiles/java/net/Makefile - makefiles/java/net/mapfile-vers - makefiles/java/nio/Exportedfiles.gmk - makefiles/java/nio/FILES_c.gmk - makefiles/java/nio/FILES_java.gmk - makefiles/java/nio/Makefile - makefiles/java/nio/addNotices.sh - makefiles/java/nio/genBuffer.sh - makefiles/java/nio/genCharsetProvider.sh - makefiles/java/nio/genCoder.sh - makefiles/java/nio/genExceptions.sh - makefiles/java/nio/mapfile-bsd - makefiles/java/nio/mapfile-linux - makefiles/java/nio/mapfile-solaris - makefiles/java/nio/reorder-i586 - makefiles/java/nio/reorder-sparc - makefiles/java/nio/reorder-sparcv9 - makefiles/java/npt/Makefile - makefiles/java/npt/mapfile-vers - makefiles/java/redist/fonts/Makefile - makefiles/java/security/Makefile - makefiles/java/sun_nio/FILES_java.gmk - makefiles/java/sun_nio/Makefile - makefiles/java/util/FILES_java.gmk - makefiles/java/util/FILES_properties.gmk - makefiles/java/util/Makefile - makefiles/java/verify/Makefile - makefiles/java/verify/mapfile-vers - makefiles/java/verify/reorder-i586 - makefiles/java/verify/reorder-sparc - makefiles/java/verify/reorder-sparcv9 - makefiles/javax/Makefile - makefiles/javax/imageio/Makefile - makefiles/javax/management/Makefile - makefiles/javax/sound/FILES_c.gmk - makefiles/javax/sound/Makefile - makefiles/javax/sound/SoundDefs.gmk - makefiles/javax/sound/jsoundalsa/Makefile - makefiles/javax/sound/jsoundalsa/mapfile-vers - makefiles/javax/sound/jsoundds/Makefile - makefiles/javax/sound/mapfile-vers - makefiles/javax/sql/Makefile - makefiles/javax/swing/FILES.gmk - makefiles/javax/swing/Makefile - makefiles/javax/swing/beaninfo/FILES.gmk - makefiles/javax/swing/beaninfo/Makefile - makefiles/javax/swing/beaninfo/SwingBeans.gmk - makefiles/javax/swing/beaninfo/manifest - makefiles/javax/swing/html32dtd/Makefile - makefiles/javax/swing/plaf/FILES.gmk - makefiles/javax/swing/plaf/Makefile - makefiles/sun/Makefile - makefiles/sun/awt/CondenseRules.awk - makefiles/sun/awt/Depend.mak - makefiles/sun/awt/Depend.sed - makefiles/sun/awt/FILES_c_macosx.gmk - makefiles/sun/awt/FILES_c_unix.gmk - makefiles/sun/awt/FILES_c_windows.gmk - makefiles/sun/awt/FILES_export_macosx.gmk - makefiles/sun/awt/FILES_export_unix.gmk - makefiles/sun/awt/FILES_export_windows.gmk - makefiles/sun/awt/Makefile - makefiles/sun/awt/README - makefiles/sun/awt/make.depend - makefiles/sun/awt/mapfile-mawt-vers - makefiles/sun/awt/mapfile-vers - makefiles/sun/awt/mapfile-vers-linux - makefiles/sun/awt/mawt.gmk - makefiles/sun/cmm/Makefile - makefiles/sun/cmm/kcms/FILES_c_unix.gmk - makefiles/sun/cmm/kcms/FILES_c_windows.gmk - makefiles/sun/cmm/kcms/Makefile - makefiles/sun/cmm/kcms/mapfile-vers - makefiles/sun/dcpr/FILES_c.gmk - makefiles/sun/dcpr/Makefile - makefiles/sun/dcpr/mapfile-vers - makefiles/sun/headless/Makefile - makefiles/sun/headless/mapfile-vers - makefiles/sun/headless/reorder-i586 - makefiles/sun/headless/reorder-sparc - makefiles/sun/headless/reorder-sparcv9 - makefiles/sun/image/Makefile - makefiles/sun/image/generic/FILES_c.gmk - makefiles/sun/image/generic/Makefile - makefiles/sun/image/generic/mapfile-vers - makefiles/sun/image/vis/FILES_c.gmk - makefiles/sun/image/vis/Makefile - makefiles/sun/javazic/Makefile - makefiles/sun/jdbc/Makefile - makefiles/sun/jdga/Makefile - makefiles/sun/jdga/mapfile-vers - makefiles/sun/lwawt/FILES_c_macosx.gmk - makefiles/sun/lwawt/FILES_export_macosx.gmk - makefiles/sun/lwawt/Makefile - makefiles/sun/nio/Makefile - makefiles/sun/nio/cs/FILES_java.gmk - makefiles/sun/nio/cs/Makefile - makefiles/sun/org/Makefile - makefiles/sun/org/mozilla/Makefile - makefiles/sun/org/mozilla/javascript/Makefile - makefiles/sun/osxapp/Makefile - makefiles/sun/security/Makefile - makefiles/sun/security/ec/FILES_c.gmk - makefiles/sun/security/ec/mapfile-vers - makefiles/sun/security/jgss/Makefile - makefiles/sun/security/jgss/wrapper/FILES_c.gmk - makefiles/sun/security/jgss/wrapper/Makefile - makefiles/sun/security/jgss/wrapper/mapfile-vers - makefiles/sun/security/krb5/FILES_c_windows.gmk - makefiles/sun/security/krb5/Makefile - makefiles/sun/security/mscapi/FILES_cpp.gmk - makefiles/sun/security/mscapi/Makefile - makefiles/sun/security/other/Makefile - makefiles/sun/security/smartcardio/FILES_c.gmk - makefiles/sun/security/smartcardio/Makefile - makefiles/sun/security/smartcardio/mapfile-vers - makefiles/sun/security/tools/Makefile - makefiles/sun/security/util/Makefile - makefiles/sun/splashscreen/FILES_c.gmk - makefiles/sun/splashscreen/Makefile - makefiles/sun/splashscreen/mapfile-vers - makefiles/sun/xawt/FILES_c_unix.gmk - makefiles/sun/xawt/FILES_export_unix.gmk - makefiles/sun/xawt/Makefile - makefiles/sun/xawt/mapfile-vers Changeset: 689129c71ccd Author: alanb Date: 2012-06-18 11:19 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/689129c71ccd 7177617: TEST_BUG: java/nio/channels/AsyncCloseAndInterrupt.java failing (win) Reviewed-by: chegar, coffeys ! test/java/nio/channels/AsyncCloseAndInterrupt.java ! test/java/nio/channels/SocketChannel/AdaptSocket.java + test/java/nio/channels/SocketChannel/CloseDuringWrite.java ! test/java/nio/channels/TestUtil.java Changeset: 4419c8f0b2f2 Author: okutsu Date: 2012-06-19 16:21 +0900 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4419c8f0b2f2 6380549: (rb) ResourceBundle.Control global binding support Reviewed-by: naoto ! make/java/java/FILES_java.gmk ! src/share/classes/java/util/ResourceBundle.java + src/share/classes/java/util/spi/ResourceBundleControlProvider.java + test/java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java + test/java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.sh + test/java/util/spi/ResourceBundleControlProvider/providersrc/Makefile + test/java/util/spi/ResourceBundleControlProvider/providersrc/UserControlProvider.java + test/java/util/spi/ResourceBundleControlProvider/providersrc/UserXMLControl.java + test/java/util/spi/ResourceBundleControlProvider/providersrc/XmlRB.xml + test/java/util/spi/ResourceBundleControlProvider/providersrc/XmlRB_ja.xml + test/java/util/spi/ResourceBundleControlProvider/providersrc/java.util.spi.ResourceBundleControlProvider + test/java/util/spi/ResourceBundleControlProvider/rbcontrolprovider.jar Changeset: efc2791d7c5d Author: chegar Date: 2012-06-19 10:20 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/efc2791d7c5d 6901992: InvalidJarIndexException due to bug in sun.misc.JarIndex.merge() Reviewed-by: chegar Contributed-by: dbelfer at gmail.com ! src/share/classes/sun/misc/JarIndex.java + test/sun/misc/JarIndex/JarIndexMergeForClassLoaderTest.java + test/sun/misc/JarIndex/JarIndexMergeTest.java Changeset: cdcbd22cfb9d Author: xuelei Date: 2012-06-19 17:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cdcbd22cfb9d 7166487: checkSequenceNumber method never called within readRecord of SSLEngineImpl Reviewed-by: weijun ! src/share/classes/sun/security/ssl/SSLEngineImpl.java Changeset: dfe5617c18b4 Author: dholmes Date: 2012-06-20 22:40 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/dfe5617c18b4 7178483: Change version string for Embedded releases Reviewed-by: dholmes, lancea Contributed-by: Gary Collins ! make/common/Defs-embedded.gmk Changeset: 4a4a04bfeece Author: chegar Date: 2012-06-25 14:19 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4a4a04bfeece 7176784: Windows authentication not working on some computers Reviewed-by: michaelm ! src/windows/native/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.c Changeset: b76779abcd7f Author: lana Date: 2012-06-25 21:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b76779abcd7f Merge Changeset: bff59bf994da Author: mullan Date: 2012-02-22 15:38 -0500 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/bff59bf994da 7145239: Finetune package definition restriction Reviewed-by: hawtin ! src/share/lib/security/java.security ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: 1d8a3ef381f7 Author: bae Date: 2012-02-28 10:44 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/1d8a3ef381f7 7143617: Improve fontmanager layout lookup operations Reviewed-by: igor, prr, mschoene ! src/share/native/sun/font/layout/LookupProcessor.cpp ! src/share/native/sun/font/layout/LookupProcessor.h Changeset: 9e6e535a6769 Author: rupashka Date: 2012-02-28 16:09 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9e6e535a6769 7143614: SynthLookAndFeel stability improvement Reviewed-by: malenkov ! src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java + test/javax/swing/plaf/synth/7143614/bug7143614.java Changeset: 8516c5b4521b Author: weijun Date: 2012-02-29 14:06 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8516c5b4521b 7143872: Improve certificate extension processing Reviewed-by: mullan ! src/share/classes/sun/security/x509/CRLExtensions.java ! src/share/classes/sun/security/x509/CertificateExtensions.java ! src/share/classes/sun/security/x509/X509CRLEntryImpl.java ! src/share/classes/sun/security/x509/X509CRLImpl.java ! src/share/classes/sun/security/x509/X509CertImpl.java + test/sun/security/x509/X509CRLImpl/OrderAndDup.java Changeset: 3640f1a043f8 Author: coffeys Date: 2012-03-26 14:03 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3640f1a043f8 7143851: Improve IIOP stub and tie generation in RMIC 7149048: Changes to corba rmic stubGenerator class are not used during jdk build process Reviewed-by: mschoene, robm ! make/com/sun/jmx/Makefile Changeset: 9de49289df0f Author: asaha Date: 2012-04-10 10:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/9de49289df0f Merge ! make/com/oracle/net/Makefile - make/sun/motif12/reorder-i586 - make/sun/motif12/reorder-sparc - make/sun/motif12/reorder-sparcv9 ! make/sun/rmi/rmi/mapfile-vers - src/linux/doc/man/apt.1 - src/linux/doc/man/ja/apt.1 - src/share/classes/com/sun/tools/jdi/LinkedHashMap.java - src/share/classes/java/lang/invoke/FilterGeneric.java - src/share/classes/java/lang/invoke/FilterOneArgument.java - src/share/classes/java/lang/invoke/FromGeneric.java - src/share/classes/java/lang/invoke/SpreadGeneric.java - src/share/classes/java/lang/invoke/ToGeneric.java - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/awt/FocusingTextField.java - src/share/classes/sun/awt/HorizBagLayout.java - src/share/classes/sun/awt/OrientableFlowLayout.java - src/share/classes/sun/awt/VariableGridLayout.java - src/share/classes/sun/awt/VerticalBagLayout.java - src/share/classes/sun/io/ByteToCharASCII.java - src/share/classes/sun/io/ByteToCharBig5.java - src/share/classes/sun/io/ByteToCharBig5_HKSCS.java - src/share/classes/sun/io/ByteToCharBig5_Solaris.java - src/share/classes/sun/io/ByteToCharConverter.java - src/share/classes/sun/io/ByteToCharCp037.java - src/share/classes/sun/io/ByteToCharCp1006.java - src/share/classes/sun/io/ByteToCharCp1025.java - src/share/classes/sun/io/ByteToCharCp1026.java - src/share/classes/sun/io/ByteToCharCp1046.java - src/share/classes/sun/io/ByteToCharCp1047.java - src/share/classes/sun/io/ByteToCharCp1097.java - src/share/classes/sun/io/ByteToCharCp1098.java - src/share/classes/sun/io/ByteToCharCp1112.java - src/share/classes/sun/io/ByteToCharCp1122.java - src/share/classes/sun/io/ByteToCharCp1123.java - src/share/classes/sun/io/ByteToCharCp1124.java - src/share/classes/sun/io/ByteToCharCp1140.java - src/share/classes/sun/io/ByteToCharCp1141.java - src/share/classes/sun/io/ByteToCharCp1142.java - src/share/classes/sun/io/ByteToCharCp1143.java - src/share/classes/sun/io/ByteToCharCp1144.java - src/share/classes/sun/io/ByteToCharCp1145.java - src/share/classes/sun/io/ByteToCharCp1146.java - src/share/classes/sun/io/ByteToCharCp1147.java - src/share/classes/sun/io/ByteToCharCp1148.java - src/share/classes/sun/io/ByteToCharCp1149.java - src/share/classes/sun/io/ByteToCharCp1250.java - src/share/classes/sun/io/ByteToCharCp1251.java - src/share/classes/sun/io/ByteToCharCp1252.java - src/share/classes/sun/io/ByteToCharCp1253.java - src/share/classes/sun/io/ByteToCharCp1254.java - src/share/classes/sun/io/ByteToCharCp1255.java - src/share/classes/sun/io/ByteToCharCp1256.java - src/share/classes/sun/io/ByteToCharCp1257.java - src/share/classes/sun/io/ByteToCharCp1258.java - src/share/classes/sun/io/ByteToCharCp1381.java - src/share/classes/sun/io/ByteToCharCp1383.java - src/share/classes/sun/io/ByteToCharCp273.java - src/share/classes/sun/io/ByteToCharCp277.java - src/share/classes/sun/io/ByteToCharCp278.java - src/share/classes/sun/io/ByteToCharCp280.java - src/share/classes/sun/io/ByteToCharCp284.java - src/share/classes/sun/io/ByteToCharCp285.java - src/share/classes/sun/io/ByteToCharCp297.java - src/share/classes/sun/io/ByteToCharCp33722.java - src/share/classes/sun/io/ByteToCharCp420.java - src/share/classes/sun/io/ByteToCharCp424.java - src/share/classes/sun/io/ByteToCharCp437.java - src/share/classes/sun/io/ByteToCharCp500.java - src/share/classes/sun/io/ByteToCharCp737.java - src/share/classes/sun/io/ByteToCharCp775.java - src/share/classes/sun/io/ByteToCharCp833.java - src/share/classes/sun/io/ByteToCharCp834.java - src/share/classes/sun/io/ByteToCharCp838.java - src/share/classes/sun/io/ByteToCharCp850.java - src/share/classes/sun/io/ByteToCharCp852.java - src/share/classes/sun/io/ByteToCharCp855.java - src/share/classes/sun/io/ByteToCharCp856.java - src/share/classes/sun/io/ByteToCharCp857.java - src/share/classes/sun/io/ByteToCharCp858.java - src/share/classes/sun/io/ByteToCharCp860.java - src/share/classes/sun/io/ByteToCharCp861.java - src/share/classes/sun/io/ByteToCharCp862.java - src/share/classes/sun/io/ByteToCharCp863.java - src/share/classes/sun/io/ByteToCharCp864.java - src/share/classes/sun/io/ByteToCharCp865.java - src/share/classes/sun/io/ByteToCharCp866.java - src/share/classes/sun/io/ByteToCharCp868.java - src/share/classes/sun/io/ByteToCharCp869.java - src/share/classes/sun/io/ByteToCharCp870.java - src/share/classes/sun/io/ByteToCharCp871.java - src/share/classes/sun/io/ByteToCharCp874.java - src/share/classes/sun/io/ByteToCharCp875.java - src/share/classes/sun/io/ByteToCharCp918.java - src/share/classes/sun/io/ByteToCharCp921.java - src/share/classes/sun/io/ByteToCharCp922.java - src/share/classes/sun/io/ByteToCharCp930.java - src/share/classes/sun/io/ByteToCharCp933.java - src/share/classes/sun/io/ByteToCharCp935.java - src/share/classes/sun/io/ByteToCharCp937.java - src/share/classes/sun/io/ByteToCharCp939.java - src/share/classes/sun/io/ByteToCharCp942.java - src/share/classes/sun/io/ByteToCharCp942C.java - src/share/classes/sun/io/ByteToCharCp943.java - src/share/classes/sun/io/ByteToCharCp943C.java - src/share/classes/sun/io/ByteToCharCp948.java - src/share/classes/sun/io/ByteToCharCp949.java - src/share/classes/sun/io/ByteToCharCp949C.java - src/share/classes/sun/io/ByteToCharCp950.java - src/share/classes/sun/io/ByteToCharCp964.java - src/share/classes/sun/io/ByteToCharCp970.java - src/share/classes/sun/io/ByteToCharDBCS_ASCII.java - src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java - src/share/classes/sun/io/ByteToCharDoubleByte.java - src/share/classes/sun/io/ByteToCharEUC.java - src/share/classes/sun/io/ByteToCharEUC2.java - src/share/classes/sun/io/ByteToCharEUC_CN.java - src/share/classes/sun/io/ByteToCharEUC_JP.java - src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java - src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java - src/share/classes/sun/io/ByteToCharEUC_KR.java - src/share/classes/sun/io/ByteToCharEUC_TW.java - src/share/classes/sun/io/ByteToCharGB18030.java - src/share/classes/sun/io/ByteToCharGB18030DB.java - src/share/classes/sun/io/ByteToCharGBK.java - src/share/classes/sun/io/ByteToCharISCII91.java - src/share/classes/sun/io/ByteToCharISO2022.java - src/share/classes/sun/io/ByteToCharISO2022CN.java - src/share/classes/sun/io/ByteToCharISO2022JP.java - src/share/classes/sun/io/ByteToCharISO2022KR.java - src/share/classes/sun/io/ByteToCharISO8859_1.java - src/share/classes/sun/io/ByteToCharISO8859_13.java - src/share/classes/sun/io/ByteToCharISO8859_15.java - src/share/classes/sun/io/ByteToCharISO8859_2.java - src/share/classes/sun/io/ByteToCharISO8859_3.java - src/share/classes/sun/io/ByteToCharISO8859_4.java - src/share/classes/sun/io/ByteToCharISO8859_5.java - src/share/classes/sun/io/ByteToCharISO8859_6.java - src/share/classes/sun/io/ByteToCharISO8859_7.java - src/share/classes/sun/io/ByteToCharISO8859_8.java - src/share/classes/sun/io/ByteToCharISO8859_9.java - src/share/classes/sun/io/ByteToCharJIS0201.java - src/share/classes/sun/io/ByteToCharJIS0208.java - src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java - src/share/classes/sun/io/ByteToCharJIS0212.java - src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java - src/share/classes/sun/io/ByteToCharJISAutoDetect.java - src/share/classes/sun/io/ByteToCharJohab.java - src/share/classes/sun/io/ByteToCharKOI8_R.java - src/share/classes/sun/io/ByteToCharMS874.java - src/share/classes/sun/io/ByteToCharMS932.java - src/share/classes/sun/io/ByteToCharMS936.java - src/share/classes/sun/io/ByteToCharMS949.java - src/share/classes/sun/io/ByteToCharMS950.java - src/share/classes/sun/io/ByteToCharMS950_HKSCS.java - src/share/classes/sun/io/ByteToCharMacArabic.java - src/share/classes/sun/io/ByteToCharMacCentralEurope.java - src/share/classes/sun/io/ByteToCharMacCroatian.java - src/share/classes/sun/io/ByteToCharMacCyrillic.java - src/share/classes/sun/io/ByteToCharMacDingbat.java - src/share/classes/sun/io/ByteToCharMacGreek.java - src/share/classes/sun/io/ByteToCharMacHebrew.java - src/share/classes/sun/io/ByteToCharMacIceland.java - src/share/classes/sun/io/ByteToCharMacRoman.java - src/share/classes/sun/io/ByteToCharMacRomania.java - src/share/classes/sun/io/ByteToCharMacSymbol.java - src/share/classes/sun/io/ByteToCharMacThai.java - src/share/classes/sun/io/ByteToCharMacTurkish.java - src/share/classes/sun/io/ByteToCharMacUkraine.java - src/share/classes/sun/io/ByteToCharPCK.java - src/share/classes/sun/io/ByteToCharSJIS.java - src/share/classes/sun/io/ByteToCharSingleByte.java - src/share/classes/sun/io/ByteToCharTIS620.java - src/share/classes/sun/io/ByteToCharUTF16.java - src/share/classes/sun/io/ByteToCharUTF8.java - src/share/classes/sun/io/ByteToCharUnicode.java - src/share/classes/sun/io/ByteToCharUnicodeBig.java - src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java - src/share/classes/sun/io/ByteToCharUnicodeLittle.java - src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharToByteASCII.java - src/share/classes/sun/io/CharToByteBig5.java - src/share/classes/sun/io/CharToByteBig5_HKSCS.java - src/share/classes/sun/io/CharToByteBig5_Solaris.java - src/share/classes/sun/io/CharToByteConverter.java - src/share/classes/sun/io/CharToByteCp037.java - src/share/classes/sun/io/CharToByteCp1006.java - src/share/classes/sun/io/CharToByteCp1025.java - src/share/classes/sun/io/CharToByteCp1026.java - src/share/classes/sun/io/CharToByteCp1046.java - src/share/classes/sun/io/CharToByteCp1047.java - src/share/classes/sun/io/CharToByteCp1097.java - src/share/classes/sun/io/CharToByteCp1098.java - src/share/classes/sun/io/CharToByteCp1112.java - src/share/classes/sun/io/CharToByteCp1122.java - src/share/classes/sun/io/CharToByteCp1123.java - src/share/classes/sun/io/CharToByteCp1124.java - src/share/classes/sun/io/CharToByteCp1140.java - src/share/classes/sun/io/CharToByteCp1141.java - src/share/classes/sun/io/CharToByteCp1142.java - src/share/classes/sun/io/CharToByteCp1143.java - src/share/classes/sun/io/CharToByteCp1144.java - src/share/classes/sun/io/CharToByteCp1145.java - src/share/classes/sun/io/CharToByteCp1146.java - src/share/classes/sun/io/CharToByteCp1147.java - src/share/classes/sun/io/CharToByteCp1148.java - src/share/classes/sun/io/CharToByteCp1149.java - src/share/classes/sun/io/CharToByteCp1250.java - src/share/classes/sun/io/CharToByteCp1251.java - src/share/classes/sun/io/CharToByteCp1252.java - src/share/classes/sun/io/CharToByteCp1253.java - src/share/classes/sun/io/CharToByteCp1254.java - src/share/classes/sun/io/CharToByteCp1255.java - src/share/classes/sun/io/CharToByteCp1256.java - src/share/classes/sun/io/CharToByteCp1257.java - src/share/classes/sun/io/CharToByteCp1258.java - src/share/classes/sun/io/CharToByteCp1381.java - src/share/classes/sun/io/CharToByteCp1383.java - src/share/classes/sun/io/CharToByteCp273.java - src/share/classes/sun/io/CharToByteCp277.java - src/share/classes/sun/io/CharToByteCp278.java - src/share/classes/sun/io/CharToByteCp280.java - src/share/classes/sun/io/CharToByteCp284.java - src/share/classes/sun/io/CharToByteCp285.java - src/share/classes/sun/io/CharToByteCp297.java - src/share/classes/sun/io/CharToByteCp33722.java - src/share/classes/sun/io/CharToByteCp420.java - src/share/classes/sun/io/CharToByteCp424.java - src/share/classes/sun/io/CharToByteCp437.java - src/share/classes/sun/io/CharToByteCp500.java - src/share/classes/sun/io/CharToByteCp737.java - src/share/classes/sun/io/CharToByteCp775.java - src/share/classes/sun/io/CharToByteCp833.java - src/share/classes/sun/io/CharToByteCp834.java - src/share/classes/sun/io/CharToByteCp838.java - src/share/classes/sun/io/CharToByteCp850.java - src/share/classes/sun/io/CharToByteCp852.java - src/share/classes/sun/io/CharToByteCp855.java - src/share/classes/sun/io/CharToByteCp856.java - src/share/classes/sun/io/CharToByteCp857.java - src/share/classes/sun/io/CharToByteCp858.java - src/share/classes/sun/io/CharToByteCp860.java - src/share/classes/sun/io/CharToByteCp861.java - src/share/classes/sun/io/CharToByteCp862.java - src/share/classes/sun/io/CharToByteCp863.java - src/share/classes/sun/io/CharToByteCp864.java - src/share/classes/sun/io/CharToByteCp865.java - src/share/classes/sun/io/CharToByteCp866.java - src/share/classes/sun/io/CharToByteCp868.java - src/share/classes/sun/io/CharToByteCp869.java - src/share/classes/sun/io/CharToByteCp870.java - src/share/classes/sun/io/CharToByteCp871.java - src/share/classes/sun/io/CharToByteCp874.java - src/share/classes/sun/io/CharToByteCp875.java - src/share/classes/sun/io/CharToByteCp918.java - src/share/classes/sun/io/CharToByteCp921.java - src/share/classes/sun/io/CharToByteCp922.java - src/share/classes/sun/io/CharToByteCp930.java - src/share/classes/sun/io/CharToByteCp933.java - src/share/classes/sun/io/CharToByteCp935.java - src/share/classes/sun/io/CharToByteCp937.java - src/share/classes/sun/io/CharToByteCp939.java - src/share/classes/sun/io/CharToByteCp942.java - src/share/classes/sun/io/CharToByteCp942C.java - src/share/classes/sun/io/CharToByteCp943.java - src/share/classes/sun/io/CharToByteCp943C.java - src/share/classes/sun/io/CharToByteCp948.java - src/share/classes/sun/io/CharToByteCp949.java - src/share/classes/sun/io/CharToByteCp949C.java - src/share/classes/sun/io/CharToByteCp950.java - src/share/classes/sun/io/CharToByteCp964.java - src/share/classes/sun/io/CharToByteCp970.java - src/share/classes/sun/io/CharToByteDBCS_ASCII.java - src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java - src/share/classes/sun/io/CharToByteDoubleByte.java - src/share/classes/sun/io/CharToByteEUC.java - src/share/classes/sun/io/CharToByteEUC_CN.java - src/share/classes/sun/io/CharToByteEUC_JP.java - src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java - src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java - src/share/classes/sun/io/CharToByteEUC_KR.java - src/share/classes/sun/io/CharToByteEUC_TW.java - src/share/classes/sun/io/CharToByteGB18030.java - src/share/classes/sun/io/CharToByteGBK.java - src/share/classes/sun/io/CharToByteISCII91.java - src/share/classes/sun/io/CharToByteISO2022.java - src/share/classes/sun/io/CharToByteISO2022CN_CNS.java - src/share/classes/sun/io/CharToByteISO2022CN_GB.java - src/share/classes/sun/io/CharToByteISO2022JP.java - src/share/classes/sun/io/CharToByteISO2022KR.java - src/share/classes/sun/io/CharToByteISO8859_1.java - src/share/classes/sun/io/CharToByteISO8859_13.java - src/share/classes/sun/io/CharToByteISO8859_15.java - src/share/classes/sun/io/CharToByteISO8859_2.java - src/share/classes/sun/io/CharToByteISO8859_3.java - src/share/classes/sun/io/CharToByteISO8859_4.java - src/share/classes/sun/io/CharToByteISO8859_5.java - src/share/classes/sun/io/CharToByteISO8859_6.java - src/share/classes/sun/io/CharToByteISO8859_7.java - src/share/classes/sun/io/CharToByteISO8859_8.java - src/share/classes/sun/io/CharToByteISO8859_9.java - src/share/classes/sun/io/CharToByteJIS0201.java - src/share/classes/sun/io/CharToByteJIS0208.java - src/share/classes/sun/io/CharToByteJIS0208_Solaris.java - src/share/classes/sun/io/CharToByteJIS0212.java - src/share/classes/sun/io/CharToByteJIS0212_Solaris.java - src/share/classes/sun/io/CharToByteJohab.java - src/share/classes/sun/io/CharToByteKOI8_R.java - src/share/classes/sun/io/CharToByteMS874.java - src/share/classes/sun/io/CharToByteMS932.java - src/share/classes/sun/io/CharToByteMS936.java - src/share/classes/sun/io/CharToByteMS949.java - src/share/classes/sun/io/CharToByteMS950.java - src/share/classes/sun/io/CharToByteMS950_HKSCS.java - src/share/classes/sun/io/CharToByteMacArabic.java - src/share/classes/sun/io/CharToByteMacCentralEurope.java - src/share/classes/sun/io/CharToByteMacCroatian.java - src/share/classes/sun/io/CharToByteMacCyrillic.java - src/share/classes/sun/io/CharToByteMacDingbat.java - src/share/classes/sun/io/CharToByteMacGreek.java - src/share/classes/sun/io/CharToByteMacHebrew.java - src/share/classes/sun/io/CharToByteMacIceland.java - src/share/classes/sun/io/CharToByteMacRoman.java - src/share/classes/sun/io/CharToByteMacRomania.java - src/share/classes/sun/io/CharToByteMacSymbol.java - src/share/classes/sun/io/CharToByteMacThai.java - src/share/classes/sun/io/CharToByteMacTurkish.java - src/share/classes/sun/io/CharToByteMacUkraine.java - src/share/classes/sun/io/CharToBytePCK.java - src/share/classes/sun/io/CharToByteSJIS.java - src/share/classes/sun/io/CharToByteSingleByte.java - src/share/classes/sun/io/CharToByteTIS620.java - src/share/classes/sun/io/CharToByteUTF16.java - src/share/classes/sun/io/CharToByteUTF8.java - src/share/classes/sun/io/CharToByteUnicode.java - src/share/classes/sun/io/CharToByteUnicodeBig.java - src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java - src/share/classes/sun/io/CharToByteUnicodeLittle.java - src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java - src/share/classes/sun/io/CharacterEncoding.java - src/share/classes/sun/io/ConversionBufferFullException.java - src/share/classes/sun/io/Converters.java - src/share/classes/sun/io/MalformedInputException.java - src/share/classes/sun/io/UnknownCharacterException.java - src/share/classes/sun/nio/ch/SctpMessageInfoImpl.java - src/share/classes/sun/nio/ch/SctpStdSocketOption.java - src/share/classes/sun/security/pkcs/EncodingException.java - src/share/classes/sun/security/pkcs/PKCS10.java - src/share/classes/sun/security/pkcs/PKCS10Attribute.java - src/share/classes/sun/security/pkcs/PKCS10Attributes.java - src/share/classes/sun/security/util/BigInt.java - src/share/classes/sun/security/util/PathList.java ! src/share/classes/sun/security/x509/CRLExtensions.java - src/share/classes/sun/security/x509/CertAndKeyGen.java ! src/share/classes/sun/security/x509/CertificateExtensions.java ! src/share/classes/sun/security/x509/X509CRLEntryImpl.java ! src/share/classes/sun/security/x509/X509CRLImpl.java ! src/share/classes/sun/security/x509/X509CertImpl.java - src/share/classes/sun/tools/jar/JarImageSource.java ! src/share/lib/security/java.security-solaris - src/share/native/java/lang/fdlibm/src/e_acosh.c - src/share/native/java/lang/fdlibm/src/e_gamma.c - src/share/native/java/lang/fdlibm/src/e_gamma_r.c - src/share/native/java/lang/fdlibm/src/e_j0.c - src/share/native/java/lang/fdlibm/src/e_j1.c - src/share/native/java/lang/fdlibm/src/e_jn.c - src/share/native/java/lang/fdlibm/src/e_lgamma.c - src/share/native/java/lang/fdlibm/src/e_lgamma_r.c - src/share/native/java/lang/fdlibm/src/s_asinh.c - src/share/native/java/lang/fdlibm/src/s_erf.c - src/share/native/java/lang/fdlibm/src/w_acosh.c - src/share/native/java/lang/fdlibm/src/w_gamma.c - src/share/native/java/lang/fdlibm/src/w_gamma_r.c - src/share/native/java/lang/fdlibm/src/w_j0.c - src/share/native/java/lang/fdlibm/src/w_j1.c - src/share/native/java/lang/fdlibm/src/w_jn.c - src/share/native/java/lang/fdlibm/src/w_lgamma.c - src/share/native/java/lang/fdlibm/src/w_lgamma_r.c - src/share/native/java/util/zip/zlib-1.2.3/ChangeLog - src/share/native/java/util/zip/zlib-1.2.3/README - src/share/native/java/util/zip/zlib-1.2.3/compress.c - src/share/native/java/util/zip/zlib-1.2.3/crc32.h - src/share/native/java/util/zip/zlib-1.2.3/deflate.c - src/share/native/java/util/zip/zlib-1.2.3/deflate.h - src/share/native/java/util/zip/zlib-1.2.3/gzio.c - src/share/native/java/util/zip/zlib-1.2.3/infback.c - src/share/native/java/util/zip/zlib-1.2.3/inffast.c - src/share/native/java/util/zip/zlib-1.2.3/inffast.h - src/share/native/java/util/zip/zlib-1.2.3/inffixed.h - src/share/native/java/util/zip/zlib-1.2.3/inflate.c - src/share/native/java/util/zip/zlib-1.2.3/inflate.h - src/share/native/java/util/zip/zlib-1.2.3/inftrees.c - src/share/native/java/util/zip/zlib-1.2.3/inftrees.h - src/share/native/java/util/zip/zlib-1.2.3/patches/ChangeLog_java - src/share/native/java/util/zip/zlib-1.2.3/patches/crc32.c.diff - src/share/native/java/util/zip/zlib-1.2.3/patches/inflate.c.diff - src/share/native/java/util/zip/zlib-1.2.3/patches/zconf.h.diff - src/share/native/java/util/zip/zlib-1.2.3/patches/zlib.h.diff - src/share/native/java/util/zip/zlib-1.2.3/trees.c - src/share/native/java/util/zip/zlib-1.2.3/trees.h - src/share/native/java/util/zip/zlib-1.2.3/uncompr.c - src/share/native/java/util/zip/zlib-1.2.3/zadler32.c - src/share/native/java/util/zip/zlib-1.2.3/zconf.h - src/share/native/java/util/zip/zlib-1.2.3/zcrc32.c - src/share/native/java/util/zip/zlib-1.2.3/zlib.h - src/share/native/java/util/zip/zlib-1.2.3/zutil.c - src/share/native/java/util/zip/zlib-1.2.3/zutil.h - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c - src/share/native/sun/rmi/server/MarshalInputStream.c - src/solaris/classes/sun/awt/motif/AWTLockAccess.java - src/solaris/classes/sun/awt/motif/MFontPeer.java - src/solaris/classes/sun/awt/motif/MToolkit.java - src/solaris/classes/sun/awt/motif/MToolkitThreadBlockedHandler.java - src/solaris/classes/sun/awt/motif/MWindowAttributes.java - src/solaris/classes/sun/awt/motif/X11FontMetrics.java - src/solaris/classes/sun/nio/ch/SctpAssocChange.java - src/solaris/classes/sun/nio/ch/SctpAssociationImpl.java - src/solaris/classes/sun/nio/ch/SctpChannelImpl.java - src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java - src/solaris/classes/sun/nio/ch/SctpNet.java - src/solaris/classes/sun/nio/ch/SctpNotification.java - src/solaris/classes/sun/nio/ch/SctpPeerAddrChange.java - src/solaris/classes/sun/nio/ch/SctpResultContainer.java - src/solaris/classes/sun/nio/ch/SctpSendFailed.java - src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java - src/solaris/classes/sun/nio/ch/SctpShutdown.java - src/solaris/doc/sun/man/man1/apt.1 - src/solaris/doc/sun/man/man1/ja/apt.1 - src/solaris/native/sun/awt/MouseInfo.c - src/solaris/native/sun/awt/XDrawingArea.c - src/solaris/native/sun/awt/XDrawingArea.h - src/solaris/native/sun/awt/XDrawingAreaP.h - src/solaris/native/sun/awt/awt_Cursor.h - src/solaris/native/sun/awt/awt_KeyboardFocusManager.h - src/solaris/native/sun/awt/awt_MToolkit.c - src/solaris/native/sun/awt/awt_MToolkit.h - src/solaris/native/sun/awt/awt_MenuItem.h - src/solaris/native/sun/awt/awt_PopupMenu.h - src/solaris/native/sun/awt/awt_TopLevel.h - src/solaris/native/sun/awt/awt_Window.h - src/solaris/native/sun/awt/awt_mgrsel.c - src/solaris/native/sun/awt/awt_mgrsel.h - src/solaris/native/sun/awt/awt_motif.h - src/solaris/native/sun/awt/awt_wm.c - src/solaris/native/sun/awt/awt_wm.h - src/solaris/native/sun/awt/awt_xembed.h - src/solaris/native/sun/awt/awt_xembed_server.c - src/solaris/native/sun/awt/awt_xembed_server.h - src/solaris/native/sun/nio/ch/Sctp.h - src/solaris/native/sun/nio/ch/SctpChannelImpl.c - src/solaris/native/sun/nio/ch/SctpNet.c - src/solaris/native/sun/nio/ch/SctpServerChannelImpl.c - src/windows/classes/sun/nio/ch/SctpChannelImpl.java - src/windows/classes/sun/nio/ch/SctpMultiChannelImpl.java - src/windows/classes/sun/nio/ch/SctpServerChannelImpl.java - test/java/io/File/BlockIsDirectory.java - test/java/io/File/isDirectory/Applet.html - test/java/io/File/isDirectory/Applet.java - test/java/io/FileDescriptor/FileChannelFDTest.java - test/java/util/ResourceBundle/Control/ExpirationTest.java - test/java/util/ResourceBundle/Control/ExpirationTest.sh - test/sun/nio/cs/OLD/TestX11CS.java - test/sun/nio/cs/TestISCII91.java - test/sun/security/util/BigInt/BigIntEqualsHashCode.java - test/tools/launcher/ChangeDataModel.sh - test/tools/launcher/CreatePlatformFile.java - test/tools/launcher/DefaultLocaleTest.sh - test/tools/launcher/SomeException.java - test/tools/launcher/UnicodeCleanup.java - test/tools/launcher/UnicodeTest.sh - test/tools/launcher/deleteI18n.sh - test/tools/launcher/i18nTest.sh - test/tools/launcher/unresolvedExceptions.sh Changeset: 95998c60ab4b Author: robm Date: 2012-04-11 17:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/95998c60ab4b 7143606: File.createTempFile should be improved for temporary files created by the platform. Reviewed-by: sherman ! src/macosx/classes/apple/applescript/AppleScriptEngine.java ! src/share/classes/com/sun/java/util/jar/pack/Driver.java ! src/share/classes/java/awt/Font.java ! src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java ! src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java ! src/share/classes/javax/management/loading/MLet.java ! src/share/classes/sun/print/PSPrinterJob.java ! src/share/classes/sun/rmi/server/Activation.java ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/native2ascii/Main.java ! src/solaris/classes/sun/font/FcFontConfiguration.java ! src/solaris/classes/sun/print/UnixPrintJob.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java Changeset: afe424ee3240 Author: asaha Date: 2012-05-08 07:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/afe424ee3240 Merge ! src/share/lib/security/java.security ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows - test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.chk - test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libnspr4.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libnss3.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libnssckbi.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libplc4.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libplds4.so - test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.chk - test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/linux-i586/libnspr4.so - test/sun/security/pkcs11/nss/lib/linux-i586/libnss3.so - test/sun/security/pkcs11/nss/lib/linux-i586/libnssckbi.so - test/sun/security/pkcs11/nss/lib/linux-i586/libplc4.so - test/sun/security/pkcs11/nss/lib/linux-i586/libplds4.so - test/sun/security/pkcs11/nss/lib/linux-i586/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libnspr4.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libnss3.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libnssckbi.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libplc4.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libplds4.so - test/sun/security/pkcs11/nss/lib/solaris-amd64/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libfreebl3.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libnspr4.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libnssckbi.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libplc4.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libplds4.so - test/sun/security/pkcs11/nss/lib/solaris-i586/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.chk - test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libnssckbi.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libplc4.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libplds4.so - test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.chk - test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnspr4.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnss3.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnssckbi.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libplc4.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libplds4.so - test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so - test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll - test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll - test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll - test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll - test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll - test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll Changeset: 3a2cfce96908 Author: coffeys Date: 2012-05-17 12:21 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/3a2cfce96908 7123896: Unexpected behavior due to Solaris using separate IPv4 and IPv6 port spaces Reviewed-by: alanb ! src/share/native/java/net/net_util.c ! src/share/native/java/net/net_util.h ! src/solaris/native/java/net/net_util_md.c ! src/windows/native/java/net/net_util_md.c ! test/java/net/Socket/setReuseAddress/Basic.java ! test/java/net/Socket/setReuseAddress/Restart.java Changeset: cf097cda2733 Author: jrose Date: 2012-05-18 20:31 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/cf097cda2733 7165628: Issues with java.lang.invoke.MethodHandles.Lookup Summary: Base SecurityManager checks on either of Lookup.lookupClass or caller class; also clarify Lookup access checks. Reviewed-by: twisti ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/sun/invoke/util/VerifyAccess.java + test/java/lang/invoke/AccessControlTest.java + test/java/lang/invoke/AccessControlTest_subpkg/Acquaintance_remote.java Changeset: 36d899822de7 Author: asaha Date: 2012-05-21 15:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/36d899822de7 Merge - src/macosx/bin/amd64/jvm.cfg ! src/share/classes/sun/print/PSPrinterJob.java - src/share/classes/sun/security/action/LoadLibraryAction.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java ! src/solaris/native/java/net/net_util_md.c - test/tools/pack200/dyn.jar - test/tools/pack200/pack200-verifier/src/xmlkit/ClassSyntax.java - test/tools/pack200/pack200-verifier/src/xmlkit/ClassWriter.java - test/tools/pack200/pack200-verifier/src/xmlkit/InstructionAssembler.java - test/tools/pack200/pack200-verifier/src/xmlkit/InstructionSyntax.java Changeset: 4c403c00fdf1 Author: asaha Date: 2012-05-24 10:23 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4c403c00fdf1 7171228: closed/java/lang/SecurityManager/CheckPackageDefinition.java failure Reviewed-by: mullan ! src/share/lib/security/java.security ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: 2fbf98031e65 Author: asaha Date: 2012-06-07 12:31 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/2fbf98031e65 Merge ! src/share/native/java/net/net_util.h ! src/solaris/native/java/net/net_util_md.c Changeset: b92353a01aa0 Author: lana Date: 2012-06-26 10:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/b92353a01aa0 Merge ! src/share/classes/sun/security/x509/X509CRLEntryImpl.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java ! src/solaris/native/java/net/net_util_md.c Changeset: 8d2ed9d58453 Author: katleman Date: 2012-06-28 09:33 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/8d2ed9d58453 Added tag jdk8-b45 for changeset b92353a01aa0 ! .hgtags From john.coomes at oracle.com Fri Jun 29 02:22:13 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 09:22:13 +0000 Subject: hg: hsx/hotspot-comp/langtools: 8 new changesets Message-ID: <20120629092243.0C7F347BCC@hg.openjdk.java.net> Changeset: 9cafabb5e576 Author: ksrini Date: 2012-06-11 15:33 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/9cafabb5e576 7160072: (javac) JavacParserTests needs cleanup Reviewed-by: jjg ! test/tools/javac/parser/JavacParserTest.java Changeset: e534aa747b22 Author: lana Date: 2012-06-17 21:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/e534aa747b22 Merge Changeset: 34e254ffd0e7 Author: mcimadamore Date: 2012-06-19 13:25 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/34e254ffd0e7 7177701: error: Filling jar message during javax/imageio/metadata/IIOMetadataFormatImpl compilation Summary: Recent JDK hash changes affected order in which files are returned from JavacFileManager.list() Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java Changeset: 5c0b3faeb0b0 Author: jjg Date: 2012-06-20 13:23 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/5c0b3faeb0b0 7174143: encapsulate doc comment table Reviewed-by: ksrini, mcimadamore ! src/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/jvm/CRTable.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/model/JavacElements.java - src/share/classes/com/sun/tools/javac/parser/EndPosTable.java ! src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java + src/share/classes/com/sun/tools/javac/parser/SimpleDocCommentTable.java ! src/share/classes/com/sun/tools/javac/parser/Tokens.java + src/share/classes/com/sun/tools/javac/tree/DocCommentTable.java + src/share/classes/com/sun/tools/javac/tree/EndPosTable.java ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java ! src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java ! src/share/classes/com/sun/tools/javac/util/Log.java ! src/share/classes/com/sun/tools/javadoc/JavadocEnter.java ! src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java ! test/tools/javac/6304921/TestLog.java ! test/tools/javac/failover/CheckAttributedTree.java ! test/tools/javac/tree/DocCommentToplevelTest.java ! test/tools/javac/tree/TreePosTest.java Changeset: 067f51db3402 Author: jjg Date: 2012-06-21 13:22 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/067f51db3402 7178297: provide mapping from doc comment position to source file position Reviewed-by: mcimadamore, ksrini ! src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java ! src/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java ! src/share/classes/com/sun/tools/javac/parser/Tokens.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Changeset: 3468519d9b45 Author: jjg Date: 2012-06-22 14:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/3468519d9b45 7178763: javadoc OutOfMemory error results in several jdk8 tl nightly failures Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java Changeset: e111e4587cca Author: lana Date: 2012-06-25 21:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/e111e4587cca Merge - src/share/classes/com/sun/tools/javac/parser/EndPosTable.java Changeset: 4ca599497172 Author: katleman Date: 2012-06-28 09:33 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/langtools/rev/4ca599497172 Added tag jdk8-b45 for changeset e111e4587cca ! .hgtags From john.coomes at oracle.com Fri Jun 29 02:00:04 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 29 Jun 2012 09:00:04 +0000 Subject: hg: hsx/hotspot-comp/jaxp: 10 new changesets Message-ID: <20120629090031.94A9147BC9@hg.openjdk.java.net> Changeset: f328914a04ea Author: joehw Date: 2012-06-11 15:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/f328914a04ea 7157610: NullPointerException occurs when parsing XML doc Summary: recovers what was the original disallow-doctype-decl, reporting error when disallow-doctype-decl is true, and change everything else that was added for SupportDTD to be governed by a new flag 'fSupportDTD'. Reviewed-by: lancea ! src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java ! src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java Changeset: 0c7f86d9ff8b Author: joehw Date: 2012-06-12 10:23 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/0c7f86d9ff8b 7144423: StAX EventReader swallows the cause of error Summary: make sure the cause of the error is properly reported Reviewed-by: lancea, psandoz ! src/com/sun/xml/internal/stream/XMLEventReaderImpl.java Changeset: a079926a6d81 Author: lana Date: 2012-06-17 21:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/a079926a6d81 Merge Changeset: 54a86b897fe8 Author: lana Date: 2012-06-25 21:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/54a86b897fe8 Merge Changeset: d117133a7283 Author: joehw Date: 2012-04-10 13:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/d117133a7283 7157609: Issues with loop Reviewed-by: hawtin, lancea, asaha ! src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Changeset: 0e635b48336a Author: asaha Date: 2012-05-08 07:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/0e635b48336a Merge = src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java < src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java - src/share/classes/com/sun/java_cup/internal/runtime/Scanner.java - src/share/classes/com/sun/java_cup/internal/runtime/Symbol.java - src/share/classes/com/sun/java_cup/internal/runtime/lr_parser.java - src/share/classes/com/sun/java_cup/internal/runtime/virtual_parse_stack.java - src/share/classes/com/sun/org/apache/bcel/internal/Constants.java - src/share/classes/com/sun/org/apache/bcel/internal/ExceptionConstants.java - src/share/classes/com/sun/org/apache/bcel/internal/Repository.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java - src/share/classes/com/sun/org/apache/bcel/internal/classfile/package.html - src/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java - src/share/classes/com/sun/org/apache/bcel/internal/generic/package.html - src/share/classes/com/sun/org/apache/bcel/internal/package.html - src/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java - src/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java - src/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java - src/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoader.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassPath.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ClassVector.java - src/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java - src/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java - src/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java - src/share/classes/com/sun/org/apache/bcel/internal/util/JavaWrapper.java - src/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java - src/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java - src/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java - src/share/classes/com/sun/org/apache/bcel/internal/util/package.html - src/share/classes/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java - src/share/classes/com/sun/org/apache/regexp/internal/CharacterIterator.java - src/share/classes/com/sun/org/apache/regexp/internal/RE.java - src/share/classes/com/sun/org/apache/regexp/internal/RECompiler.java - src/share/classes/com/sun/org/apache/regexp/internal/REDebugCompiler.java - src/share/classes/com/sun/org/apache/regexp/internal/REProgram.java - src/share/classes/com/sun/org/apache/regexp/internal/RESyntaxException.java - src/share/classes/com/sun/org/apache/regexp/internal/RETest.java - src/share/classes/com/sun/org/apache/regexp/internal/REUtil.java - src/share/classes/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java - src/share/classes/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java - src/share/classes/com/sun/org/apache/regexp/internal/StringCharacterIterator.java - src/share/classes/com/sun/org/apache/regexp/internal/recompile.java - src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory - src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory - src/share/classes/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager - src/share/classes/com/sun/org/apache/xalan/internal/Version.java - src/share/classes/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java - src/share/classes/com/sun/org/apache/xalan/internal/extensions/package.html - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltBase.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltMath.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltSets.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/Extensions.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/NodeInfo.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/lib/package.html - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLMessages.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java - src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties - src/share/classes/com/sun/org/apache/xalan/internal/res/package.html - src/share/classes/com/sun/org/apache/xalan/internal/templates/Constants.java - src/share/classes/com/sun/org/apache/xalan/internal/templates/package.html - src/share/classes/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java - src/share/classes/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xslt/Process.java - src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xslt/package.html - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOM.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/Translet.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/TransletException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java - src/share/classes/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/AttributeMap.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ChildNode.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/CommentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNode.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/LCount.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeListCache.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/NotationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ParentNode.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/TextImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl - src/share/classes/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList - src/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/PropertyManager.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/Version.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java - src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory - src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/SAXParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLParser.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration - src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration - src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration - src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver - src/share/classes/com/sun/org/apache/xerces/internal/util/AttributesProxy.java - src/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DOMInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DOMUtil.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/util/EncodingMap.java - src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java - src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/FeatureState.java - src/share/classes/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/util/IntStack.java - src/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorProxy.java - src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/MessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java - src/share/classes/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java - src/share/classes/com/sun/org/apache/xerces/internal/util/PropertyState.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SAX2XNI.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SAXInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SecurityManager.java - src/share/classes/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java - src/share/classes/com/sun/org/apache/xerces/internal/util/StAXInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java - src/share/classes/com/sun/org/apache/xerces/internal/util/Status.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolTable.java - src/share/classes/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java - src/share/classes/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/URI.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XML11Char.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLChar.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java - src/share/classes/com/sun/org/apache/xerces/internal/util/XMLSymbols.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java - src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/QName.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLLocator.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLString.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/XNIException.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java - src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSConstants.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSException.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSFacet.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSImplementation.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSLoader.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModel.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObject.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSParticle.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTerm.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/XSWildcard.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java - src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/package.html - src/share/classes/com/sun/org/apache/xml/internal/dtm/Axis.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTM.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMException.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMFilter.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMIterator.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMManager.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java - src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java - src/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/Catalog.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogException.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogManager.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/Resolver.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java - src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/ElementState.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res - src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/LineSeparator.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/Method.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/OutputFormat.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/Printer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/Serializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/TextSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java - src/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemContext.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemDesc.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/Method.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/Serializer.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerBase.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/TreeWalker.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/Utils.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/Version.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterChain.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/output_html.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/output_text.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/output_unknown.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/output_xml.properties - src/share/classes/com/sun/org/apache/xml/internal/serializer/package.html - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/AttList.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Utils.java - src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java - src/share/classes/com/sun/org/apache/xml/internal/utils/AttList.java - src/share/classes/com/sun/org/apache/xml/internal/utils/BoolStack.java - src/share/classes/com/sun/org/apache/xml/internal/utils/CharKey.java - src/share/classes/com/sun/org/apache/xml/internal/utils/Constants.java - src/share/classes/com/sun/org/apache/xml/internal/utils/DOM2Helper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java - src/share/classes/com/sun/org/apache/xml/internal/utils/DOMHelper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/DOMOrder.java - src/share/classes/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ElemDesc.java - src/share/classes/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java - src/share/classes/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java - src/share/classes/com/sun/org/apache/xml/internal/utils/IntStack.java - src/share/classes/com/sun/org/apache/xml/internal/utils/IntVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java - src/share/classes/com/sun/org/apache/xml/internal/utils/LocaleUtility.java - src/share/classes/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java - src/share/classes/com/sun/org/apache/xml/internal/utils/NSInfo.java - src/share/classes/com/sun/org/apache/xml/internal/utils/NameSpace.java - src/share/classes/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java - src/share/classes/com/sun/org/apache/xml/internal/utils/NodeConsumer.java - src/share/classes/com/sun/org/apache/xml/internal/utils/NodeVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectFactory.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectStack.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolver.java - src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java - src/share/classes/com/sun/org/apache/xml/internal/utils/QName.java - src/share/classes/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StopParseException.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringBufferPool.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringToIntTable.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTable.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StringVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java - src/share/classes/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java - src/share/classes/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/TreeWalker.java - src/share/classes/com/sun/org/apache/xml/internal/utils/Trie.java - src/share/classes/com/sun/org/apache/xml/internal/utils/URI.java - src/share/classes/com/sun/org/apache/xml/internal/utils/UnImplNode.java - src/share/classes/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java - src/share/classes/com/sun/org/apache/xml/internal/utils/WrongParserException.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XML11Char.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLChar.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLString.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java - src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java - src/share/classes/com/sun/org/apache/xml/internal/utils/package.html - src/share/classes/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_de.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_en.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_es.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_it.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java - src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java - src/share/classes/com/sun/org/apache/xpath/internal/Arg.java - src/share/classes/com/sun/org/apache/xpath/internal/CachedXPathAPI.java - src/share/classes/com/sun/org/apache/xpath/internal/Expression.java - src/share/classes/com/sun/org/apache/xpath/internal/ExpressionNode.java - src/share/classes/com/sun/org/apache/xpath/internal/ExpressionOwner.java - src/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java - src/share/classes/com/sun/org/apache/xpath/internal/FoundIndex.java - src/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java - src/share/classes/com/sun/org/apache/xpath/internal/NodeSetDTM.java - src/share/classes/com/sun/org/apache/xpath/internal/SourceTree.java - src/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java - src/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java - src/share/classes/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java - src/share/classes/com/sun/org/apache/xpath/internal/XPath.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathAPI.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathException.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathFactory.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathProcessorException.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitable.java - src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitor.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/PathComponent.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/RTFIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/SubContextList.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java - src/share/classes/com/sun/org/apache/xpath/internal/axes/package.html - src/share/classes/com/sun/org/apache/xpath/internal/compiler/Compiler.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/Keywords.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpCodes.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java - src/share/classes/com/sun/org/apache/xpath/internal/compiler/package.html - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java - src/share/classes/com/sun/org/apache/xpath/internal/domapi/package.html - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncConcat.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncContains.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCount.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFloor.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncId.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLang.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNot.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNumber.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncQname.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncRound.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncString.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSum.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/Function.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java - src/share/classes/com/sun/org/apache/xpath/internal/functions/package.html - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XBoolean.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XNull.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XNumber.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XString.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForChars.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java - src/share/classes/com/sun/org/apache/xpath/internal/objects/package.html - src/share/classes/com/sun/org/apache/xpath/internal/operations/And.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Bool.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Div.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Equals.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Gt.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Gte.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Lt.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Lte.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Minus.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Mod.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Mult.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Neg.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/NotEquals.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Number.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Or.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Plus.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Quo.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/String.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java - src/share/classes/com/sun/org/apache/xpath/internal/operations/package.html - src/share/classes/com/sun/org/apache/xpath/internal/package.html - src/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java - src/share/classes/com/sun/org/apache/xpath/internal/patterns/package.html - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java - src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHMessages.java - src/share/classes/com/sun/org/apache/xpath/internal/res/package.html - src/share/classes/com/sun/xml/internal/stream/Entity.java - src/share/classes/com/sun/xml/internal/stream/EventFilterSupport.java - src/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java - src/share/classes/com/sun/xml/internal/stream/StaxErrorReporter.java - src/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java - src/share/classes/com/sun/xml/internal/stream/XMLBufferListener.java - src/share/classes/com/sun/xml/internal/stream/XMLEntityReader.java - src/share/classes/com/sun/xml/internal/stream/XMLEntityStorage.java - src/share/classes/com/sun/xml/internal/stream/XMLEventReaderImpl.java - src/share/classes/com/sun/xml/internal/stream/XMLInputFactoryImpl.java - src/share/classes/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java - src/share/classes/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java - src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java - src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java - src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java - src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java - src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java - src/share/classes/com/sun/xml/internal/stream/events/AttributeImpl.java - src/share/classes/com/sun/xml/internal/stream/events/CharacterEvent.java - src/share/classes/com/sun/xml/internal/stream/events/CommentEvent.java - src/share/classes/com/sun/xml/internal/stream/events/DTDEvent.java - src/share/classes/com/sun/xml/internal/stream/events/DummyEvent.java - src/share/classes/com/sun/xml/internal/stream/events/EndDocumentEvent.java - src/share/classes/com/sun/xml/internal/stream/events/EndElementEvent.java - src/share/classes/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java - src/share/classes/com/sun/xml/internal/stream/events/EntityReferenceEvent.java - src/share/classes/com/sun/xml/internal/stream/events/LocationImpl.java - src/share/classes/com/sun/xml/internal/stream/events/NamedEvent.java - src/share/classes/com/sun/xml/internal/stream/events/NamespaceImpl.java - src/share/classes/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java - src/share/classes/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java - src/share/classes/com/sun/xml/internal/stream/events/StartDocumentEvent.java - src/share/classes/com/sun/xml/internal/stream/events/StartElementEvent.java - src/share/classes/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java - src/share/classes/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java - src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory - src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory - src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory - src/share/classes/com/sun/xml/internal/stream/util/BufferAllocator.java - src/share/classes/com/sun/xml/internal/stream/util/ReadOnlyIterator.java - src/share/classes/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java - src/share/classes/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java - src/share/classes/com/sun/xml/internal/stream/writers/WriterUtility.java - src/share/classes/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java - src/share/classes/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java - src/share/classes/com/sun/xml/internal/stream/writers/XMLOutputSource.java - src/share/classes/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java - src/share/classes/com/sun/xml/internal/stream/writers/XMLWriter.java - src/share/classes/javax/xml/XMLConstants.java - src/share/classes/javax/xml/datatype/DatatypeConfigurationException.java - src/share/classes/javax/xml/datatype/DatatypeConstants.java - src/share/classes/javax/xml/datatype/DatatypeFactory.java - src/share/classes/javax/xml/datatype/Duration.java - src/share/classes/javax/xml/datatype/FactoryFinder.java - src/share/classes/javax/xml/datatype/SecuritySupport.java - src/share/classes/javax/xml/datatype/XMLGregorianCalendar.java - src/share/classes/javax/xml/datatype/package.html - src/share/classes/javax/xml/namespace/NamespaceContext.java - src/share/classes/javax/xml/namespace/QName.java - src/share/classes/javax/xml/namespace/package.html - src/share/classes/javax/xml/parsers/DocumentBuilder.java - src/share/classes/javax/xml/parsers/DocumentBuilderFactory.java - src/share/classes/javax/xml/parsers/FactoryConfigurationError.java - src/share/classes/javax/xml/parsers/FactoryFinder.java - src/share/classes/javax/xml/parsers/ParserConfigurationException.java - src/share/classes/javax/xml/parsers/SAXParser.java - src/share/classes/javax/xml/parsers/SAXParserFactory.java - src/share/classes/javax/xml/parsers/SecuritySupport.java - src/share/classes/javax/xml/parsers/package.html - src/share/classes/javax/xml/stream/EventFilter.java - src/share/classes/javax/xml/stream/FactoryConfigurationError.java - src/share/classes/javax/xml/stream/FactoryFinder.java - src/share/classes/javax/xml/stream/Location.java - src/share/classes/javax/xml/stream/SecuritySupport.java - src/share/classes/javax/xml/stream/StreamFilter.java - src/share/classes/javax/xml/stream/XMLEventFactory.java - src/share/classes/javax/xml/stream/XMLEventReader.java - src/share/classes/javax/xml/stream/XMLEventWriter.java - src/share/classes/javax/xml/stream/XMLInputFactory.java - src/share/classes/javax/xml/stream/XMLOutputFactory.java - src/share/classes/javax/xml/stream/XMLReporter.java - src/share/classes/javax/xml/stream/XMLResolver.java - src/share/classes/javax/xml/stream/XMLStreamConstants.java - src/share/classes/javax/xml/stream/XMLStreamException.java - src/share/classes/javax/xml/stream/XMLStreamReader.java - src/share/classes/javax/xml/stream/XMLStreamWriter.java - src/share/classes/javax/xml/stream/events/Attribute.java - src/share/classes/javax/xml/stream/events/Characters.java - src/share/classes/javax/xml/stream/events/Comment.java - src/share/classes/javax/xml/stream/events/DTD.java - src/share/classes/javax/xml/stream/events/EndDocument.java - src/share/classes/javax/xml/stream/events/EndElement.java - src/share/classes/javax/xml/stream/events/EntityDeclaration.java - src/share/classes/javax/xml/stream/events/EntityReference.java - src/share/classes/javax/xml/stream/events/Namespace.java - src/share/classes/javax/xml/stream/events/NotationDeclaration.java - src/share/classes/javax/xml/stream/events/ProcessingInstruction.java - src/share/classes/javax/xml/stream/events/StartDocument.java - src/share/classes/javax/xml/stream/events/StartElement.java - src/share/classes/javax/xml/stream/events/XMLEvent.java - src/share/classes/javax/xml/stream/util/EventReaderDelegate.java - src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java - src/share/classes/javax/xml/stream/util/XMLEventAllocator.java - src/share/classes/javax/xml/stream/util/XMLEventConsumer.java - src/share/classes/javax/xml/transform/ErrorListener.java - src/share/classes/javax/xml/transform/FactoryFinder.java - src/share/classes/javax/xml/transform/OutputKeys.java - src/share/classes/javax/xml/transform/Result.java - src/share/classes/javax/xml/transform/SecuritySupport.java - src/share/classes/javax/xml/transform/Source.java - src/share/classes/javax/xml/transform/SourceLocator.java - src/share/classes/javax/xml/transform/Templates.java - src/share/classes/javax/xml/transform/Transformer.java - src/share/classes/javax/xml/transform/TransformerConfigurationException.java - src/share/classes/javax/xml/transform/TransformerException.java - src/share/classes/javax/xml/transform/TransformerFactory.java - src/share/classes/javax/xml/transform/TransformerFactoryConfigurationError.java - src/share/classes/javax/xml/transform/URIResolver.java - src/share/classes/javax/xml/transform/dom/DOMLocator.java - src/share/classes/javax/xml/transform/dom/DOMResult.java - src/share/classes/javax/xml/transform/dom/DOMSource.java - src/share/classes/javax/xml/transform/dom/package.html - src/share/classes/javax/xml/transform/overview.html - src/share/classes/javax/xml/transform/package.html - src/share/classes/javax/xml/transform/sax/SAXResult.java - src/share/classes/javax/xml/transform/sax/SAXSource.java - src/share/classes/javax/xml/transform/sax/SAXTransformerFactory.java - src/share/classes/javax/xml/transform/sax/TemplatesHandler.java - src/share/classes/javax/xml/transform/sax/TransformerHandler.java - src/share/classes/javax/xml/transform/sax/package.html - src/share/classes/javax/xml/transform/stax/StAXResult.java - src/share/classes/javax/xml/transform/stax/StAXSource.java - src/share/classes/javax/xml/transform/stax/package.html - src/share/classes/javax/xml/transform/stream/StreamResult.java - src/share/classes/javax/xml/transform/stream/StreamSource.java - src/share/classes/javax/xml/transform/stream/package.html - src/share/classes/javax/xml/validation/Schema.java - src/share/classes/javax/xml/validation/SchemaFactory.java - src/share/classes/javax/xml/validation/SchemaFactoryFinder.java - src/share/classes/javax/xml/validation/SchemaFactoryLoader.java - src/share/classes/javax/xml/validation/SecuritySupport.java - src/share/classes/javax/xml/validation/TypeInfoProvider.java - src/share/classes/javax/xml/validation/Validator.java - src/share/classes/javax/xml/validation/ValidatorHandler.java - src/share/classes/javax/xml/validation/package.html - src/share/classes/javax/xml/xpath/SecuritySupport.java - src/share/classes/javax/xml/xpath/XPath.java - src/share/classes/javax/xml/xpath/XPathConstants.java - src/share/classes/javax/xml/xpath/XPathException.java - src/share/classes/javax/xml/xpath/XPathExpression.java - src/share/classes/javax/xml/xpath/XPathExpressionException.java - src/share/classes/javax/xml/xpath/XPathFactory.java - src/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java - src/share/classes/javax/xml/xpath/XPathFactoryFinder.java - src/share/classes/javax/xml/xpath/XPathFunction.java - src/share/classes/javax/xml/xpath/XPathFunctionException.java - src/share/classes/javax/xml/xpath/XPathFunctionResolver.java - src/share/classes/javax/xml/xpath/XPathVariableResolver.java - src/share/classes/javax/xml/xpath/package.html - src/share/classes/org/w3c/dom/Attr.java - src/share/classes/org/w3c/dom/CDATASection.java - src/share/classes/org/w3c/dom/CharacterData.java - src/share/classes/org/w3c/dom/Comment.java - src/share/classes/org/w3c/dom/DOMConfiguration.java - src/share/classes/org/w3c/dom/DOMError.java - src/share/classes/org/w3c/dom/DOMErrorHandler.java - src/share/classes/org/w3c/dom/DOMException.java - src/share/classes/org/w3c/dom/DOMImplementation.java - src/share/classes/org/w3c/dom/DOMImplementationList.java - src/share/classes/org/w3c/dom/DOMImplementationSource.java - src/share/classes/org/w3c/dom/DOMLocator.java - src/share/classes/org/w3c/dom/DOMStringList.java - src/share/classes/org/w3c/dom/Document.java - src/share/classes/org/w3c/dom/DocumentFragment.java - src/share/classes/org/w3c/dom/DocumentType.java - src/share/classes/org/w3c/dom/Element.java - src/share/classes/org/w3c/dom/Entity.java - src/share/classes/org/w3c/dom/EntityReference.java - src/share/classes/org/w3c/dom/NameList.java - src/share/classes/org/w3c/dom/NamedNodeMap.java - src/share/classes/org/w3c/dom/Node.java - src/share/classes/org/w3c/dom/NodeList.java - src/share/classes/org/w3c/dom/Notation.java - src/share/classes/org/w3c/dom/ProcessingInstruction.java - src/share/classes/org/w3c/dom/Text.java - src/share/classes/org/w3c/dom/TypeInfo.java - src/share/classes/org/w3c/dom/UserDataHandler.java - src/share/classes/org/w3c/dom/bootstrap/DOMImplementationRegistry.java - src/share/classes/org/w3c/dom/css/CSS2Properties.java - src/share/classes/org/w3c/dom/css/CSSCharsetRule.java - src/share/classes/org/w3c/dom/css/CSSFontFaceRule.java - src/share/classes/org/w3c/dom/css/CSSImportRule.java - src/share/classes/org/w3c/dom/css/CSSMediaRule.java - src/share/classes/org/w3c/dom/css/CSSPageRule.java - src/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java - src/share/classes/org/w3c/dom/css/CSSRule.java - src/share/classes/org/w3c/dom/css/CSSRuleList.java - src/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java - src/share/classes/org/w3c/dom/css/CSSStyleRule.java - src/share/classes/org/w3c/dom/css/CSSStyleSheet.java - src/share/classes/org/w3c/dom/css/CSSUnknownRule.java - src/share/classes/org/w3c/dom/css/CSSValue.java - src/share/classes/org/w3c/dom/css/CSSValueList.java - src/share/classes/org/w3c/dom/css/Counter.java - src/share/classes/org/w3c/dom/css/DOMImplementationCSS.java - src/share/classes/org/w3c/dom/css/DocumentCSS.java - src/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java - src/share/classes/org/w3c/dom/css/RGBColor.java - src/share/classes/org/w3c/dom/css/Rect.java - src/share/classes/org/w3c/dom/css/ViewCSS.java - src/share/classes/org/w3c/dom/events/DocumentEvent.java - src/share/classes/org/w3c/dom/events/Event.java - src/share/classes/org/w3c/dom/events/EventException.java - src/share/classes/org/w3c/dom/events/EventListener.java - src/share/classes/org/w3c/dom/events/EventTarget.java - src/share/classes/org/w3c/dom/events/MouseEvent.java - src/share/classes/org/w3c/dom/events/MutationEvent.java - src/share/classes/org/w3c/dom/events/UIEvent.java - src/share/classes/org/w3c/dom/html/HTMLAnchorElement.java - src/share/classes/org/w3c/dom/html/HTMLAppletElement.java - src/share/classes/org/w3c/dom/html/HTMLAreaElement.java - src/share/classes/org/w3c/dom/html/HTMLBRElement.java - src/share/classes/org/w3c/dom/html/HTMLBaseElement.java - src/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java - src/share/classes/org/w3c/dom/html/HTMLBodyElement.java - src/share/classes/org/w3c/dom/html/HTMLButtonElement.java - src/share/classes/org/w3c/dom/html/HTMLCollection.java - src/share/classes/org/w3c/dom/html/HTMLDListElement.java - src/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java - src/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java - src/share/classes/org/w3c/dom/html/HTMLDivElement.java - src/share/classes/org/w3c/dom/html/HTMLDocument.java - src/share/classes/org/w3c/dom/html/HTMLElement.java - src/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java - src/share/classes/org/w3c/dom/html/HTMLFontElement.java - src/share/classes/org/w3c/dom/html/HTMLFormElement.java - src/share/classes/org/w3c/dom/html/HTMLFrameElement.java - src/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java - src/share/classes/org/w3c/dom/html/HTMLHRElement.java - src/share/classes/org/w3c/dom/html/HTMLHeadElement.java - src/share/classes/org/w3c/dom/html/HTMLHeadingElement.java - src/share/classes/org/w3c/dom/html/HTMLHtmlElement.java - src/share/classes/org/w3c/dom/html/HTMLIFrameElement.java - src/share/classes/org/w3c/dom/html/HTMLImageElement.java - src/share/classes/org/w3c/dom/html/HTMLInputElement.java - src/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java - src/share/classes/org/w3c/dom/html/HTMLLIElement.java - src/share/classes/org/w3c/dom/html/HTMLLabelElement.java - src/share/classes/org/w3c/dom/html/HTMLLegendElement.java - src/share/classes/org/w3c/dom/html/HTMLLinkElement.java - src/share/classes/org/w3c/dom/html/HTMLMapElement.java - src/share/classes/org/w3c/dom/html/HTMLMenuElement.java - src/share/classes/org/w3c/dom/html/HTMLMetaElement.java - src/share/classes/org/w3c/dom/html/HTMLModElement.java - src/share/classes/org/w3c/dom/html/HTMLOListElement.java - src/share/classes/org/w3c/dom/html/HTMLObjectElement.java - src/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java - src/share/classes/org/w3c/dom/html/HTMLOptionElement.java - src/share/classes/org/w3c/dom/html/HTMLParagraphElement.java - src/share/classes/org/w3c/dom/html/HTMLParamElement.java - src/share/classes/org/w3c/dom/html/HTMLPreElement.java - src/share/classes/org/w3c/dom/html/HTMLQuoteElement.java - src/share/classes/org/w3c/dom/html/HTMLScriptElement.java - src/share/classes/org/w3c/dom/html/HTMLSelectElement.java - src/share/classes/org/w3c/dom/html/HTMLStyleElement.java - src/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java - src/share/classes/org/w3c/dom/html/HTMLTableCellElement.java - src/share/classes/org/w3c/dom/html/HTMLTableColElement.java - src/share/classes/org/w3c/dom/html/HTMLTableElement.java - src/share/classes/org/w3c/dom/html/HTMLTableRowElement.java - src/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java - src/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java - src/share/classes/org/w3c/dom/html/HTMLTitleElement.java - src/share/classes/org/w3c/dom/html/HTMLUListElement.java - src/share/classes/org/w3c/dom/ls/DOMImplementationLS.java - src/share/classes/org/w3c/dom/ls/LSException.java - src/share/classes/org/w3c/dom/ls/LSInput.java - src/share/classes/org/w3c/dom/ls/LSLoadEvent.java - src/share/classes/org/w3c/dom/ls/LSOutput.java - src/share/classes/org/w3c/dom/ls/LSParser.java - src/share/classes/org/w3c/dom/ls/LSParserFilter.java - src/share/classes/org/w3c/dom/ls/LSProgressEvent.java - src/share/classes/org/w3c/dom/ls/LSResourceResolver.java - src/share/classes/org/w3c/dom/ls/LSSerializer.java - src/share/classes/org/w3c/dom/ls/LSSerializerFilter.java - src/share/classes/org/w3c/dom/package.html - src/share/classes/org/w3c/dom/ranges/DocumentRange.java - src/share/classes/org/w3c/dom/ranges/Range.java - src/share/classes/org/w3c/dom/ranges/RangeException.java - src/share/classes/org/w3c/dom/ranges/package.html - src/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java - src/share/classes/org/w3c/dom/stylesheets/LinkStyle.java - src/share/classes/org/w3c/dom/stylesheets/MediaList.java - src/share/classes/org/w3c/dom/stylesheets/StyleSheet.java - src/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java - src/share/classes/org/w3c/dom/traversal/DocumentTraversal.java - src/share/classes/org/w3c/dom/traversal/NodeFilter.java - src/share/classes/org/w3c/dom/traversal/NodeIterator.java - src/share/classes/org/w3c/dom/traversal/TreeWalker.java - src/share/classes/org/w3c/dom/views/AbstractView.java - src/share/classes/org/w3c/dom/views/DocumentView.java - src/share/classes/org/w3c/dom/xpath/COPYRIGHT.html - src/share/classes/org/w3c/dom/xpath/XPathEvaluator.java - src/share/classes/org/w3c/dom/xpath/XPathException.java - src/share/classes/org/w3c/dom/xpath/XPathExpression.java - src/share/classes/org/w3c/dom/xpath/XPathNSResolver.java - src/share/classes/org/w3c/dom/xpath/XPathNamespace.java - src/share/classes/org/w3c/dom/xpath/XPathResult.java - src/share/classes/org/xml/sax/AttributeList.java - src/share/classes/org/xml/sax/Attributes.java - src/share/classes/org/xml/sax/COPYING - src/share/classes/org/xml/sax/COPYING.txt - src/share/classes/org/xml/sax/ContentHandler.java - src/share/classes/org/xml/sax/DTDHandler.java - src/share/classes/org/xml/sax/DocumentHandler.java - src/share/classes/org/xml/sax/EntityResolver.java - src/share/classes/org/xml/sax/ErrorHandler.java - src/share/classes/org/xml/sax/HandlerBase.java - src/share/classes/org/xml/sax/InputSource.java - src/share/classes/org/xml/sax/Locator.java - src/share/classes/org/xml/sax/Parser.java - src/share/classes/org/xml/sax/SAXException.java - src/share/classes/org/xml/sax/SAXNotRecognizedException.java - src/share/classes/org/xml/sax/SAXNotSupportedException.java - src/share/classes/org/xml/sax/SAXParseException.java - src/share/classes/org/xml/sax/XMLFilter.java - src/share/classes/org/xml/sax/XMLReader.java - src/share/classes/org/xml/sax/ext/Attributes2.java - src/share/classes/org/xml/sax/ext/Attributes2Impl.java - src/share/classes/org/xml/sax/ext/DeclHandler.java - src/share/classes/org/xml/sax/ext/DefaultHandler2.java - src/share/classes/org/xml/sax/ext/EntityResolver2.java - src/share/classes/org/xml/sax/ext/LexicalHandler.java - src/share/classes/org/xml/sax/ext/Locator2.java - src/share/classes/org/xml/sax/ext/Locator2Impl.java - src/share/classes/org/xml/sax/ext/package.html - src/share/classes/org/xml/sax/helpers/AttributeListImpl.java - src/share/classes/org/xml/sax/helpers/AttributesImpl.java - src/share/classes/org/xml/sax/helpers/DefaultHandler.java - src/share/classes/org/xml/sax/helpers/LocatorImpl.java - src/share/classes/org/xml/sax/helpers/NamespaceSupport.java - src/share/classes/org/xml/sax/helpers/NewInstance.java - src/share/classes/org/xml/sax/helpers/ParserAdapter.java - src/share/classes/org/xml/sax/helpers/ParserFactory.java - src/share/classes/org/xml/sax/helpers/XMLFilterImpl.java - src/share/classes/org/xml/sax/helpers/XMLReaderAdapter.java - src/share/classes/org/xml/sax/helpers/XMLReaderFactory.java - src/share/classes/org/xml/sax/helpers/package.html - src/share/classes/org/xml/sax/package.html Changeset: 6aadb7d98564 Author: asaha Date: 2012-05-21 14:51 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/6aadb7d98564 Merge Changeset: c865c6951fea Author: asaha Date: 2012-06-07 12:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/c865c6951fea Merge Changeset: 57476f66e13c Author: lana Date: 2012-06-26 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/57476f66e13c Merge Changeset: 300f45e99064 Author: katleman Date: 2012-06-28 09:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/jaxp/rev/300f45e99064 Added tag jdk8-b45 for changeset 57476f66e13c ! .hgtags From vladimir.kozlov at oracle.com Fri Jun 29 16:37:44 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 29 Jun 2012 16:37:44 -0700 Subject: Request for reviews (XS): 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact Message-ID: <4FEE3C48.40003@oracle.com> http://cr.openjdk.java.net/~kvn/7180769/webrev 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact Regression after 7170463 changes. Result of join() with interface class produces non-exact type: tcon: precise klass java/lang/String: 0x0000000111a57dd8:Constant:exact * tval: Interface:klass org/apache/derby/iapi/store/raw/xact/TransactionId: 0x00000001174cc278 * obj_type: org/apache/derby/iapi/store/raw/xact/TransactionId:NotNull * tboth: org/apache/derby/iapi/store/raw/xact/TransactionId:NotNull * Use class exactness as part of the condition for class compare optimization instead of assert. Tested with failed test. Thanks, Vladimir From tom.deneau at amd.com Fri Jun 29 18:22:04 2012 From: tom.deneau at amd.com (Deneau, Tom) Date: Sat, 30 Jun 2012 01:22:04 +0000 Subject: intrinsic that makes runtime choice whether to revert to java Message-ID: Hi all -- I am writing a hotspot intrinsic but I want it to make a runtime choice whether to execute the intrinsic code or to execute the regular java code. I got the suggestion below from Vladimir but I am not experienced enough with the graphkit functionality to see how to do this. Would someone be able to provide the code skeleton for this? I can generate the region to actually do my intrinsic and I believe I can generate the BoolNode which determines which path to take. The other choice would be to modify the actual JDK library routine to do the runtime tests and call a new routine which the intrinsic would hook into. I have done this for testing but I am assuming this is more intrusive since on some architectures the intrinsic will not even be generated. -- Tom Deneau >We don't have such mechanism currently. But it is not difficult to implement. >Look on the code in doCall.cpp and callGenerator files. Instead of calling >find_intrinsic() you need to do something special for your case. Like code for >CallGenerator::for_method_handle_call() where you will generate class check and >on one path you will get intrinsic (by calling find_intrinsic()) and on other >path is regular CallGenerator::for_inline(). From tom.deneau at amd.com Fri Jun 29 18:27:39 2012 From: tom.deneau at amd.com (Deneau, Tom) Date: Sat, 30 Jun 2012 01:27:39 +0000 Subject: x86-64 stub calling convention Message-ID: Hi -- Can someone point me to the x86-64 calling convention for stubs created by stubGenerator? In particular, which xmm registers if any must be preserved and which are volatile. -- Tom Deneau From rednaxelafx at gmail.com Fri Jun 29 18:51:12 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Sat, 30 Jun 2012 09:51:12 +0800 Subject: Request for reviews (XS): 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact In-Reply-To: <4FEE3C48.40003@oracle.com> References: <4FEE3C48.40003@oracle.com> Message-ID: Looks good to me. (Not a reviewer, though). Thanks for fixing it. My bad... - Kris On Sat, Jun 30, 2012 at 7:37 AM, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~**kvn/7180769/webrev > > 7180769: assert(tboth->klass_is_exact()**) failed: klass should be exact > > Regression after 7170463 changes. Result of join() with interface class > produces non-exact type: > > tcon: precise klass java/lang/String: 0x0000000111a57dd8:Constant:**exact > * > tval: Interface:klass org/apache/derby/iapi/store/**raw/xact/TransactionId: > 0x00000001174cc278 * > obj_type: org/apache/derby/iapi/store/**raw/xact/TransactionId:NotNull * > tboth: org/apache/derby/iapi/store/**raw/xact/TransactionId:NotNull * > > Use class exactness as part of the condition for class compare > optimization instead of assert. > > Tested with failed test. > > Thanks, > Vladimir > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120630/a1c2a3a8/attachment.html From rednaxelafx at gmail.com Fri Jun 29 19:25:01 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Sat, 30 Jun 2012 10:25:01 +0800 Subject: x86-64 stub calling convention In-Reply-To: References: Message-ID: Hi Tom, This is something I'd like to get an answer to, too. I did see in a comment in one of the older changes [1][2] that: + // Spill because stubs can use any register they like and it's + // easier to restore just those that we care about. Which doesn't really sound reassuring... - Kris [1]: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/28263a73ebfb [2]: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-May/005623.html On Sat, Jun 30, 2012 at 9:27 AM, Deneau, Tom wrote: > Hi -- > > Can someone point me to the x86-64 calling convention for stubs created > by stubGenerator? In particular, which xmm registers if any must be > preserved > and which are volatile. > > -- Tom Deneau > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120630/740da512/attachment.html From vladimir.kozlov at oracle.com Fri Jun 29 20:04:55 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 29 Jun 2012 20:04:55 -0700 Subject: x86-64 stub calling convention In-Reply-To: References: Message-ID: <4FEE6CD7.6080008@oracle.com> XMM registers are Save On Call (saved by caller) so you can use them in stub without saving. Look on arraycopy stabs where we use XMM registers. Vladimir On 6/29/12 6:27 PM, Deneau, Tom wrote: > Hi -- > > Can someone point me to the x86-64 calling convention for stubs created > by stubGenerator? In particular, which xmm registers if any must be preserved > and which are volatile. > > -- Tom Deneau > From vladimir.kozlov at oracle.com Fri Jun 29 20:46:00 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 29 Jun 2012 20:46:00 -0700 Subject: x86-64 stub calling convention In-Reply-To: References: Message-ID: <4FEE7678.1090400@oracle.com> I was not right that you can use all XMM registers. On windows64 only xmm0-xmm5 are available free, the rest are SOE (save on entry). For stabs calls we use C calling convention. It is described in .ad file where XMM registers are defined (second parameter): // Linux ABI: No register preserved across function calls // XMM0-XMM7 might hold parameters // Windows ABI: XMM6-XMM15 preserved across function calls // XMM0-XMM3 might hold parameters reg_def XMM5 (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()); reg_def XMM5_H (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()->next()); #ifdef _WIN64 reg_def XMM6 (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()); reg_def XMM6_H (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()->next()); ... #else reg_def XMM6 (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()); reg_def XMM6_H (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()->next()); Vladimir On 6/29/12 7:25 PM, Krystal Mok wrote: > Hi Tom, > > This is something I'd like to get an answer to, too. I did see in a comment in one of the older changes [1][2] that: > > + // Spill because stubs can use any register they like and it's > + // easier to restore just those that we care about. > > Which doesn't really sound reassuring... > > - Kris > > [1]: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/28263a73ebfb > [2]: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-May/005623.html > > On Sat, Jun 30, 2012 at 9:27 AM, Deneau, Tom > wrote: > > Hi -- > > Can someone point me to the x86-64 calling convention for stubs created > by stubGenerator? In particular, which xmm registers if any must be preserved > and which are volatile. > > -- Tom Deneau > > From alejandro.murillo at oracle.com Sat Jun 30 00:54:22 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 30 Jun 2012 07:54:22 +0000 Subject: hg: hsx/hotspot-comp/hotspot: 18 new changesets Message-ID: <20120630075500.3FC0747C1A@hg.openjdk.java.net> Changeset: 0976e71907b9 Author: katleman Date: 2012-06-21 17:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/0976e71907b9 Added tag jdk8-b44 for changeset 831e5c76a20a ! .hgtags Changeset: 1e76463170b3 Author: kamg Date: 2012-03-29 18:55 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1e76463170b3 7110720: Issue with vm config file loadingIssue with vm config file loading Summary: disabling default config files if -XX:-ReadDefaultConfigFiles Reviewed-by: phh, jrose, dcubed, dholmes ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/compiler/compilerOracle.hpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/runtime/arguments.cpp + test/runtime/7110720/Test7110720.sh Changeset: e778c29768e6 Author: never Date: 2012-04-04 20:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e778c29768e6 7152811: Issues in client compiler Reviewed-by: kvn, jrose ! src/share/vm/ci/ciField.cpp ! src/share/vm/ci/ciField.hpp Changeset: 958bb4b7be49 Author: asaha Date: 2012-04-10 10:42 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/958bb4b7be49 Merge ! src/share/vm/runtime/arguments.cpp Changeset: aa07e41a9f80 Author: never Date: 2012-04-12 12:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/aa07e41a9f80 7160677: missing else in fix for 7152811 Reviewed-by: kvn, kevinw ! src/share/vm/ci/ciField.cpp Changeset: 5142b5110214 Author: asaha Date: 2012-05-08 07:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5142b5110214 Merge ! src/share/vm/opto/runtime.cpp Changeset: d558e01a72c0 Author: kamg Date: 2012-05-03 15:37 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d558e01a72c0 7160757: Problem with hotspot/runtime_classfile Summary: Allow only current and super invokespecials of Reviewed-by: never, coleenp, dcubed ! src/share/vm/classfile/verifier.cpp + test/runtime/7160757/Test7160757.java Changeset: 6d2c830e025d Author: asaha Date: 2012-05-08 11:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/6d2c830e025d Merge Changeset: 84e198dc2474 Author: asaha Date: 2012-05-21 14:56 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/84e198dc2474 Merge - src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp - src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp - src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp - src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp ! src/share/vm/runtime/arguments.cpp Changeset: f9d57285de70 Author: asaha Date: 2012-06-07 12:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f9d57285de70 Merge ! src/share/vm/runtime/arguments.cpp Changeset: 9d5f20961bc5 Author: lana Date: 2012-06-26 10:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/9d5f20961bc5 Merge ! src/share/vm/classfile/verifier.cpp Changeset: a8b9798c1d45 Author: katleman Date: 2012-06-28 09:32 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a8b9798c1d45 Added tag jdk8-b45 for changeset 9d5f20961bc5 ! .hgtags Changeset: 7994a5a35fcf Author: johnc Date: 2012-06-25 16:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7994a5a35fcf 6921087: G1: remove per-GC-thread expansion tables from the fine-grain remembered sets Summary: Remove the per-thread expansion tables (PosParPRT) and associated expansion and compaction from the fine grain RSet entries. This code has been unused for a while. Reviewed-by: johnc, brutisso Contributed-by: Thomas Schatzl ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Changeset: 22de825d6faf Author: jcoomes Date: 2012-06-29 11:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/22de825d6faf Merge Changeset: 61a94c2da7c4 Author: coleenp Date: 2012-06-29 14:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/61a94c2da7c4 7179759: ENV: Nightly fails during jdk copiyng for solaris platforms after FDS unzipping Summary: libjvm_g_db.so and libjvm_g_dtrace.so links in .diz file still had 64 directory Reviewed-by: kamg, dholmes, sspitsyn ! make/solaris/makefiles/dtrace.make Changeset: 40e5a3f2907e Author: amurillo Date: 2012-06-29 17:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/40e5a3f2907e Merge Changeset: cf37a594c38d Author: amurillo Date: 2012-06-29 17:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/cf37a594c38d Added tag hs24-b15 for changeset 40e5a3f2907e ! .hgtags Changeset: bcffa4c5eef6 Author: amurillo Date: 2012-06-29 17:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/bcffa4c5eef6 7180882: new hotspot build - hs24-b16 Reviewed-by: jcoomes ! make/hotspot_version From tom.deneau at amd.com Sat Jun 30 19:08:35 2012 From: tom.deneau at amd.com (Deneau, Tom) Date: Sun, 1 Jul 2012 02:08:35 +0000 Subject: x86-64 stub calling convention In-Reply-To: <4FEE7678.1090400@oracle.com> References: <4FEE7678.1090400@oracle.com> Message-ID: OK, thanks, Vladimir. Is there a good reason for using the OS's C calling convention for stubs? (as opposed to, say, using whatever makes the most sense for Java). -- Tom -----Original Message----- From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] Sent: Friday, June 29, 2012 10:46 PM To: Krystal Mok Cc: Deneau, Tom; hotspot-compiler-dev at openjdk.java.net Subject: Re: x86-64 stub calling convention I was not right that you can use all XMM registers. On windows64 only xmm0-xmm5 are available free, the rest are SOE (save on entry). For stabs calls we use C calling convention. It is described in .ad file where XMM registers are defined (second parameter): // Linux ABI: No register preserved across function calls // XMM0-XMM7 might hold parameters // Windows ABI: XMM6-XMM15 preserved across function calls // XMM0-XMM3 might hold parameters reg_def XMM5 (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()); reg_def XMM5_H (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()->next()); #ifdef _WIN64 reg_def XMM6 (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()); reg_def XMM6_H (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()->next()); ... #else reg_def XMM6 (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()); reg_def XMM6_H (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()->next()); Vladimir On 6/29/12 7:25 PM, Krystal Mok wrote: > Hi Tom, > > This is something I'd like to get an answer to, too. I did see in a comment in one of the older changes [1][2] that: > > + // Spill because stubs can use any register they like and it's > + // easier to restore just those that we care about. > > Which doesn't really sound reassuring... > > - Kris > > [1]: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/28263a73ebfb > [2]: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-May/005623.html > > On Sat, Jun 30, 2012 at 9:27 AM, Deneau, Tom > wrote: > > Hi -- > > Can someone point me to the x86-64 calling convention for stubs created > by stubGenerator? In particular, which xmm registers if any must be preserved > and which are volatile. > > -- Tom Deneau > > From vladimir.kozlov at oracle.com Sat Jun 30 19:35:11 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Sat, 30 Jun 2012 19:35:11 -0700 Subject: x86-64 stub calling convention In-Reply-To: References: <4FEE7678.1090400@oracle.com> Message-ID: <4FEFB75F.1020102@oracle.com> Currently we use CallRuntime nodes for calling stubs and we use it for calls into runtime (C compiled code) that is why it uses C calling convention. We have RFE to create special calling convention for stubs to pass arguments in registers even in 32-bit VM but we never had time to do it. Vladimir On 6/30/12 7:08 PM, Deneau, Tom wrote: > OK, thanks, Vladimir. > Is there a good reason for using the OS's C calling convention for stubs? > (as opposed to, say, using whatever makes the most sense for Java). > > -- Tom > > > -----Original Message----- > From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] > Sent: Friday, June 29, 2012 10:46 PM > To: Krystal Mok > Cc: Deneau, Tom; hotspot-compiler-dev at openjdk.java.net > Subject: Re: x86-64 stub calling convention > > I was not right that you can use all XMM registers. On windows64 only xmm0-xmm5 are available free, the rest are SOE > (save on entry). For stabs calls we use C calling convention. It is described in .ad file where XMM registers are > defined (second parameter): > > // Linux ABI: No register preserved across function calls > // XMM0-XMM7 might hold parameters > // Windows ABI: XMM6-XMM15 preserved across function calls > // XMM0-XMM3 might hold parameters > > reg_def XMM5 (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()); > reg_def XMM5_H (SOC, SOC, Op_RegF, 5, xmm5->as_VMReg()->next()); > > #ifdef _WIN64 > > reg_def XMM6 (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()); > reg_def XMM6_H (SOC, SOE, Op_RegF, 6, xmm6->as_VMReg()->next()); > ... > > #else > > reg_def XMM6 (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()); > reg_def XMM6_H (SOC, SOC, Op_RegF, 6, xmm6->as_VMReg()->next()); > > Vladimir > > On 6/29/12 7:25 PM, Krystal Mok wrote: >> Hi Tom, >> >> This is something I'd like to get an answer to, too. I did see in a comment in one of the older changes [1][2] that: >> >> + // Spill because stubs can use any register they like and it's >> + // easier to restore just those that we care about. >> >> Which doesn't really sound reassuring... >> >> - Kris >> >> [1]: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/28263a73ebfb >> [2]: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-May/005623.html >> >> On Sat, Jun 30, 2012 at 9:27 AM, Deneau, Tom> wrote: >> >> Hi -- >> >> Can someone point me to the x86-64 calling convention for stubs created >> by stubGenerator? In particular, which xmm registers if any must be preserved >> and which are volatile. >> >> -- Tom Deneau >> >> > >