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(
|