Code Review for 6893268

Prepared by:twisti on Thu Dec 3 11:54:53 CET 2009
Workspace:/export/home/twisti/mlvm/6893268
Compare against: /export/home/twisti/hotspot-comp/hotspot
Compare against version:-2
Summary of changes: 1727 lines changed: 1397 ins; 77 del; 253 mod; 36904 unchg
Patch of changes: 6893268.patch
Printable review: 6893268.pdf
Author comments:
C2 needs some additional optimizations to be able to handle
MethodHandle invokes and invokedynamic instructions at the best
performance.

This patch must be applied on top of:
6858164: invokedynamic code needs some cleanup (post-6655638)
6894206: JVM needs a way to traverse method handle structures
6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164)
6829187: compiler optimizations required for JSR 292

Bug id: 6893268 additional dynamic language related optimizations in C2
Legend: Modified file
Deleted file
New file

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
1 line changed: 1 ins; 0 del; 0 mod; 48 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
4 lines changed: 4 ins; 0 del; 0 mod; 115 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
41 lines changed: 9 ins; 9 del; 23 mod; 1082 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
19 lines changed: 6 ins; 0 del; 13 mod; 396 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
7 lines changed: 4 ins; 0 del; 3 mod; 61 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
17 lines changed: 10 ins; 0 del; 7 mod; 326 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
9 lines changed: 8 ins; 0 del; 1 mod; 167 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
3 lines changed: 2 ins; 1 del; 0 mod; 201 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
13 lines changed: 12 ins; 0 del; 1 mod; 234 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
4 lines changed: 3 ins; 0 del; 1 mod; 118 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
8 lines changed: 8 ins; 0 del; 0 mod; 254 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
10 lines changed: 10 ins; 0 del; 0 mod; 283 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
6 lines changed: 5 ins; 0 del; 1 mod; 666 unchg

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

rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
38 lines changed: 27 ins; 1 del; 10 mod; 372 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
2 lines changed: 1 ins; 0 del; 1 mod; 392 unchg

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

rev 1079 : 6829192: JSR 292 needs to support 64-bit x86
Summary: changes for method handles and invokedynamic
Reviewed-by: ?, ?
rev 1083 : [mq]: indy.compiler.inline.patch
3 lines changed: 0 ins; 2 del; 1 mod; 4289 unchg

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

rev 1080 : [mq]: meth.walker.patch
rev 1083 : [mq]: indy.compiler.inline.patch
14 lines changed: 14 ins; 0 del; 0 mod; 531 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/classfile/vmSymbols.hpp

rev 1080 : [mq]: meth.walker.patch
rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1083 : [mq]: indy.compiler.inline.patch
3 lines changed: 3 ins; 0 del; 0 mod; 1070 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.cpp

rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1083 : [mq]: indy.compiler.inline.patch
2 lines changed: 0 ins; 0 del; 2 mod; 2537 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
5 lines changed: 5 ins; 0 del; 0 mod; 1138 unchg

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

rev 1080 : [mq]: meth.walker.patch
rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
21 lines changed: 21 ins; 0 del; 0 mod; 4704 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/interpreter/bytecode.hpp

rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1083 : [mq]: indy.compiler.inline.patch
1 line changed: 1 ins; 0 del; 0 mod; 388 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/interpreter/bytecodeTracer.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
2 lines changed: 2 ins; 0 del; 0 mod; 505 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/interpreter/interpreterRuntime.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
1 line changed: 0 ins; 0 del; 1 mod; 1256 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/interpreter/rewriter.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
13 lines changed: 8 ins; 1 del; 4 mod; 300 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/interpreter/rewriter.hpp

rev 1083 : [mq]: indy.compiler.inline.patch
2 lines changed: 1 ins; 0 del; 1 mod; 76 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
5 lines changed: 5 ins; 0 del; 0 mod; 298 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
17 lines changed: 16 ins; 0 del; 1 mod; 576 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
12 lines changed: 0 ins; 4 del; 8 mod; 2514 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
1 line changed: 1 ins; 0 del; 0 mod; 750 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
4 lines changed: 4 ins; 0 del; 0 mod; 518 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
161 lines changed: 149 ins; 0 del; 12 mod; 858 unchg

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

rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
6 lines changed: 6 ins; 0 del; 0 mod; 277 unchg

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

rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch
57 lines changed: 51 ins; 6 del; 0 mod; 927 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
20 lines changed: 18 ins; 0 del; 2 mod; 464 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandleWalk.cpp

rev 1080 : [mq]: meth.walker.patch
rev 1083 : [mq]: indy.compiler.inline.patch
714 lines changed: 608 ins; 17 del; 89 mod; 698 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandleWalk.hpp

rev 1080 : [mq]: meth.walker.patch
rev 1083 : [mq]: indy.compiler.inline.patch
231 lines changed: 167 ins; 29 del; 35 mod; 204 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandles.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
22 lines changed: 11 ins; 6 del; 5 mod; 2458 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
25 lines changed: 0 ins; 1 del; 24 mod; 1369 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
3 lines changed: 0 ins; 0 del; 3 mod; 470 unchg

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

rev 1081 : imported patch indy-cleanup-6893081.patch
rev 1083 : [mq]: indy.compiler.inline.patch
2 lines changed: 0 ins; 0 del; 2 mod; 2335 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
1 line changed: 0 ins; 0 del; 1 mod; 593 unchg

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

rev 1083 : [mq]: indy.compiler.inline.patch
4 lines changed: 3 ins; 0 del; 1 mod; 86 unchg

------ ------ ------ ------ ------ --- New Patch Raw src/share/vm/ci/ciCallSite.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
46 lines changed: 46 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ --- New Patch Raw src/share/vm/ci/ciCallSite.hpp

rev 1083 : [mq]: indy.compiler.inline.patch
39 lines changed: 39 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ --- New Patch Raw src/share/vm/ci/ciMethodHandle.cpp

rev 1083 : [mq]: indy.compiler.inline.patch
52 lines changed: 52 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ --- New Patch Raw src/share/vm/ci/ciMethodHandle.hpp

rev 1083 : [mq]: indy.compiler.inline.patch
56 lines changed: 56 ins; 0 del; 0 mod; 0 unchg

This code review page was prepared using /export/home/twisti/bin/webrev (vers 23.18-hg-never).