Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/callGenerator.hpp
          +++ new/src/share/vm/opto/callGenerator.hpp
   1    1  /*
   2      - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
        2 + * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
   3    3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4    4   *
   5    5   * This code is free software; you can redistribute it and/or modify it
   6    6   * under the terms of the GNU General Public License version 2 only, as
   7    7   * published by the Free Software Foundation.
   8    8   *
   9    9   * This code is distributed in the hope that it will be useful, but WITHOUT
  10   10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11   11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12   12   * version 2 for more details (a copy is included in the LICENSE file that
↓ open down ↓ 91 lines elided ↑ open up ↑
 104  104    // How to generate a call site that is inlined:
 105  105    static CallGenerator* for_inline(ciMethod* m, float expected_uses = -1);
 106  106    // How to generate code for an on-stack replacement handler.
 107  107    static CallGenerator* for_osr(ciMethod* m, int osr_bci);
 108  108  
 109  109    // How to generate vanilla out-of-line call sites:
 110  110    static CallGenerator* for_direct_call(ciMethod* m, bool separate_io_projs = false);   // static, special
 111  111    static CallGenerator* for_dynamic_call(ciMethod* m);   // invokedynamic
 112  112    static CallGenerator* for_virtual_call(ciMethod* m, int vtable_index);  // virtual, interface
 113  113  
 114      -  static CallGenerator* for_method_handle_inline(Node* method_handle, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
      114 +  static CallGenerator* for_method_handle_inline(Node* method_handle,   JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
      115 +  static CallGenerator* for_invokedynamic_inline(ciCallSite* call_site, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
 115  116  
 116  117    // How to generate a replace a direct call with an inline version
 117  118    static CallGenerator* for_late_inline(ciMethod* m, CallGenerator* inline_cg);
 118  119  
 119  120    // How to make a call but defer the decision whether to inline or not.
 120  121    static CallGenerator* for_warm_call(WarmCallInfo* ci,
 121  122                                        CallGenerator* if_cold,
 122  123                                        CallGenerator* if_hot);
 123  124  
 124  125    // How to make a call that optimistically assumes a receiver type:
↓ open down ↓ 183 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX