Prepared by: | goetz on Mon Nov 25 14:18:44 CET 2013 |
---|---|
Workspace: | /net/usr.work/d045726/oJ/trch-stage-hotspot |
Compare against: | http://hg.openjdk.java.net/ppc-aix-port/stage/hotspot |
Compare against version: | 5725 |
Summary of changes: | 236 lines changed: 193 ins; 10 del; 33 mod; 19692 unchg |
Changeset: | trch-stage-hotspot.changeset |
Author comments: | PPC has the tdi instruction that does a compare and raises SIGTRAP if the compare is successful. With this instruction conditional branches leading to uncommon traps can be implemented very efficiently. This is especially needed on AIX, where there are almost no possibilities for ImplicitNullChecks as the zero page is not protected. On linux, this accounts for about 2% jvm2008 performance. Possibilities for trap based range checks and trap based null checks are recognized during matching. To support this, we added a method branches_to_uncommon_trap() to be used in the predicate during matching. The computation of the final block layout must know about this, as it must place the fallthrough properly and adapt the condition in the tdi instruction. We added a method is_TrapBasedCheckNode so these nodes can be recogized in a platform independent way. |
Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/cpu/sparc/vm/globals_sparc.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks5 lines changed: 5 ins; 0 del; 0 mod; 116 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/cpu/x86/vm/globals_x86.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks6 lines changed: 5 ins; 0 del; 1 mod; 137 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/cpu/zero/vm/globals_zero.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks8 lines changed: 7 ins; 0 del; 1 mod; 64 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/adlc/main.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks1 line changed: 1 ins; 0 del; 0 mod; 496 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/adlc/output_h.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks10 lines changed: 4 ins; 0 del; 6 mod; 2264 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/block.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks99 lines changed: 74 ins; 1 del; 24 mod; 1665 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/block.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks1 line changed: 1 ins; 0 del; 0 mod; 881 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/compile.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks12 lines changed: 12 ins; 0 del; 0 mod; 3964 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/compile.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks4 lines changed: 4 ins; 0 del; 0 mod; 1186 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/gcm.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks10 lines changed: 0 ins; 9 del; 1 mod; 2049 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/machnode.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks3 lines changed: 3 ins; 0 del; 0 mod; 948 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/matcher.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks63 lines changed: 63 ins; 0 del; 0 mod; 2450 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/matcher.hpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks2 lines changed: 2 ins; 0 del; 0 mod; 498 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
-----
Raw
src/share/vm/opto/output.cpp
rev 5726 : 8029015: PPC64 (part 216): opto: trap based null and range checks12 lines changed: 12 ins; 0 del; 0 mod; 2974 unchg
This code review page was prepared using /sapmnt/home1/d045726/bin/webrev.ksh (vers 24.0-hg+jbs).