Tue, 05 Jan 2010 15:21:25 +0100
6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
1 //
2 // Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 //
5 // This code is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License version 2 only, as
7 // published by the Free Software Foundation.
8 //
9 // This code is distributed in the hope that it will be useful, but WITHOUT
10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 // version 2 for more details (a copy is included in the LICENSE file that
13 // accompanied this code).
14 //
15 // You should have received a copy of the GNU General Public License version
16 // 2 along with this work; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 // CA 95054 USA or visit www.sun.com if you need additional information or
21 // have any questions.
22 //
23 //
25 attachListener.cpp arguments.hpp
26 attachListener.cpp attachListener.hpp
27 attachListener.cpp globals.hpp
28 attachListener.cpp heapDumper.hpp
29 attachListener.cpp java.hpp
30 attachListener.cpp javaCalls.hpp
31 attachListener.cpp javaClasses.hpp
32 attachListener.cpp jvmtiExport.hpp
33 attachListener.cpp os.hpp
34 attachListener.cpp resourceArea.hpp
35 attachListener.cpp systemDictionary.hpp
36 attachListener.cpp vmGCOperations.hpp
38 attachListener_<os_family>.cpp attachListener.hpp
39 attachListener_<os_family>.cpp dtraceAttacher.hpp
40 attachListener_<os_family>.cpp interfaceSupport.hpp
41 attachListener_<os_family>.cpp os.hpp
43 dump.cpp classify.hpp
44 dump.cpp copy.hpp
45 dump.cpp filemap.hpp
46 dump.cpp javaCalls.hpp
47 dump.cpp javaClasses.hpp
48 dump.cpp loaderConstraints.hpp
49 dump.cpp methodDataOop.hpp
50 dump.cpp oop.inline.hpp
51 dump.cpp oopFactory.hpp
52 dump.cpp resourceArea.hpp
53 dump.cpp signature.hpp
54 dump.cpp spaceDecorator.hpp
55 dump.cpp symbolTable.hpp
56 dump.cpp systemDictionary.hpp
57 dump.cpp vmThread.hpp
58 dump.cpp vm_operations.hpp
60 dump_<arch_model>.cpp assembler_<arch>.inline.hpp
61 dump_<arch_model>.cpp compactingPermGenGen.hpp
62 dump_<arch_model>.cpp generation.inline.hpp
63 dump_<arch_model>.cpp space.inline.hpp
65 forte.cpp collectedHeap.inline.hpp
66 forte.cpp debugInfoRec.hpp
67 forte.cpp forte.hpp
68 forte.cpp oop.inline.hpp
69 forte.cpp oop.inline2.hpp
70 forte.cpp pcDesc.hpp
71 forte.cpp space.hpp
72 forte.cpp thread.hpp
73 forte.cpp universe.inline.hpp
74 forte.cpp vframe.hpp
75 forte.cpp vframeArray.hpp
77 fprofiler.cpp allocation.inline.hpp
78 fprofiler.cpp classLoader.hpp
79 fprofiler.cpp collectedHeap.inline.hpp
80 fprofiler.cpp deoptimization.hpp
81 fprofiler.cpp fprofiler.hpp
82 fprofiler.cpp interpreter.hpp
83 fprofiler.cpp macros.hpp
84 fprofiler.cpp mutexLocker.hpp
85 fprofiler.cpp oop.inline.hpp
86 fprofiler.cpp oop.inline2.hpp
87 fprofiler.cpp stubCodeGenerator.hpp
88 fprofiler.cpp stubRoutines.hpp
89 fprofiler.cpp symbolOop.hpp
90 fprofiler.cpp task.hpp
91 fprofiler.cpp universe.inline.hpp
92 fprofiler.cpp vframe.hpp
93 fprofiler.cpp vtableStubs.hpp
95 heapDumper.cpp genCollectedHeap.hpp
96 heapDumper.cpp heapDumper.hpp
97 heapDumper.cpp javaCalls.hpp
98 heapDumper.cpp jniHandles.hpp
99 heapDumper.cpp objArrayKlass.hpp
100 heapDumper.cpp ostream.hpp
101 heapDumper.cpp reflectionUtils.hpp
102 heapDumper.cpp symbolTable.hpp
103 heapDumper.cpp systemDictionary.hpp
104 heapDumper.cpp threadService.hpp
105 heapDumper.cpp universe.hpp
106 heapDumper.cpp vframe.hpp
107 heapDumper.cpp vmGCOperations.hpp
108 heapDumper.cpp vmSymbols.hpp
109 heapDumper.cpp vmThread.hpp
110 heapDumper.cpp vm_operations.hpp
112 heapInspection.cpp collectedHeap.hpp
113 heapInspection.cpp genCollectedHeap.hpp
114 heapInspection.cpp globalDefinitions.hpp
115 heapInspection.cpp heapInspection.hpp
116 heapInspection.cpp klassOop.hpp
117 heapInspection.cpp os.hpp
118 heapInspection.cpp resourceArea.hpp
120 javaCalls.cpp jniCheck.hpp
122 jniCheck.cpp fieldDescriptor.hpp
123 jniCheck.cpp handles.hpp
124 jniCheck.cpp instanceKlass.hpp
125 jniCheck.cpp interfaceSupport.hpp
126 jniCheck.cpp jfieldIDWorkaround.hpp
127 jniCheck.cpp jni.h
128 jniCheck.cpp jniCheck.hpp
129 jniCheck.cpp jniTypes_<arch>.hpp
130 jniCheck.cpp jvm_misc.hpp
131 jniCheck.cpp oop.inline.hpp
132 jniCheck.cpp symbolOop.hpp
133 jniCheck.cpp systemDictionary.hpp
134 jniCheck.cpp thread.hpp
135 jniCheck.cpp vmSymbols.hpp
137 jvmtiCodeBlobEvents.cpp codeBlob.hpp
138 jvmtiCodeBlobEvents.cpp codeCache.hpp
139 jvmtiCodeBlobEvents.cpp handles.hpp
140 jvmtiCodeBlobEvents.cpp handles.inline.hpp
141 jvmtiCodeBlobEvents.cpp jvmtiCodeBlobEvents.hpp
142 jvmtiCodeBlobEvents.cpp jvmtiExport.hpp
143 jvmtiCodeBlobEvents.cpp oop.inline.hpp
144 jvmtiCodeBlobEvents.cpp resourceArea.hpp
145 jvmtiCodeBlobEvents.cpp scopeDesc.hpp
146 jvmtiCodeBlobEvents.cpp vmThread.hpp
148 jvmtiCodeBlobEvents.hpp jvmti.h
150 jvmtiExtensions.cpp jvmtiExport.hpp
151 jvmtiExtensions.cpp jvmtiExtensions.hpp
153 jvmtiExtensions.hpp allocation.hpp
154 jvmtiExtensions.hpp jvmti.h
155 jvmtiExtensions.hpp jvmtiEnv.hpp
157 jvmtiImpl.cpp exceptions.hpp
158 jvmtiImpl.cpp handles.hpp
159 jvmtiImpl.cpp handles.inline.hpp
160 jvmtiImpl.cpp instanceKlass.hpp
161 jvmtiImpl.cpp interfaceSupport.hpp
162 jvmtiImpl.cpp interpreter.hpp
163 jvmtiImpl.cpp javaCalls.hpp
164 jvmtiImpl.cpp jvmtiAgentThread.hpp
165 jvmtiImpl.cpp jvmtiEnv.hpp
166 jvmtiImpl.cpp jvmtiEventController.inline.hpp
167 jvmtiImpl.cpp jvmtiImpl.hpp
168 jvmtiImpl.cpp jvmtiRedefineClasses.hpp
169 jvmtiImpl.cpp resourceArea.hpp
170 jvmtiImpl.cpp signature.hpp
171 jvmtiImpl.cpp systemDictionary.hpp
172 jvmtiImpl.cpp thread_<os_family>.inline.hpp
173 jvmtiImpl.cpp vframe.hpp
174 jvmtiImpl.cpp vframe_hp.hpp
175 jvmtiImpl.cpp vm_operations.hpp
177 jvmtiImpl.hpp jvmti.h
178 jvmtiImpl.hpp jvmtiEnvThreadState.hpp
179 jvmtiImpl.hpp jvmtiEventController.hpp
180 jvmtiImpl.hpp jvmtiTrace.hpp
181 jvmtiImpl.hpp jvmtiUtil.hpp
182 jvmtiImpl.hpp objArrayOop.hpp
183 jvmtiImpl.hpp stackValueCollection.hpp
184 jvmtiImpl.hpp systemDictionary.hpp
185 jvmtiImpl.hpp vm_operations.hpp
187 jvmtiTagMap.cpp biasedLocking.hpp
188 jvmtiTagMap.cpp javaCalls.hpp
189 jvmtiTagMap.cpp jniHandles.hpp
190 jvmtiTagMap.cpp jvmtiEnv.hpp
191 jvmtiTagMap.cpp jvmtiEventController.hpp
192 jvmtiTagMap.cpp jvmtiEventController.inline.hpp
193 jvmtiTagMap.cpp jvmtiExport.hpp
194 jvmtiTagMap.cpp jvmtiImpl.hpp
195 jvmtiTagMap.cpp jvmtiTagMap.hpp
196 jvmtiTagMap.cpp mutex.hpp
197 jvmtiTagMap.cpp mutexLocker.hpp
198 jvmtiTagMap.cpp objArrayKlass.hpp
199 jvmtiTagMap.cpp oop.inline2.hpp
200 jvmtiTagMap.cpp reflectionUtils.hpp
201 jvmtiTagMap.cpp serviceUtil.hpp
202 jvmtiTagMap.cpp symbolTable.hpp
203 jvmtiTagMap.cpp systemDictionary.hpp
204 jvmtiTagMap.cpp vframe.hpp
205 jvmtiTagMap.cpp vmSymbols.hpp
206 jvmtiTagMap.cpp vmThread.hpp
207 jvmtiTagMap.cpp vm_operations.hpp
209 jvmtiTagMap.hpp allocation.hpp
210 jvmtiTagMap.hpp collectedHeap.hpp
211 jvmtiTagMap.hpp genCollectedHeap.hpp
212 jvmtiTagMap.hpp jvmti.h
213 jvmtiTagMap.hpp jvmtiEnv.hpp
214 jvmtiTagMap.hpp universe.hpp
216 jvmtiTrace.cpp jvmtiEnv.hpp
217 jvmtiTrace.cpp jvmtiTrace.hpp
219 jvmtiTrace.hpp jvmti.h
220 jvmtiTrace.hpp jvmtiEnvThreadState.hpp
221 jvmtiTrace.hpp jvmtiEventController.hpp
222 jvmtiTrace.hpp jvmtiUtil.hpp
223 jvmtiTrace.hpp objArrayOop.hpp
224 jvmtiTrace.hpp stackValueCollection.hpp
225 jvmtiTrace.hpp systemDictionary.hpp
226 jvmtiTrace.hpp vm_operations.hpp
228 restore.cpp filemap.hpp
229 restore.cpp hashtable.inline.hpp
230 restore.cpp oop.inline.hpp
231 restore.cpp symbolTable.hpp
232 restore.cpp systemDictionary.hpp
234 serialize.cpp classify.hpp
235 serialize.cpp codeCache.hpp
236 serialize.cpp compactingPermGenGen.hpp
237 serialize.cpp compiledICHolderOop.hpp
238 serialize.cpp methodDataOop.hpp
239 serialize.cpp objArrayOop.hpp
240 serialize.cpp oop.inline.hpp
241 serialize.cpp symbolTable.hpp
242 serialize.cpp systemDictionary.hpp
244 vmStructs.cpp arguments.hpp
245 vmStructs.cpp arrayKlass.hpp
246 vmStructs.cpp arrayKlassKlass.hpp
247 vmStructs.cpp arrayOop.hpp
248 vmStructs.cpp bytecodes.hpp
249 vmStructs.cpp bytecodeInterpreter.hpp
250 vmStructs.cpp cardTableRS.hpp
251 vmStructs.cpp codeBlob.hpp
252 vmStructs.cpp codeCache.hpp
253 vmStructs.cpp collectedHeap.hpp
254 vmStructs.cpp compactPermGen.hpp
255 vmStructs.cpp compiledICHolderKlass.hpp
256 vmStructs.cpp compiledICHolderOop.hpp
257 vmStructs.cpp compressedStream.hpp
258 vmStructs.cpp constMethodKlass.hpp
259 vmStructs.cpp constMethodOop.hpp
260 vmStructs.cpp constantPoolKlass.hpp
261 vmStructs.cpp constantPoolOop.hpp
262 vmStructs.cpp cpCacheKlass.hpp
263 vmStructs.cpp cpCacheOop.hpp
264 vmStructs.cpp defNewGeneration.hpp
265 vmStructs.cpp dictionary.hpp
266 vmStructs.cpp freeBlockDictionary.hpp
267 vmStructs.cpp genCollectedHeap.hpp
268 vmStructs.cpp generation.hpp
269 vmStructs.cpp generationSpec.hpp
270 vmStructs.cpp globalDefinitions.hpp
271 vmStructs.cpp globals.hpp
272 vmStructs.cpp hashtable.hpp
273 vmStructs.cpp heap.hpp
274 vmStructs.cpp immutableSpace.hpp
275 vmStructs.cpp instanceKlass.hpp
276 vmStructs.cpp instanceKlassKlass.hpp
277 vmStructs.cpp instanceOop.hpp
278 vmStructs.cpp interpreter.hpp
279 vmStructs.cpp java.hpp
280 vmStructs.cpp javaCalls.hpp
281 vmStructs.cpp javaClasses.hpp
282 vmStructs.cpp jvmtiAgentThread.hpp
283 vmStructs.cpp klass.hpp
284 vmStructs.cpp klassOop.hpp
285 vmStructs.cpp loaderConstraints.hpp
286 vmStructs.cpp location.hpp
287 vmStructs.cpp markOop.hpp
288 vmStructs.cpp markSweep.hpp
289 vmStructs.cpp methodDataKlass.hpp
290 vmStructs.cpp methodDataOop.hpp
291 vmStructs.cpp methodKlass.hpp
292 vmStructs.cpp methodOop.hpp
293 vmStructs.cpp mutableSpace.hpp
294 vmStructs.cpp nmethod.hpp
295 vmStructs.cpp objArrayKlass.hpp
296 vmStructs.cpp objArrayKlassKlass.hpp
297 vmStructs.cpp objArrayOop.hpp
298 vmStructs.cpp oop.inline.hpp
299 vmStructs.cpp oopMap.hpp
300 vmStructs.cpp pcDesc.hpp
301 vmStructs.cpp perfMemory.hpp
302 vmStructs.cpp permGen.hpp
303 vmStructs.cpp placeholders.hpp
304 vmStructs.cpp sharedRuntime.hpp
305 vmStructs.cpp space.hpp
306 vmStructs.cpp stubRoutines.hpp
307 vmStructs.cpp stubs.hpp
308 vmStructs.cpp symbolKlass.hpp
309 vmStructs.cpp symbolOop.hpp
310 vmStructs.cpp symbolTable.hpp
311 vmStructs.cpp systemDictionary.hpp
312 vmStructs.cpp tenuredGeneration.hpp
313 vmStructs.cpp thread_<os_family>.inline.hpp
314 vmStructs.cpp typeArrayKlass.hpp
315 vmStructs.cpp typeArrayKlassKlass.hpp
316 vmStructs.cpp typeArrayOop.hpp
317 vmStructs.cpp universe.hpp
318 vmStructs.cpp virtualspace.hpp
319 vmStructs.cpp vmStructs.hpp
320 vmStructs.cpp vmStructs_<arch>.hpp
321 vmStructs.cpp vmStructs_<os_arch>.hpp
322 vmStructs.cpp vmreg.hpp
323 vmStructs.cpp watermark.hpp
325 vmStructs.hpp debug.hpp