70 InlineTree *build_inline_tree_for_callee(ciMethod* callee_method,
71 JVMState* caller_jvms,
72 int caller_bci);
73 bool try_to_inline(ciMethod* callee_method,
74 ciMethod* caller_method,
75 int caller_bci,
76 JVMState* jvms,
77 ciCallProfile& profile,
78 WarmCallInfo* wci_result,
79 bool& should_delay);
80 bool should_inline(ciMethod* callee_method,
81 ciMethod* caller_method,
82 int caller_bci,
83 ciCallProfile& profile,
84 WarmCallInfo* wci_result);
85 bool should_not_inline(ciMethod* callee_method,
86 ciMethod* caller_method,
87 JVMState* jvms,
88 WarmCallInfo* wci_result);
89 void print_inlining(ciMethod* callee_method, int caller_bci,
90 bool success) const;
91
92 InlineTree* caller_tree() const { return _caller_tree; }
93 InlineTree* callee_at(int bci, ciMethod* m) const;
94 int inline_level() const { return stack_depth(); }
95 int stack_depth() const { return _caller_jvms ? _caller_jvms->depth() : 0; }
96 const char* msg() const { return _msg; }
97 void set_msg(const char* msg) { _msg = msg; }
98 public:
99 static const char* check_can_parse(ciMethod* callee);
100
101 static InlineTree* build_inline_tree_root();
102 static InlineTree* find_subtree_from_root(InlineTree* root, JVMState* jvms, ciMethod* callee);
103
104 // For temporary (stack-allocated, stateless) ilts:
105 InlineTree(Compile* c, ciMethod* callee_method, JVMState* caller_jvms, float site_invoke_ratio, int max_inline_level);
106
107 // InlineTree enum
108 enum InlineStyle {
109 Inline_do_not_inline = 0, //
110 Inline_cha_is_monomorphic = 1, //
|
70 InlineTree *build_inline_tree_for_callee(ciMethod* callee_method,
71 JVMState* caller_jvms,
72 int caller_bci);
73 bool try_to_inline(ciMethod* callee_method,
74 ciMethod* caller_method,
75 int caller_bci,
76 JVMState* jvms,
77 ciCallProfile& profile,
78 WarmCallInfo* wci_result,
79 bool& should_delay);
80 bool should_inline(ciMethod* callee_method,
81 ciMethod* caller_method,
82 int caller_bci,
83 ciCallProfile& profile,
84 WarmCallInfo* wci_result);
85 bool should_not_inline(ciMethod* callee_method,
86 ciMethod* caller_method,
87 JVMState* jvms,
88 WarmCallInfo* wci_result);
89 void print_inlining(ciMethod* callee_method, int caller_bci,
90 ciMethod* caller_method, bool success) const;
91
92 InlineTree* caller_tree() const { return _caller_tree; }
93 InlineTree* callee_at(int bci, ciMethod* m) const;
94 int inline_level() const { return stack_depth(); }
95 int stack_depth() const { return _caller_jvms ? _caller_jvms->depth() : 0; }
96 const char* msg() const { return _msg; }
97 void set_msg(const char* msg) { _msg = msg; }
98 public:
99 static const char* check_can_parse(ciMethod* callee);
100
101 static InlineTree* build_inline_tree_root();
102 static InlineTree* find_subtree_from_root(InlineTree* root, JVMState* jvms, ciMethod* callee);
103
104 // For temporary (stack-allocated, stateless) ilts:
105 InlineTree(Compile* c, ciMethod* callee_method, JVMState* caller_jvms, float site_invoke_ratio, int max_inline_level);
106
107 // InlineTree enum
108 enum InlineStyle {
109 Inline_do_not_inline = 0, //
110 Inline_cha_is_monomorphic = 1, //
|