Code Review for hotspot-dvm

Prepared by:jrose on Sat Jul 12 17:50:17 PDT 2008
Workspace:/Users/jrose/Projects/hotspot/hotspot-dvm
Compare against: http://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Compare against version:145
Summary of changes: 3949 lines changed: 2724 ins; 593 del; 632 mod; 72917 unchg
Patch of changes: hotspot-dvm.patch
Author comments:
For eventual putback to http://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
6711911, part “layout”: refactor layout computations

Problem 1: The layout handler word needs more degrees of freedom to represent mixed arrays.

Solution 1: Refactor the layout handler to support arrays with arbitrary header and element sizes. Move it into its own class and header file.

Problem 2: The loops for oop iteration are defined as macro nests. This makes it hard to debug them and impossible to reuse (across file boundaries).

Solution 2: Express oop iteration loops as external iterator templates. Portability and performance is ensured by using a style similar to STL.

(Note: This change is part of a larger set of changes to the heap manager.)

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/Array.java

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 116 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java

rev 146 : [mq]: mixa.layout.patch
9 lines changed: 0 ins; 8 del; 1 mod; 150 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java

rev 146 : [mq]: mixa.layout.patch
17 lines changed: 5 ins; 7 del; 5 mod; 872 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java

rev 146 : [mq]: mixa.layout.patch
67 lines changed: 54 ins; 0 del; 13 mod; 196 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java

rev 146 : [mq]: mixa.layout.patch
1 line changed: 1 ins; 0 del; 0 mod; 410 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/c1_Runtime1_sparc.cpp

rev 146 : [mq]: mixa.layout.patch
164 lines changed: 119 ins; 27 del; 18 mod; 853 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/stubGenerator_sparc.cpp

rev 146 : [mq]: mixa.layout.patch
33 lines changed: 7 ins; 15 del; 11 mod; 3023 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/templateTable_sparc.cpp

rev 146 : [mq]: mixa.layout.patch
4 lines changed: 2 ins; 0 del; 2 mod; 3574 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/c1_Runtime1_x86.cpp

rev 146 : [mq]: mixa.layout.patch
170 lines changed: 121 ins; 29 del; 20 mod; 1350 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/stubGenerator_x86_32.cpp

rev 146 : [mq]: mixa.layout.patch
42 lines changed: 14 ins; 12 del; 16 mod; 2157 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/stubGenerator_x86_64.cpp

rev 146 : [mq]: mixa.layout.patch
32 lines changed: 10 ins; 11 del; 11 mod; 2964 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/templateTable_x86_32.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 1 ins; 0 del; 1 mod; 3498 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/templateTable_x86_64.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 1 ins; 0 del; 1 mod; 3548 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_LIRGenerator.cpp

rev 146 : [mq]: mixa.layout.patch
4 lines changed: 1 ins; 0 del; 3 mod; 2531 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciArray.hpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 1 ins; 0 del; 1 mod; 51 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciInstance.cpp

rev 146 : [mq]: mixa.layout.patch
6 lines changed: 6 ins; 0 del; 0 mod; 134 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciInstance.hpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 2 ins; 0 del; 0 mod; 61 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciInstanceKlass.cpp

rev 146 : [mq]: mixa.layout.patch
7 lines changed: 1 ins; 0 del; 6 mod; 544 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciInstanceKlass.hpp

rev 146 : [mq]: mixa.layout.patch
6 lines changed: 0 ins; 1 del; 5 mod; 195 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciKlass.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 0 ins; 0 del; 2 mod; 233 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciKlass.hpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 0 ins; 0 del; 2 mod; 117 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciObject.hpp

rev 146 : [mq]: mixa.layout.patch
5 lines changed: 4 ins; 0 del; 1 mod; 259 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciTypeArray.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 1 ins; 0 del; 0 mod; 52 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/ci/ciTypeArrayKlass.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 54 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/classfile/classFileParser.cpp

rev 146 : [mq]: mixa.layout.patch
28 lines changed: 9 ins; 2 del; 17 mod; 4032 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 2 ins; 0 del; 0 mod; 240 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/includeDB_gc_parNew

rev 146 : [mq]: mixa.layout.patch
1 line changed: 1 ins; 0 del; 0 mod; 87 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/parNew/parNewGeneration.cpp

rev 146 : [mq]: mixa.layout.patch
17 lines changed: 14 ins; 1 del; 2 mod; 1231 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/includeDB_core

rev 146 : [mq]: mixa.layout.patch
15 lines changed: 14 ins; 0 del; 1 mod; 4628 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/iterator.hpp

rev 146 : [mq]: mixa.layout.patch
22 lines changed: 20 ins; 1 del; 1 mod; 200 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/oopFactory.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 0 ins; 0 del; 2 mod; 143 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/oopFactory.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 110 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/space.cpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 948 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/specialized_oop_closures.cpp

rev 146 : [mq]: mixa.layout.patch
15 lines changed: 5 ins; 0 del; 10 mod; 104 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/specialized_oop_closures.hpp

rev 146 : [mq]: mixa.layout.patch
3 lines changed: 3 ins; 0 del; 0 mod; 235 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/arrayKlass.cpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 198 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/arrayKlass.hpp

