< prev index next >

src/share/vm/oops/methodData.hpp

Print this page




  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_METHODDATAOOP_HPP
  26 #define SHARE_VM_OOPS_METHODDATAOOP_HPP
  27 
  28 #include "interpreter/bytecodes.hpp"
  29 #include "memory/universe.hpp"
  30 #include "oops/method.hpp"
  31 #include "oops/oop.hpp"
  32 #include "runtime/orderAccess.hpp"

  33 #if INCLUDE_JVMCI
  34 #include "jvmci/jvmci_globals.hpp"
  35 #endif
  36 
  37 class BytecodeStream;
  38 class KlassSizeStats;
  39 
  40 // The MethodData object collects counts and other profile information
  41 // during zeroth-tier (interpretive) and first-tier execution.
  42 // The profile is used later by compilation heuristics.  Some heuristics
  43 // enable use of aggressive (or "heroic") optimizations.  An aggressive
  44 // optimization often has a down-side, a corner case that it handles
  45 // poorly, but which is thought to be rare.  The profile provides
  46 // evidence of this rarity for a given method or even BCI.  It allows
  47 // the compiler to back out of the optimization at places where it
  48 // has historically been a poor choice.  Other heuristics try to use
  49 // specific information gathered about types observed at a given site.
  50 //
  51 // All data in the profile is approximate.  It is expected to be accurate
  52 // on the whole, but the system expects occasional inaccuraces, due to




  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_METHODDATAOOP_HPP
  26 #define SHARE_VM_OOPS_METHODDATAOOP_HPP
  27 
  28 #include "interpreter/bytecodes.hpp"
  29 #include "memory/universe.hpp"
  30 #include "oops/method.hpp"
  31 #include "oops/oop.hpp"
  32 #include "runtime/orderAccess.hpp"
  33 #include "utilities/align.hpp"
  34 #if INCLUDE_JVMCI
  35 #include "jvmci/jvmci_globals.hpp"
  36 #endif
  37 
  38 class BytecodeStream;
  39 class KlassSizeStats;
  40 
  41 // The MethodData object collects counts and other profile information
  42 // during zeroth-tier (interpretive) and first-tier execution.
  43 // The profile is used later by compilation heuristics.  Some heuristics
  44 // enable use of aggressive (or "heroic") optimizations.  An aggressive
  45 // optimization often has a down-side, a corner case that it handles
  46 // poorly, but which is thought to be rare.  The profile provides
  47 // evidence of this rarity for a given method or even BCI.  It allows
  48 // the compiler to back out of the optimization at places where it
  49 // has historically been a poor choice.  Other heuristics try to use
  50 // specific information gathered about types observed at a given site.
  51 //
  52 // All data in the profile is approximate.  It is expected to be accurate
  53 // on the whole, but the system expects occasional inaccuraces, due to


< prev index next >