comparison src/share/vm/opto/compile.cpp @ 17914:3636afd5ec1a

8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR)) Summary: Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively. Reviewed-by: twisti, iveresov
author kvn
date Fri, 02 May 2014 16:44:54 -0700
parents 31e28ee4c9b4
children 78bbf4d43a14
comparison
equal deleted inserted replaced
17913:1eba0601f0dd 17914:3636afd5ec1a
691 _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level()); 691 _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level());
692 } 692 }
693 #endif 693 #endif
694 set_print_inlining(PrintInlining || method()->has_option("PrintInlining") NOT_PRODUCT( || PrintOptoInlining)); 694 set_print_inlining(PrintInlining || method()->has_option("PrintInlining") NOT_PRODUCT( || PrintOptoInlining));
695 set_print_intrinsics(PrintIntrinsics || method()->has_option("PrintIntrinsics")); 695 set_print_intrinsics(PrintIntrinsics || method()->has_option("PrintIntrinsics"));
696 set_has_irreducible_loop(true); // conservative until build_loop_tree() reset it
696 697
697 if (ProfileTraps RTM_OPT_ONLY( || UseRTMLocking )) { 698 if (ProfileTraps RTM_OPT_ONLY( || UseRTMLocking )) {
698 // Make sure the method being compiled gets its own MDO, 699 // Make sure the method being compiled gets its own MDO,
699 // so we can at least track the decompile_count(). 700 // so we can at least track the decompile_count().
700 // Need MDO to record RTM code generation state. 701 // Need MDO to record RTM code generation state.
975 TraceTime t1(NULL, &_t_totalCompilation, TimeCompiler, false); 976 TraceTime t1(NULL, &_t_totalCompilation, TimeCompiler, false);
976 TraceTime t2(NULL, &_t_stubCompilation, TimeCompiler, false); 977 TraceTime t2(NULL, &_t_stubCompilation, TimeCompiler, false);
977 set_print_assembly(PrintFrameConverterAssembly); 978 set_print_assembly(PrintFrameConverterAssembly);
978 set_parsed_irreducible_loop(false); 979 set_parsed_irreducible_loop(false);
979 #endif 980 #endif
981 set_has_irreducible_loop(false); // no loops
982
980 CompileWrapper cw(this); 983 CompileWrapper cw(this);
981 Init(/*AliasLevel=*/ 0); 984 Init(/*AliasLevel=*/ 0);
982 init_tf((*generator)()); 985 init_tf((*generator)());
983 986
984 { 987 {
1145 for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) { 1148 for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) {
1146 Node* start = root()->fast_out(i); 1149 Node* start = root()->fast_out(i);
1147 if( start->is_Start() ) 1150 if( start->is_Start() )
1148 return start->as_Start(); 1151 return start->as_Start();
1149 } 1152 }
1150 ShouldNotReachHere(); 1153 fatal("Did not find Start node!");
1151 return NULL; 1154 return NULL;
1152 } 1155 }
1153 1156
1154 //-------------------------------immutable_memory------------------------------------- 1157 //-------------------------------immutable_memory-------------------------------------
1155 // Access immutable memory 1158 // Access immutable memory