266 Instruction* append_with_bci(Instruction* instr, int bci);
267 Instruction* append(Instruction* instr);
268 Instruction* append_split(StateSplit* instr);
269
270 // other helpers
271 static bool is_initialized() { return _is_initialized; }
272 static bool is_async(Bytecodes::Code code) {
273 assert(0 <= code && code < Bytecodes::number_of_java_codes, "illegal bytecode");
274 return _is_async[code];
275 }
276 BlockBegin* block_at(int bci) { return scope_data()->block_at(bci); }
277 XHandlers* handle_exception(int bci);
278 void connect_to_end(BlockBegin* beg);
279 void null_check(Value value);
280 void eliminate_redundant_phis(BlockBegin* start);
281 BlockEnd* iterate_bytecodes_for_block(int bci);
282 void iterate_all_blocks(bool start_in_current_block_for_inlining = false);
283 Dependencies* dependency_recorder() const; // = compilation()->dependencies()
284 bool direct_compare(ciKlass* k);
285
286 void kill_field(ciField* field);
287 void kill_array(Value value);
288 void kill_all();
289
290 ValueStack* lock_stack();
291
292 //
293 // Inlining support
294 //
295
296 // accessors
297 bool parsing_jsr() const { return scope_data()->parsing_jsr(); }
298 BlockBegin* continuation() const { return scope_data()->continuation(); }
299 ValueStack* continuation_state() const { return scope_data()->continuation_state(); }
300 BlockBegin* jsr_continuation() const { return scope_data()->jsr_continuation(); }
301 int caller_stack_size() const { return scope_data()->caller_stack_size(); }
302 void set_continuation(BlockBegin* continuation) { scope_data()->set_continuation(continuation); }
303 void set_inline_cleanup_info(BlockBegin* block,
304 Instruction* return_prev,
305 ValueStack* return_state) { scope_data()->set_inline_cleanup_info(block,
306 return_prev,
307 return_state); }
|
266 Instruction* append_with_bci(Instruction* instr, int bci);
267 Instruction* append(Instruction* instr);
268 Instruction* append_split(StateSplit* instr);
269
270 // other helpers
271 static bool is_initialized() { return _is_initialized; }
272 static bool is_async(Bytecodes::Code code) {
273 assert(0 <= code && code < Bytecodes::number_of_java_codes, "illegal bytecode");
274 return _is_async[code];
275 }
276 BlockBegin* block_at(int bci) { return scope_data()->block_at(bci); }
277 XHandlers* handle_exception(int bci);
278 void connect_to_end(BlockBegin* beg);
279 void null_check(Value value);
280 void eliminate_redundant_phis(BlockBegin* start);
281 BlockEnd* iterate_bytecodes_for_block(int bci);
282 void iterate_all_blocks(bool start_in_current_block_for_inlining = false);
283 Dependencies* dependency_recorder() const; // = compilation()->dependencies()
284 bool direct_compare(ciKlass* k);
285
286 void kill_all();
287
288 ValueStack* lock_stack();
289
290 //
291 // Inlining support
292 //
293
294 // accessors
295 bool parsing_jsr() const { return scope_data()->parsing_jsr(); }
296 BlockBegin* continuation() const { return scope_data()->continuation(); }
297 ValueStack* continuation_state() const { return scope_data()->continuation_state(); }
298 BlockBegin* jsr_continuation() const { return scope_data()->jsr_continuation(); }
299 int caller_stack_size() const { return scope_data()->caller_stack_size(); }
300 void set_continuation(BlockBegin* continuation) { scope_data()->set_continuation(continuation); }
301 void set_inline_cleanup_info(BlockBegin* block,
302 Instruction* return_prev,
303 ValueStack* return_state) { scope_data()->set_inline_cleanup_info(block,
304 return_prev,
305 return_state); }
|