|
Description
|
After my putback 20061102095649.kvn.6479927 C2 asserts
during compilation:
# Internal Error (/net/prt-solsparc-q1-10/tmp/PrtBuildDir/workspace/src/share/vm/opto/machnode.cpp, 333 [ Patched ]), pid=21352, tid=10
#
# Java VM: Java HotSpot(TM) Server VM (20061102195256.steved.main_baseline_to_c2-debug compiled mode)
#
# Error: assert(tp->base() != Type::AnyPtr,"not a bare pointer")
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x0018bc00): JavaThread "CompilerThread1" daemon [_thread_in_native, id=10]
Stack: [0xb5a00000,0xb5a80000), sp=0xb5a7ca88, free space=498k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1036820] void VMError::report_and_die() + 0x804
V [libjvm.so+0x437070] void report_assertion_failure(const char*,int,const char*) + 0x70
V [libjvm.so+0xb8ec70] const TypePtr*MachNode::adr_type()const + 0x5b4
V [libjvm.so+0x4eb9e4] Block*insert_anti_dependences(Compile*,Block*,Node*,Block_Array&) + 0x54
V [libjvm.so+0x4efcc4] void PhaseCFG::schedule_late(VectorSet&,Node_List&,GrowableArray<unsigned>&) + 0xb04
V [libjvm.so+0x4f0fac] void PhaseCFG::GlobalCodeMotion(Matcher&,unsigned,Node_List&) + 0x4c0
V [libjvm.so+0x3974f0] void Compile::Code_Gen() + 0x29c
V [libjvm.so+0x39034c] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool)+ 0x1eb8
V [libjvm.so+0x20287c] void C2Compiler::compile_method(ciEnv*,ciMethod*,int) +0x6c
V [libjvm.so+0x3ab5f8] void CompileBroker::invoke_compiler_on_method(CompileTask*) + 0x1e38
V [libjvm.so+0x3a89c8] void CompileBroker::compiler_thread_loop() + 0x15b0
V [libjvm.so+0xeefefc] void JavaThread::thread_main_inner() + 0x238
V [libjvm.so+0xeefcac] void JavaThread::run() + 0x598
V [libjvm.so+0xcb7094] java_start + 0x17c
Current CompileTask:
C2: 62 !b nsk.serial.Unsafe.getByte_l.getbytel001.run([Ljava/lang/String;Ljava/io/PrintStream;)I (406 bytes)
Posted Date : 2006-11-07 18:30:13.0
|
|
Evaluation
|
My fix for 6479927 exposed the existing problem.
We can have an address subgraph which looks like this:
99 CallStaticJava === 105 70 29 8 1 ( 113 97 1 1 11 23 1 1 1 24 1 113 72 95 1 ) [[ 114 115 116 118 ]] # Static sun.misc.Unsafe::allocateMemory long/half ( sun/misc/Unsafe:NotNull:exact *, long, half ) putbytelb001::run @ bci:49 !jvms: putbytelb001::run @ bci:49
118 Proj === 99 [[ 461 360 471 579 461 208 342 183 860 882 ]]#5 !orig=[173],[254] !jvms: putbytelb001::run @ bci:49
471 ConvL2I === _ 118 [[ 472 952 912 ]] !orig=[774] !jvms: putbytelb001::run @ bci:248
95 ConP === 0 [[ 579 100 108 99 342 128 461 208 360 912 ]] #NULL
912 AddP === _ 1 95 471 [[ 908 ]] !orig=779,[305] !jvms: putbytelb001::run @ bci:140
AddP::Value() gives the type "NULL+bot" for it which is
interpreted as singleton since _ptr is NULL.
So the full expression replaced with
1042 ConP === 0 [[ 908 ]] #NULL+bot
And this causes the assert.
Posted Date : 2006-11-08 19:46:13.0
|