< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

 631                   _trace_opto_output(directive->TraceOptoOutputOption),
 632 #endif
 633                   _has_method_handle_invokes(false),
 634                   _clinit_barrier_on_entry(false),
 635                   _stress_seed(0),
 636                   _comp_arena(mtCompiler),
 637                   _barrier_set_state(BarrierSet::barrier_set()->barrier_set_c2()->create_barrier_state(comp_arena())),
 638                   _env(ci_env),
 639                   _directive(directive),
 640                   _log(ci_env->log()),
 641                   _failure_reason(nullptr),
 642                   _first_failure_details(nullptr),
 643                   _intrinsics        (comp_arena(), 0, 0, nullptr),
 644                   _macro_nodes       (comp_arena(), 8, 0, nullptr),
 645                   _parse_predicates  (comp_arena(), 8, 0, nullptr),
 646                   _template_assertion_predicate_opaqs (comp_arena(), 8, 0, nullptr),
 647                   _expensive_nodes   (comp_arena(), 8, 0, nullptr),
 648                   _for_post_loop_igvn(comp_arena(), 8, 0, nullptr),
 649                   _unstable_if_traps (comp_arena(), 8, 0, nullptr),
 650                   _coarsened_locks   (comp_arena(), 8, 0, nullptr),

 651                   _congraph(nullptr),
 652                   NOT_PRODUCT(_igv_printer(nullptr) COMMA)
 653                   _unique(0),
 654                   _dead_node_count(0),
 655                   _dead_node_list(comp_arena()),
 656                   _node_arena_one(mtCompiler, Arena::Tag::tag_node),
 657                   _node_arena_two(mtCompiler, Arena::Tag::tag_node),
 658                   _node_arena(&_node_arena_one),
 659                   _mach_constant_base_node(nullptr),
 660                   _Compile_types(mtCompiler),
 661                   _initial_gvn(nullptr),
 662                   _igvn_worklist(nullptr),
 663                   _types(nullptr),
 664                   _node_hash(nullptr),
 665                   _late_inlines(comp_arena(), 2, 0, nullptr),
 666                   _string_late_inlines(comp_arena(), 2, 0, nullptr),
 667                   _boxing_late_inlines(comp_arena(), 2, 0, nullptr),
 668                   _vector_reboxing_late_inlines(comp_arena(), 2, 0, nullptr),
 669                   _late_inlines_pos(0),
 670                   _number_of_mh_late_inlines(0),

 721   Init(/*do_aliasing=*/ true);
 722 
 723   print_compile_messages();
 724 
 725   _ilt = InlineTree::build_inline_tree_root();
 726 
 727   // Even if NO memory addresses are used, MergeMem nodes must have at least 1 slice
 728   assert(num_alias_types() >= AliasIdxRaw, "");
 729 
 730 #define MINIMUM_NODE_HASH  1023
 731 
 732   // GVN that will be run immediately on new nodes
 733   uint estimated_size = method()->code_size()*4+64;
 734   estimated_size = (estimated_size < MINIMUM_NODE_HASH ? MINIMUM_NODE_HASH : estimated_size);
 735   _igvn_worklist = new (comp_arena()) Unique_Node_List(comp_arena());
 736   _types = new (comp_arena()) Type_Array(comp_arena());
 737   _node_hash = new (comp_arena()) NodeHash(comp_arena(), estimated_size);
 738   PhaseGVN gvn;
 739   set_initial_gvn(&gvn);
 740 




 741   print_inlining_init();
 742   { // Scope for timing the parser
 743     TracePhase tp("parse", &timers[_t_parser]);
 744 
 745     // Put top into the hash table ASAP.
 746     initial_gvn()->transform(top());
 747 
 748     // Set up tf(), start(), and find a CallGenerator.
 749     CallGenerator* cg = nullptr;
 750     if (is_osr_compilation()) {
 751       const TypeTuple *domain = StartOSRNode::osr_domain();
 752       const TypeTuple *range = TypeTuple::make_range(method()->signature());
 753       init_tf(TypeFunc::make(domain, range));
 754       StartNode* s = new StartOSRNode(root(), domain);
 755       initial_gvn()->set_type_bottom(s);
 756       init_start(s);
 757       cg = CallGenerator::for_osr(method(), entry_bci());
 758     } else {
 759       // Normal case.
 760       init_tf(TypeFunc::make(method()));

 631                   _trace_opto_output(directive->TraceOptoOutputOption),
 632 #endif
 633                   _has_method_handle_invokes(false),
 634                   _clinit_barrier_on_entry(false),
 635                   _stress_seed(0),
 636                   _comp_arena(mtCompiler),
 637                   _barrier_set_state(BarrierSet::barrier_set()->barrier_set_c2()->create_barrier_state(comp_arena())),
 638                   _env(ci_env),
 639                   _directive(directive),
 640                   _log(ci_env->log()),
 641                   _failure_reason(nullptr),
 642                   _first_failure_details(nullptr),
 643                   _intrinsics        (comp_arena(), 0, 0, nullptr),
 644                   _macro_nodes       (comp_arena(), 8, 0, nullptr),
 645                   _parse_predicates  (comp_arena(), 8, 0, nullptr),
 646                   _template_assertion_predicate_opaqs (comp_arena(), 8, 0, nullptr),
 647                   _expensive_nodes   (comp_arena(), 8, 0, nullptr),
 648                   _for_post_loop_igvn(comp_arena(), 8, 0, nullptr),
 649                   _unstable_if_traps (comp_arena(), 8, 0, nullptr),
 650                   _coarsened_locks   (comp_arena(), 8, 0, nullptr),
 651                   _pea(nullptr),
 652                   _congraph(nullptr),
 653                   NOT_PRODUCT(_igv_printer(nullptr) COMMA)
 654                   _unique(0),
 655                   _dead_node_count(0),
 656                   _dead_node_list(comp_arena()),
 657                   _node_arena_one(mtCompiler, Arena::Tag::tag_node),
 658                   _node_arena_two(mtCompiler, Arena::Tag::tag_node),
 659                   _node_arena(&_node_arena_one),
 660                   _mach_constant_base_node(nullptr),
 661                   _Compile_types(mtCompiler),
 662                   _initial_gvn(nullptr),
 663                   _igvn_worklist(nullptr),
 664                   _types(nullptr),
 665                   _node_hash(nullptr),
 666                   _late_inlines(comp_arena(), 2, 0, nullptr),
 667                   _string_late_inlines(comp_arena(), 2, 0, nullptr),
 668                   _boxing_late_inlines(comp_arena(), 2, 0, nullptr),
 669                   _vector_reboxing_late_inlines(comp_arena(), 2, 0, nullptr),
 670                   _late_inlines_pos(0),
 671                   _number_of_mh_late_inlines(0),

 722   Init(/*do_aliasing=*/ true);
 723 
 724   print_compile_messages();
 725 
 726   _ilt = InlineTree::build_inline_tree_root();
 727 
 728   // Even if NO memory addresses are used, MergeMem nodes must have at least 1 slice
 729   assert(num_alias_types() >= AliasIdxRaw, "");
 730 
 731 #define MINIMUM_NODE_HASH  1023
 732 
 733   // GVN that will be run immediately on new nodes
 734   uint estimated_size = method()->code_size()*4+64;
 735   estimated_size = (estimated_size < MINIMUM_NODE_HASH ? MINIMUM_NODE_HASH : estimated_size);
 736   _igvn_worklist = new (comp_arena()) Unique_Node_List(comp_arena());
 737   _types = new (comp_arena()) Type_Array(comp_arena());
 738   _node_hash = new (comp_arena()) NodeHash(comp_arena(), estimated_size);
 739   PhaseGVN gvn;
 740   set_initial_gvn(&gvn);
 741 
 742   if (DoPartialEscapeAnalysis) {
 743     _pea = new (mtCompiler) PartialEscapeAnalysis(comp_arena());
 744   }
 745 
 746   print_inlining_init();
 747   { // Scope for timing the parser
 748     TracePhase tp("parse", &timers[_t_parser]);
 749 
 750     // Put top into the hash table ASAP.
 751     initial_gvn()->transform(top());
 752 
 753     // Set up tf(), start(), and find a CallGenerator.
 754     CallGenerator* cg = nullptr;
 755     if (is_osr_compilation()) {
 756       const TypeTuple *domain = StartOSRNode::osr_domain();
 757       const TypeTuple *range = TypeTuple::make_range(method()->signature());
 758       init_tf(TypeFunc::make(domain, range));
 759       StartNode* s = new StartOSRNode(root(), domain);
 760       initial_gvn()->set_type_bottom(s);
 761       init_start(s);
 762       cg = CallGenerator::for_osr(method(), entry_bci());
 763     } else {
 764       // Normal case.
 765       init_tf(TypeFunc::make(method()));
< prev index next >