Mercurial > hg > truffle
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 |