Wed, 10 Sep 2008 20:44:47 -0700
6746907: Improve implicit null check generation
Summary: add missing implicit null check cases.
Reviewed-by: never
1 //
2 // Copyright 1999-2008 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 // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
27 allocation.hpp c1_globals.hpp
29 c1_CFGPrinter.cpp c1_CFGPrinter.hpp
30 c1_CFGPrinter.cpp c1_IR.hpp
31 c1_CFGPrinter.cpp c1_InstructionPrinter.hpp
32 c1_CFGPrinter.cpp c1_LIR.hpp
33 c1_CFGPrinter.cpp c1_LinearScan.hpp
34 c1_CFGPrinter.cpp c1_ValueStack.hpp
36 c1_CFGPrinter.hpp c1_Compilation.hpp
37 c1_CFGPrinter.hpp c1_Instruction.hpp
39 c1_Canonicalizer.cpp c1_Canonicalizer.hpp
40 c1_Canonicalizer.cpp c1_InstructionPrinter.hpp
41 c1_Canonicalizer.cpp ciArray.hpp
42 c1_Canonicalizer.cpp sharedRuntime.hpp
44 c1_Canonicalizer.hpp c1_Instruction.hpp
46 c1_CodeStubs.hpp array.hpp
47 c1_CodeStubs.hpp c1_FrameMap.hpp
48 c1_CodeStubs.hpp c1_IR.hpp
49 c1_CodeStubs.hpp c1_Instruction.hpp
50 c1_CodeStubs.hpp c1_LIR.hpp
51 c1_CodeStubs.hpp c1_Runtime1.hpp
53 c1_CodeStubs_<arch>.cpp c1_CodeStubs.hpp
54 c1_CodeStubs_<arch>.cpp c1_FrameMap.hpp
55 c1_CodeStubs_<arch>.cpp c1_LIRAssembler.hpp
56 c1_CodeStubs_<arch>.cpp c1_MacroAssembler.hpp
57 c1_CodeStubs_<arch>.cpp c1_Runtime1.hpp
58 c1_CodeStubs_<arch>.cpp nativeInst_<arch>.hpp
59 c1_CodeStubs_<arch>.cpp sharedRuntime.hpp
60 c1_CodeStubs_<arch>.cpp vmreg_<arch>.inline.hpp
62 c1_Compilation.cpp c1_CFGPrinter.hpp
63 c1_Compilation.cpp c1_Compilation.hpp
64 c1_Compilation.cpp c1_IR.hpp
65 c1_Compilation.cpp c1_LIRAssembler.hpp
66 c1_Compilation.cpp c1_LinearScan.hpp
67 c1_Compilation.cpp c1_MacroAssembler.hpp
68 c1_Compilation.cpp c1_ValueMap.hpp
69 c1_Compilation.cpp c1_ValueStack.hpp
70 c1_Compilation.cpp ciEnv.hpp
71 c1_Compilation.cpp debugInfoRec.hpp
72 c1_Compilation.hpp exceptionHandlerTable.hpp
73 c1_Compilation.hpp resourceArea.hpp
75 c1_Compiler.cpp allocation.hpp
76 c1_Compiler.cpp allocation.inline.hpp
77 c1_Compiler.cpp arguments.hpp
78 c1_Compiler.cpp c1_Compilation.hpp
79 c1_Compiler.cpp c1_Compiler.hpp
80 c1_Compiler.cpp c1_FrameMap.hpp
81 c1_Compiler.cpp c1_MacroAssembler.hpp
82 c1_Compiler.cpp c1_Runtime1.hpp
83 c1_Compiler.cpp c1_ValueType.hpp
84 c1_Compiler.cpp compileBroker.hpp
85 c1_Compiler.cpp compilerOracle.hpp
86 c1_Compiler.cpp interfaceSupport.hpp
87 c1_Compiler.cpp linkResolver.hpp
88 c1_Compiler.cpp nativeLookup.hpp
89 c1_Compiler.cpp resourceArea.hpp
90 c1_Compiler.cpp sharedRuntime.hpp
92 c1_Compiler.hpp abstractCompiler.hpp
94 c1_Defs.cpp c1_Defs.hpp
96 c1_Defs.hpp globalDefinitions.hpp
97 c1_Defs.hpp register_<arch>.hpp
99 c1_Defs_<arch>.hpp generate_platform_dependent_include
101 c1_FpuStackSim.hpp allocation.hpp
102 c1_FpuStackSim.hpp c1_FrameMap.hpp
104 c1_FpuStackSim_<arch>.cpp array.hpp
105 c1_FpuStackSim_<arch>.cpp c1_FpuStackSim.hpp
106 c1_FpuStackSim_<arch>.cpp c1_FrameMap.hpp
107 c1_FpuStackSim_<arch>.cpp ostream.hpp
109 c1_FpuStackSim_<arch>.hpp generate_platform_dependent_include
111 c1_FrameMap.cpp c1_FrameMap.hpp
112 c1_FrameMap.cpp c1_LIR.hpp
113 c1_FrameMap.cpp sharedRuntime.hpp
114 c1_FrameMap.cpp vmreg_<arch>.inline.hpp
116 c1_FrameMap.hpp allocation.hpp
117 c1_FrameMap.hpp assembler.hpp
118 c1_FrameMap.hpp c1_Defs.hpp
119 c1_FrameMap.hpp c1_LIR.hpp
120 c1_FrameMap.hpp frame.hpp
121 c1_FrameMap.hpp globalDefinitions.hpp
122 c1_FrameMap.hpp synchronizer.hpp
123 c1_FrameMap.hpp vmreg.hpp
125 c1_FrameMap_<arch>.cpp c1_FrameMap.hpp
126 c1_FrameMap_<arch>.cpp c1_LIR.hpp
127 c1_FrameMap_<arch>.cpp sharedRuntime.hpp
128 c1_FrameMap_<arch>.cpp vmreg_<arch>.inline.hpp
130 c1_FrameMap_<arch>.hpp generate_platform_dependent_include
132 c1_globals.cpp c1_globals.hpp
134 c1_globals.hpp c1_globals_<arch>.hpp
135 c1_globals.hpp c1_globals_<os_family>.hpp
136 c1_globals.hpp globals.hpp
138 c1_globals_<arch>.hpp globalDefinitions.hpp
139 c1_globals_<arch>.hpp macros.hpp
141 c1_globals_<os_family>.hpp globalDefinitions.hpp
142 c1_globals_<os_family>.hpp macros.hpp
144 c1_GraphBuilder.cpp bytecode.hpp
145 c1_GraphBuilder.cpp c1_CFGPrinter.hpp
146 c1_GraphBuilder.cpp c1_Canonicalizer.hpp
147 c1_GraphBuilder.cpp c1_Compilation.hpp
148 c1_GraphBuilder.cpp c1_GraphBuilder.hpp
149 c1_GraphBuilder.cpp c1_InstructionPrinter.hpp
150 c1_GraphBuilder.cpp ciField.hpp
151 c1_GraphBuilder.cpp ciKlass.hpp
152 c1_GraphBuilder.cpp sharedRuntime.hpp
154 c1_GraphBuilder.hpp c1_IR.hpp
155 c1_GraphBuilder.hpp c1_Instruction.hpp
156 c1_GraphBuilder.hpp c1_ValueMap.hpp
157 c1_GraphBuilder.hpp c1_ValueStack.hpp
158 c1_GraphBuilder.hpp ciMethodData.hpp
159 c1_GraphBuilder.hpp ciStreams.hpp
161 c1_IR.cpp c1_Compilation.hpp
162 c1_IR.cpp c1_FrameMap.hpp
163 c1_IR.cpp c1_GraphBuilder.hpp
164 c1_IR.cpp c1_IR.hpp
165 c1_IR.cpp c1_InstructionPrinter.hpp
166 c1_IR.cpp c1_Optimizer.hpp
168 c1_IR.hpp allocation.hpp
169 c1_IR.hpp c1_Instruction.hpp
170 c1_IR.hpp ciExceptionHandler.hpp
171 c1_IR.hpp ciMethod.hpp
172 c1_IR.hpp ciStreams.hpp
174 c1_Instruction.cpp c1_IR.hpp
175 c1_Instruction.cpp c1_Instruction.hpp
176 c1_Instruction.cpp c1_InstructionPrinter.hpp
177 c1_Instruction.cpp c1_ValueStack.hpp
178 c1_Instruction.cpp ciObjArrayKlass.hpp
179 c1_Instruction.cpp ciTypeArrayKlass.hpp
181 c1_Instruction.hpp c1_Compilation.hpp
182 c1_Instruction.hpp c1_LIR.hpp
183 c1_Instruction.hpp c1_ValueType.hpp
184 c1_Instruction.hpp ciField.hpp
186 c1_InstructionPrinter.cpp c1_InstructionPrinter.hpp
187 c1_InstructionPrinter.cpp c1_ValueStack.hpp
188 c1_InstructionPrinter.cpp ciArray.hpp
189 c1_InstructionPrinter.cpp ciInstance.hpp
190 c1_InstructionPrinter.cpp ciObject.hpp
192 c1_InstructionPrinter.hpp c1_IR.hpp
193 c1_InstructionPrinter.hpp c1_Instruction.hpp
194 c1_InstructionPrinter.hpp c1_Runtime1.hpp
196 c1_LIR.cpp c1_InstructionPrinter.hpp
197 c1_LIR.cpp c1_LIR.hpp
198 c1_LIR.cpp c1_LIRAssembler.hpp
199 c1_LIR.cpp ciInstance.hpp
200 c1_LIR.cpp sharedRuntime.hpp
202 c1_LIR.hpp c1_ValueType.hpp
204 c1_LIRAssembler.cpp c1_Compilation.hpp
205 c1_LIRAssembler.cpp c1_Instruction.hpp
206 c1_LIRAssembler.cpp c1_InstructionPrinter.hpp
207 c1_LIRAssembler.cpp c1_LIRAssembler.hpp
208 c1_LIRAssembler.cpp c1_MacroAssembler.hpp
209 c1_LIRAssembler.cpp c1_ValueStack.hpp
210 c1_LIRAssembler.cpp ciInstance.hpp
211 c1_LIRAssembler.cpp nativeInst_<arch>.hpp
212 c1_LIRAssembler.cpp vmreg_<arch>.inline.hpp
214 c1_LIRAssembler.hpp c1_CodeStubs.hpp
215 c1_LIRAssembler.hpp ciMethodData.hpp
216 c1_LIRAssembler.hpp methodDataOop.hpp
217 c1_LIRAssembler.hpp top.hpp
219 c1_LIRAssembler_<arch>.cpp barrierSet.hpp
220 c1_LIRAssembler_<arch>.cpp c1_Compilation.hpp
221 c1_LIRAssembler_<arch>.cpp c1_LIRAssembler.hpp
222 c1_LIRAssembler_<arch>.cpp c1_MacroAssembler.hpp
223 c1_LIRAssembler_<arch>.cpp c1_Runtime1.hpp
224 c1_LIRAssembler_<arch>.cpp c1_ValueStack.hpp
225 c1_LIRAssembler_<arch>.cpp cardTableModRefBS.hpp
226 c1_LIRAssembler_<arch>.cpp ciArrayKlass.hpp
227 c1_LIRAssembler_<arch>.cpp ciInstance.hpp
228 c1_LIRAssembler_<arch>.cpp collectedHeap.hpp
229 c1_LIRAssembler_<arch>.cpp nativeInst_<arch>.hpp
230 c1_LIRAssembler_<arch>.cpp objArrayKlass.hpp
231 c1_LIRAssembler_<arch>.cpp sharedRuntime.hpp
233 c1_LIRAssembler_<arch>.hpp generate_platform_dependent_include
235 c1_LIRGenerator.cpp c1_Compilation.hpp
236 c1_LIRGenerator.cpp c1_FrameMap.hpp
237 c1_LIRGenerator.cpp c1_Instruction.hpp
238 c1_LIRGenerator.cpp c1_LIRAssembler.hpp
239 c1_LIRGenerator.cpp c1_LIRGenerator.hpp
240 c1_LIRGenerator.cpp c1_ValueStack.hpp
241 c1_LIRGenerator.cpp ciArrayKlass.hpp
242 c1_LIRGenerator.cpp ciInstance.hpp
243 c1_LIRGenerator.cpp sharedRuntime.hpp
245 c1_LIRGenerator.hpp c1_Instruction.hpp
246 c1_LIRGenerator.hpp c1_LIR.hpp
247 c1_LIRGenerator.hpp ciMethodData.hpp
248 c1_LIRGenerator.hpp sizes.hpp
250 c1_LIRGenerator_<arch>.cpp c1_Compilation.hpp
251 c1_LIRGenerator_<arch>.cpp c1_FrameMap.hpp
252 c1_LIRGenerator_<arch>.cpp c1_Instruction.hpp
253 c1_LIRGenerator_<arch>.cpp c1_LIRAssembler.hpp
254 c1_LIRGenerator_<arch>.cpp c1_LIRGenerator.hpp
255 c1_LIRGenerator_<arch>.cpp c1_Runtime1.hpp
256 c1_LIRGenerator_<arch>.cpp c1_ValueStack.hpp
257 c1_LIRGenerator_<arch>.cpp ciArray.hpp
258 c1_LIRGenerator_<arch>.cpp ciObjArrayKlass.hpp
259 c1_LIRGenerator_<arch>.cpp ciTypeArrayKlass.hpp
260 c1_LIRGenerator_<arch>.cpp sharedRuntime.hpp
261 c1_LIRGenerator_<arch>.cpp vmreg_<arch>.inline.hpp
263 c1_LinearScan.cpp c1_CFGPrinter.hpp
264 c1_LinearScan.cpp c1_Compilation.hpp
265 c1_LinearScan.cpp c1_FrameMap.hpp
266 c1_LinearScan.cpp c1_IR.hpp
267 c1_LinearScan.cpp c1_LIRGenerator.hpp
268 c1_LinearScan.cpp c1_LinearScan.hpp
269 c1_LinearScan.cpp c1_ValueStack.hpp
270 c1_LinearScan.cpp vmreg_<arch>.inline.hpp
272 c1_LinearScan.hpp c1_FpuStackSim.hpp
273 c1_LinearScan.hpp c1_FrameMap.hpp
274 c1_LinearScan.hpp c1_IR.hpp
275 c1_LinearScan.hpp c1_Instruction.hpp
276 c1_LinearScan.hpp c1_LIR.hpp
277 c1_LinearScan.hpp c1_LIRGenerator.hpp
279 c1_LinearScan_<arch>.cpp c1_Instruction.hpp
280 c1_LinearScan_<arch>.cpp c1_LinearScan.hpp
282 c1_LinearScan_<arch>.hpp generate_platform_dependent_include
284 c1_MacroAssembler.hpp assembler.hpp
285 c1_MacroAssembler.hpp assembler_<arch>.inline.hpp
287 c1_MacroAssembler_<arch>.cpp arrayOop.hpp
288 c1_MacroAssembler_<arch>.cpp biasedLocking.hpp
289 c1_MacroAssembler_<arch>.cpp c1_MacroAssembler.hpp
290 c1_MacroAssembler_<arch>.cpp c1_Runtime1.hpp
291 c1_MacroAssembler_<arch>.cpp collectedHeap.hpp
292 c1_MacroAssembler_<arch>.cpp interpreter.hpp
293 c1_MacroAssembler_<arch>.cpp markOop.hpp
294 c1_MacroAssembler_<arch>.cpp os.hpp
295 c1_MacroAssembler_<arch>.cpp stubRoutines.hpp
296 c1_MacroAssembler_<arch>.cpp synchronizer.hpp
297 c1_MacroAssembler_<arch>.cpp systemDictionary.hpp
299 c1_MacroAssembler_<arch>.hpp generate_platform_dependent_include
301 c1_Optimizer.cpp c1_Canonicalizer.hpp
302 c1_Optimizer.cpp c1_Optimizer.hpp
303 c1_Optimizer.cpp c1_ValueMap.hpp
304 c1_Optimizer.cpp c1_ValueSet.hpp
305 c1_Optimizer.cpp c1_ValueStack.hpp
307 c1_Optimizer.hpp allocation.hpp
308 c1_Optimizer.hpp c1_IR.hpp
309 c1_Optimizer.hpp c1_Instruction.hpp
311 c1_Runtime1.cpp allocation.inline.hpp
312 c1_Runtime1.cpp barrierSet.hpp
313 c1_Runtime1.cpp biasedLocking.hpp
314 c1_Runtime1.cpp bytecode.hpp
315 c1_Runtime1.cpp c1_CodeStubs.hpp
316 c1_Runtime1.cpp c1_Defs.hpp
317 c1_Runtime1.cpp c1_FrameMap.hpp
318 c1_Runtime1.cpp c1_LIRAssembler.hpp
319 c1_Runtime1.cpp c1_MacroAssembler.hpp
320 c1_Runtime1.cpp c1_Runtime1.hpp
321 c1_Runtime1.cpp codeBlob.hpp
322 c1_Runtime1.cpp codeBuffer.hpp
323 c1_Runtime1.cpp collectedHeap.hpp
324 c1_Runtime1.cpp compilationPolicy.hpp
325 c1_Runtime1.cpp compiledIC.hpp
326 c1_Runtime1.cpp copy.hpp
327 c1_Runtime1.cpp disassembler.hpp
328 c1_Runtime1.cpp events.hpp
329 c1_Runtime1.cpp interfaceSupport.hpp
330 c1_Runtime1.cpp interpreter.hpp
331 c1_Runtime1.cpp javaCalls.hpp
332 c1_Runtime1.cpp objArrayKlass.hpp
333 c1_Runtime1.cpp oop.inline.hpp
334 c1_Runtime1.cpp oopFactory.hpp
335 c1_Runtime1.cpp pcDesc.hpp
336 c1_Runtime1.cpp resourceArea.hpp
337 c1_Runtime1.cpp scopeDesc.hpp
338 c1_Runtime1.cpp sharedRuntime.hpp
339 c1_Runtime1.cpp systemDictionary.hpp
340 c1_Runtime1.cpp threadCritical.hpp
341 c1_Runtime1.cpp vframe.hpp
342 c1_Runtime1.cpp vframeArray.hpp
343 c1_Runtime1.cpp vmSymbols.hpp
344 c1_Runtime1.cpp vtableStubs.hpp
346 c1_Runtime1.hpp allocation.hpp
347 c1_Runtime1.hpp c1_FrameMap.hpp
348 c1_Runtime1.hpp deoptimization.hpp
349 c1_Runtime1.hpp interpreter.hpp
350 c1_Runtime1.hpp stubs.hpp
352 c1_Runtime1_<arch>.cpp c1_Defs.hpp
353 c1_Runtime1_<arch>.cpp c1_MacroAssembler.hpp
354 c1_Runtime1_<arch>.cpp c1_Runtime1.hpp
355 c1_Runtime1_<arch>.cpp compiledICHolderOop.hpp
356 c1_Runtime1_<arch>.cpp interpreter.hpp
357 c1_Runtime1_<arch>.cpp jvmtiExport.hpp
358 c1_Runtime1_<arch>.cpp nativeInst_<arch>.hpp
359 c1_Runtime1_<arch>.cpp oop.inline.hpp
360 c1_Runtime1_<arch>.cpp register_<arch>.hpp
361 c1_Runtime1_<arch>.cpp sharedRuntime.hpp
362 c1_Runtime1_<arch>.cpp signature.hpp
363 c1_Runtime1_<arch>.cpp vframeArray.hpp
364 c1_Runtime1_<arch>.cpp vmreg_<arch>.inline.hpp
366 c1_ValueMap.cpp c1_Canonicalizer.hpp
367 c1_ValueMap.cpp c1_IR.hpp
368 c1_ValueMap.cpp c1_ValueMap.hpp
370 c1_ValueMap.hpp allocation.hpp
371 c1_ValueMap.hpp c1_Instruction.hpp
372 c1_ValueMap.hpp c1_ValueSet.hpp
374 c1_ValueSet.cpp c1_ValueSet.hpp
376 c1_ValueSet.hpp allocation.hpp
377 c1_ValueSet.hpp bitMap.hpp
378 c1_ValueSet.hpp c1_Instruction.hpp
380 c1_ValueStack.cpp c1_IR.hpp
381 c1_ValueStack.cpp c1_InstructionPrinter.hpp
382 c1_ValueStack.cpp c1_ValueStack.hpp
384 c1_ValueStack.hpp c1_Instruction.hpp
385 c1_ValueType.cpp c1_ValueType.hpp
386 c1_ValueType.cpp ciArray.hpp
387 c1_ValueType.cpp ciInstance.hpp
388 c1_ValueType.cpp ciNullObject.hpp
390 c1_ValueType.hpp c1_Compilation.hpp
391 c1_ValueType.hpp ciConstant.hpp
393 ciEnv.cpp c1_Runtime1.hpp
395 codeBlob.cpp c1_Runtime1.hpp
397 compileBroker.cpp c1_Compiler.hpp
399 frame.hpp c1_Defs.hpp
401 frame_<arch>.cpp c1_Runtime1.hpp
403 globals.cpp c1_globals.hpp
405 globals.hpp c1_globals_<arch>.hpp
406 globals.hpp c1_globals_<os_family>.hpp
408 instanceKlass.cpp c1_Compiler.hpp
410 interpreter_<arch_model>.cpp c1_Runtime1.hpp
412 java.cpp c1_Compiler.hpp
413 java.cpp c1_Runtime1.hpp
415 nativeInst_<arch>.cpp c1_Runtime1.hpp
417 oopMap.cpp c1_Defs.hpp
419 os_<os_family>.cpp c1_Runtime1.hpp
421 os_<os_arch>.cpp c1_Runtime1.hpp
423 registerMap.hpp c1_Defs.hpp
425 safepoint.cpp c1_globals.hpp
427 sharedRuntime.cpp c1_Runtime1.hpp
429 sharedRuntime_<arch_model>.cpp c1_Runtime1.hpp
431 thread.cpp c1_Compiler.hpp
433 top.hpp c1_globals.hpp
435 vmStructs.hpp c1_Runtime1.hpp