rev 146 : [mq]: mixa.layout.patch
6 lines changed: 1 ins; 0 del; 5 mod; 129 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/arrayOop.hpp

rev 146 : [mq]: mixa.layout.patch
6 lines changed: 6 ins; 0 del; 0 mod; 115 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceKlass.cpp

rev 146 : [mq]: mixa.layout.patch
449 lines changed: 162 ins; 182 del; 105 mod; 2329 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceKlass.hpp

rev 146 : [mq]: mixa.layout.patch
369 lines changed: 336 ins; 5 del; 28 mod; 911 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceKlassKlass.cpp

rev 146 : [mq]: mixa.layout.patch
34 lines changed: 16 ins; 3 del; 15 mod; 793 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceKlassKlass.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 85 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceRefKlass.cpp

rev 146 : [mq]: mixa.layout.patch
7 lines changed: 0 ins; 0 del; 7 mod; 462 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceRefKlass.hpp

rev 146 : [mq]: mixa.layout.patch
7 lines changed: 0 ins; 7 del; 0 mod; 80 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/klass.cpp

rev 146 : [mq]: mixa.layout.patch
21 lines changed: 0 ins; 20 del; 1 mod; 540 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/klass.hpp

rev 146 : [mq]: mixa.layout.patch
198 lines changed: 77 ins; 105 del; 16 mod; 647 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/klassKlass.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 2 ins; 0 del; 0 mod; 252 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/objArrayKlass.cpp

rev 146 : [mq]: mixa.layout.patch
252 lines changed: 83 ins; 104 del; 65 mod; 356 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/objArrayKlass.hpp

rev 146 : [mq]: mixa.layout.patch
51 lines changed: 38 ins; 9 del; 4 mod; 123 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/objArrayKlassKlass.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 0 ins; 0 del; 2 mod; 306 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/objArrayOop.cpp

rev 146 : [mq]: mixa.layout.patch
9 lines changed: 0 ins; 8 del; 1 mod; 27 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/objArrayOop.hpp

rev 146 : [mq]: mixa.layout.patch
23 lines changed: 16 ins; 0 del; 7 mod; 85 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/oop.hpp

rev 146 : [mq]: mixa.layout.patch
85 lines changed: 27 ins; 2 del; 56 mod; 328 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/oop.inline.hpp

rev 146 : [mq]: mixa.layout.patch
180 lines changed: 70 ins; 24 del; 86 mod; 589 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/oopsHierarchy.hpp

rev 146 : [mq]: mixa.layout.patch
21 lines changed: 21 ins; 0 del; 0 mod; 184 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/typeArrayKlass.cpp

rev 146 : [mq]: mixa.layout.patch
26 lines changed: 13 ins; 0 del; 13 mod; 347 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/typeArrayKlass.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 1 ins; 0 del; 0 mod; 103 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/typeArrayOop.hpp

rev 146 : [mq]: mixa.layout.patch
14 lines changed: 1 ins; 6 del; 7 mod; 130 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/compile.cpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 2403 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/graphKit.cpp

rev 146 : [mq]: mixa.layout.patch
47 lines changed: 17 ins; 1 del; 29 mod; 3148 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/graphKit.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 719 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/library_call.cpp

rev 146 : [mq]: mixa.layout.patch
33 lines changed: 21 ins; 2 del; 10 mod; 4929 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/macro.cpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 1728 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/memnode.cpp

rev 146 : [mq]: mixa.layout.patch
4 lines changed: 1 ins; 0 del; 3 mod; 3802 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/runtime.cpp

rev 146 : [mq]: mixa.layout.patch
2 lines changed: 0 ins; 1 del; 1 mod; 1175 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/globals.hpp

rev 146 : [mq]: mixa.layout.patch
3 lines changed: 3 ins; 0 del; 0 mod; 3255 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/handles.hpp

rev 146 : [mq]: mixa.layout.patch
1 line changed: 0 ins; 0 del; 1 mod; 347 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/vmStructs.cpp

rev 146 : [mq]: mixa.layout.patch
27 lines changed: 18 ins; 0 del; 9 mod; 2273 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/utilities/globalDefinitions.hpp

rev 146 : [mq]: mixa.layout.patch
12 lines changed: 12 ins; 0 del; 0 mod; 1119 unchg

------ ------ ------ ------ --- New Patch Raw src/share/vm/oops/layoutHelper.cpp

rev 146 : [mq]: mixa.layout.patch
209 lines changed: 209 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ --- New Patch Raw src/share/vm/oops/layoutHelper.hpp

rev 146 : [mq]: mixa.layout.patch
445 lines changed: 445 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ --- New Patch Raw src/share/vm/oops/mixedArrayKlass.cpp

rev 146 : [mq]: mixa.layout.patch
348 lines changed: 348 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ --- New Patch Raw src/share/vm/oops/mixedArrayKlass.hpp

rev 146 : [mq]: mixa.layout.patch
332 lines changed: 332 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ --- New Patch Raw src/share/vm/oops/objArrayOop.inline.hpp

rev 146 : [mq]: mixa.layout.patch
29 lines changed: 29 ins; 0 del; 0 mod; 0 unchg

This code review page was prepared using /Users/jrose/bin/webrev (vers 23.8-hg).