1.1 --- a/src/share/vm/opto/parse.hpp Fri Jan 08 13:47:01 2010 -0800 1.2 +++ b/src/share/vm/opto/parse.hpp Fri Jan 08 13:58:49 2010 -0800 1.3 @@ -39,6 +39,7 @@ 1.4 // Always between 0.0 and 1.0. Represents the percentage of the method's 1.5 // total execution time used at this call site. 1.6 const float _site_invoke_ratio; 1.7 + const int _site_depth_adjust; 1.8 float compute_callee_frequency( int caller_bci ) const; 1.9 1.10 GrowableArray<InlineTree*> _subtrees; 1.11 @@ -50,7 +51,8 @@ 1.12 ciMethod* callee_method, 1.13 JVMState* caller_jvms, 1.14 int caller_bci, 1.15 - float site_invoke_ratio); 1.16 + float site_invoke_ratio, 1.17 + int site_depth_adjust); 1.18 InlineTree *build_inline_tree_for_callee(ciMethod* callee_method, 1.19 JVMState* caller_jvms, 1.20 int caller_bci); 1.21 @@ -61,14 +63,15 @@ 1.22 1.23 InlineTree *caller_tree() const { return _caller_tree; } 1.24 InlineTree* callee_at(int bci, ciMethod* m) const; 1.25 - int inline_depth() const { return _caller_jvms ? _caller_jvms->depth() : 0; } 1.26 + int inline_depth() const { return stack_depth() + _site_depth_adjust; } 1.27 + int stack_depth() const { return _caller_jvms ? _caller_jvms->depth() : 0; } 1.28 1.29 public: 1.30 static InlineTree* build_inline_tree_root(); 1.31 static InlineTree* find_subtree_from_root(InlineTree* root, JVMState* jvms, ciMethod* callee, bool create_if_not_found = false); 1.32 1.33 // For temporary (stack-allocated, stateless) ilts: 1.34 - InlineTree(Compile* c, ciMethod* callee_method, JVMState* caller_jvms, float site_invoke_ratio); 1.35 + InlineTree(Compile* c, ciMethod* callee_method, JVMState* caller_jvms, float site_invoke_ratio, int site_depth_adjust); 1.36 1.37 // InlineTree enum 1.38 enum InlineStyle {