hotspot/src/share/vm/ci/ciMethod.hpp
changeset 21099 46e6bbecd9e5
parent 20695 4f5a5e95090b
child 22243 91944eab7b92
equal deleted inserted replaced
21098:1820670a3362 21099:46e6bbecd9e5
   114     Bytecodes::check(code);
   114     Bytecodes::check(code);
   115     assert(0 <= bci && bci < code_size(), "valid bci");
   115     assert(0 <= bci && bci < code_size(), "valid bci");
   116     address bcp = _code + bci;
   116     address bcp = _code + bci;
   117     *bcp = code;
   117     *bcp = code;
   118   }
   118   }
       
   119 
       
   120   // Check bytecode and profile data collected are compatible
       
   121   void assert_virtual_call_type_ok(int bci);
       
   122   void assert_call_type_ok(int bci);
   119 
   123 
   120  public:
   124  public:
   121   // Basic method information.
   125   // Basic method information.
   122   ciFlags flags() const                          { check_is_loaded(); return _flags; }
   126   ciFlags flags() const                          { check_is_loaded(); return _flags; }
   123   ciSymbol* name() const                         { return _name; }
   127   ciSymbol* name() const                         { return _name; }
   227 
   231 
   228   ciTypeFlow*   get_flow_analysis();
   232   ciTypeFlow*   get_flow_analysis();
   229   ciTypeFlow*   get_osr_flow_analysis(int osr_bci);  // alternate entry point
   233   ciTypeFlow*   get_osr_flow_analysis(int osr_bci);  // alternate entry point
   230   ciCallProfile call_profile_at_bci(int bci);
   234   ciCallProfile call_profile_at_bci(int bci);
   231   int           interpreter_call_site_count(int bci);
   235   int           interpreter_call_site_count(int bci);
       
   236 
       
   237   // Does type profiling provide a useful type at this point?
       
   238   ciKlass*      argument_profiled_type(int bci, int i);
       
   239   ciKlass*      parameter_profiled_type(int i);
       
   240   ciKlass*      return_profiled_type(int bci);
   232 
   241 
   233   ciField*      get_field_at_bci( int bci, bool &will_link);
   242   ciField*      get_field_at_bci( int bci, bool &will_link);
   234   ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
   243   ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
   235 
   244 
   236   // Given a certain calling environment, find the monomorphic target
   245   // Given a certain calling environment, find the monomorphic target