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()));
|