src/share/vm/shark/sharkFunction.hpp

Print this page
rev 3810 : [mq]: shark.patch


  74   }
  75   int block_count() const {
  76     return flow()->block_count();
  77   }
  78   SharkTopLevelBlock* block(int i) const {
  79     assert(i < block_count(), "should be");
  80     return _blocks[i];
  81   }
  82   GrowableArray<DeferredZeroCheck*>* deferred_zero_checks() {
  83     return &_deferred_zero_checks;
  84   }
  85   SharkStack* stack() const {
  86     return _stack;
  87   }
  88 
  89   // On-stack replacement
  90  private:
  91   bool is_osr() const {
  92     return flow()->is_osr_flow();
  93   }
  94   const llvm::FunctionType* entry_point_type() const {
  95     if (is_osr())
  96       return SharkType::osr_entry_point_type();
  97     else
  98       return SharkType::entry_point_type();
  99   }
 100 
 101   // Block management
 102  private:
 103   llvm::BasicBlock* _block_insertion_point;
 104 
 105   void set_block_insertion_point(llvm::BasicBlock* block_insertion_point) {
 106     _block_insertion_point = block_insertion_point;
 107   }
 108   llvm::BasicBlock* block_insertion_point() const {
 109     return _block_insertion_point;
 110   }
 111 
 112  public:
 113   llvm::BasicBlock* CreateBlock(const char* name = "") const {
 114     return llvm::BasicBlock::Create(


  74   }
  75   int block_count() const {
  76     return flow()->block_count();
  77   }
  78   SharkTopLevelBlock* block(int i) const {
  79     assert(i < block_count(), "should be");
  80     return _blocks[i];
  81   }
  82   GrowableArray<DeferredZeroCheck*>* deferred_zero_checks() {
  83     return &_deferred_zero_checks;
  84   }
  85   SharkStack* stack() const {
  86     return _stack;
  87   }
  88 
  89   // On-stack replacement
  90  private:
  91   bool is_osr() const {
  92     return flow()->is_osr_flow();
  93   }
  94   llvm::FunctionType* entry_point_type() const {
  95     if (is_osr())
  96       return SharkType::osr_entry_point_type();
  97     else
  98       return SharkType::entry_point_type();
  99   }
 100 
 101   // Block management
 102  private:
 103   llvm::BasicBlock* _block_insertion_point;
 104 
 105   void set_block_insertion_point(llvm::BasicBlock* block_insertion_point) {
 106     _block_insertion_point = block_insertion_point;
 107   }
 108   llvm::BasicBlock* block_insertion_point() const {
 109     return _block_insertion_point;
 110   }
 111 
 112  public:
 113   llvm::BasicBlock* CreateBlock(const char* name = "") const {
 114     return llvm::BasicBlock::Create(