src/share/vm/c1/c1_Instruction.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6986046-fallout Sdiff src/share/vm/c1

src/share/vm/c1/c1_Instruction.hpp

Print this page




2229     , _known_holder(known_holder)
2230   {
2231     // The ProfileCall has side-effects and must occur precisely where located
2232     pin();
2233   }
2234 
2235   ciMethod* method()      { return _method; }
2236   int bci_of_invoke()     { return _bci_of_invoke; }
2237   Value recv()            { return _recv; }
2238   ciKlass* known_holder() { return _known_holder; }
2239 
2240   virtual void input_values_do(ValueVisitor* f)   { if (_recv != NULL) f->visit(&_recv); }
2241 };
2242 
2243 // Use to trip invocation counter of an inlined method
2244 
2245 LEAF(ProfileInvoke, Instruction)
2246  private:
2247   ciMethod*   _inlinee;
2248   ValueStack* _state;
2249   int         _bci_of_invoke;
2250 
2251  public:
2252   ProfileInvoke(ciMethod* inlinee,  ValueStack* state, int bci)
2253     : Instruction(voidType)
2254     , _inlinee(inlinee)
2255     , _bci_of_invoke(bci)
2256     , _state(state)
2257   {
2258     // The ProfileInvoke has side-effects and must occur precisely where located QQQ???
2259     pin();
2260   }
2261 
2262   ciMethod* inlinee()      { return _inlinee; }
2263   ValueStack* state()      { return _state; }
2264   int bci_of_invoke()      { return _bci_of_invoke; }
2265   virtual void input_values_do(ValueVisitor*)   {}
2266   virtual void state_values_do(ValueVisitor*);
2267 };
2268 
2269 class BlockPair: public CompilationResourceObj {
2270  private:
2271   BlockBegin* _from;
2272   BlockBegin* _to;
2273  public:
2274   BlockPair(BlockBegin* from, BlockBegin* to): _from(from), _to(to) {}
2275   BlockBegin* from() const { return _from; }
2276   BlockBegin* to() const   { return _to;   }
2277   bool is_same(BlockBegin* from, BlockBegin* to) const { return  _from == from && _to == to; }
2278   bool is_same(BlockPair* p) const { return  _from == p->from() && _to == p->to(); }
2279   void set_to(BlockBegin* b)   { _to = b; }
2280   void set_from(BlockBegin* b) { _from = b; }
2281 };
2282 
2283 
2284 define_array(BlockPairArray, BlockPair*)


2229     , _known_holder(known_holder)
2230   {
2231     // The ProfileCall has side-effects and must occur precisely where located
2232     pin();
2233   }
2234 
2235   ciMethod* method()      { return _method; }
2236   int bci_of_invoke()     { return _bci_of_invoke; }
2237   Value recv()            { return _recv; }
2238   ciKlass* known_holder() { return _known_holder; }
2239 
2240   virtual void input_values_do(ValueVisitor* f)   { if (_recv != NULL) f->visit(&_recv); }
2241 };
2242 
2243 // Use to trip invocation counter of an inlined method
2244 
2245 LEAF(ProfileInvoke, Instruction)
2246  private:
2247   ciMethod*   _inlinee;
2248   ValueStack* _state;

2249 
2250  public:
2251   ProfileInvoke(ciMethod* inlinee,  ValueStack* state)
2252     : Instruction(voidType)
2253     , _inlinee(inlinee)

2254     , _state(state)
2255   {
2256     // The ProfileInvoke has side-effects and must occur precisely where located QQQ???
2257     pin();
2258   }
2259 
2260   ciMethod* inlinee()      { return _inlinee; }
2261   ValueStack* state()      { return _state; }

2262   virtual void input_values_do(ValueVisitor*)   {}
2263   virtual void state_values_do(ValueVisitor*);
2264 };
2265 
2266 class BlockPair: public CompilationResourceObj {
2267  private:
2268   BlockBegin* _from;
2269   BlockBegin* _to;
2270  public:
2271   BlockPair(BlockBegin* from, BlockBegin* to): _from(from), _to(to) {}
2272   BlockBegin* from() const { return _from; }
2273   BlockBegin* to() const   { return _to;   }
2274   bool is_same(BlockBegin* from, BlockBegin* to) const { return  _from == from && _to == to; }
2275   bool is_same(BlockPair* p) const { return  _from == p->from() && _to == p->to(); }
2276   void set_to(BlockBegin* b)   { _to = b; }
2277   void set_from(BlockBegin* b) { _from = b; }
2278 };
2279 
2280 
2281 define_array(BlockPairArray, BlockPair*)
src/share/vm/c1/c1_Instruction.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File