src/share/vm/ci/ciMethodData.hpp

Print this page




   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  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 class ciBitData;
  26 class ciCounterData;
  27 class ciJumpData;
  28 class ciReceiverTypeData;
  29 class ciRetData;
  30 class ciBranchData;
  31 class ciArrayData;
  32 class ciMultiBranchData;
  33 class ciArgInfoData;
  34 
  35 typedef ProfileData ciProfileData;
  36 
  37 class ciBitData : public BitData {
  38 public:
  39   ciBitData(DataLayout* layout) : BitData(layout) {};
  40 };
  41 
  42 class ciCounterData : public CounterData {
  43 public:
  44   ciCounterData(DataLayout* layout) : CounterData(layout) {};


 294   void set_arg_local(int i);
 295   void set_arg_stack(int i);
 296   void set_arg_returned(int i);
 297   void set_arg_modified(int arg, uint val);
 298 
 299   bool is_arg_local(int i) const;
 300   bool is_arg_stack(int i) const;
 301   bool is_arg_returned(int i) const;
 302   uint arg_modified(int arg) const;
 303 
 304   // Code generation helper
 305   ByteSize offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data);
 306   int      byte_offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data) { return in_bytes(offset_of_slot(data, slot_offset_in_data)); }
 307 
 308 #ifndef PRODUCT
 309   // printing support for method data
 310   void print();
 311   void print_data_on(outputStream* st);
 312 #endif
 313 };




   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  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_CI_CIMETHODDATA_HPP
  26 #define SHARE_VM_CI_CIMETHODDATA_HPP
  27 
  28 #include "ci/ciClassList.hpp"
  29 #include "ci/ciKlass.hpp"
  30 #include "ci/ciObject.hpp"
  31 #include "ci/ciUtilities.hpp"
  32 #include "oops/methodDataOop.hpp"
  33 #include "oops/oop.inline.hpp"
  34 
  35 class ciBitData;
  36 class ciCounterData;
  37 class ciJumpData;
  38 class ciReceiverTypeData;
  39 class ciRetData;
  40 class ciBranchData;
  41 class ciArrayData;
  42 class ciMultiBranchData;
  43 class ciArgInfoData;
  44 
  45 typedef ProfileData ciProfileData;
  46 
  47 class ciBitData : public BitData {
  48 public:
  49   ciBitData(DataLayout* layout) : BitData(layout) {};
  50 };
  51 
  52 class ciCounterData : public CounterData {
  53 public:
  54   ciCounterData(DataLayout* layout) : CounterData(layout) {};


 304   void set_arg_local(int i);
 305   void set_arg_stack(int i);
 306   void set_arg_returned(int i);
 307   void set_arg_modified(int arg, uint val);
 308 
 309   bool is_arg_local(int i) const;
 310   bool is_arg_stack(int i) const;
 311   bool is_arg_returned(int i) const;
 312   uint arg_modified(int arg) const;
 313 
 314   // Code generation helper
 315   ByteSize offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data);
 316   int      byte_offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data) { return in_bytes(offset_of_slot(data, slot_offset_in_data)); }
 317 
 318 #ifndef PRODUCT
 319   // printing support for method data
 320   void print();
 321   void print_data_on(outputStream* st);
 322 #endif
 323 };
 324 
 325 #endif // SHARE_VM_CI_CIMETHODDATA_HPP