320 }
321 BlockBegin* inline_cleanup_block() const { return scope_data()->inline_cleanup_block(); }
322 Instruction* inline_cleanup_return_prev() const { return scope_data()->inline_cleanup_return_prev(); }
323 ValueStack* inline_cleanup_state() const { return scope_data()->inline_cleanup_state(); }
324 void restore_inline_cleanup_info() {
325 _block = inline_cleanup_block();
326 _last = inline_cleanup_return_prev();
327 _state = inline_cleanup_state();
328 }
329 void incr_num_returns() { scope_data()->incr_num_returns(); }
330 int num_returns() const { return scope_data()->num_returns(); }
331 intx max_inline_size() const { return scope_data()->max_inline_size(); }
332 int inline_level() const { return scope()->level(); }
333 int recursive_inline_level(ciMethod* callee) const;
334
335 // inlining of synchronized methods
336 void inline_sync_entry(Value lock, BlockBegin* sync_handler);
337 void fill_sync_handler(Value lock, BlockBegin* sync_handler, bool default_handler = false);
338
339 // inliners
340 bool try_inline( ciMethod* callee, bool holder_known);
341 bool try_inline_intrinsics(ciMethod* callee);
342 bool try_inline_full( ciMethod* callee, bool holder_known, BlockBegin* cont_block = NULL);
343 bool try_inline_jsr(int jsr_dest_bci);
344
345 // JSR 292 support
346 bool for_method_handle_inline(ciMethod* callee);
347 bool for_invokedynamic_inline(ciMethod* callee);
348
349 // helpers
350 void inline_bailout(const char* msg);
351 BlockBegin* header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state);
352 BlockBegin* setup_start_block(int osr_bci, BlockBegin* std_entry, BlockBegin* osr_entry, ValueStack* init_state);
353 void setup_osr_entry_block();
354 void clear_inline_bailout();
355 ValueStack* state_at_entry();
356 void push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start);
357 void push_scope(ciMethod* callee, BlockBegin* continuation);
358 void push_scope_for_jsr(BlockBegin* jsr_continuation, int jsr_dest_bci);
359 void pop_scope();
360 void pop_scope_for_jsr();
361
362 bool append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile);
|
320 }
321 BlockBegin* inline_cleanup_block() const { return scope_data()->inline_cleanup_block(); }
322 Instruction* inline_cleanup_return_prev() const { return scope_data()->inline_cleanup_return_prev(); }
323 ValueStack* inline_cleanup_state() const { return scope_data()->inline_cleanup_state(); }
324 void restore_inline_cleanup_info() {
325 _block = inline_cleanup_block();
326 _last = inline_cleanup_return_prev();
327 _state = inline_cleanup_state();
328 }
329 void incr_num_returns() { scope_data()->incr_num_returns(); }
330 int num_returns() const { return scope_data()->num_returns(); }
331 intx max_inline_size() const { return scope_data()->max_inline_size(); }
332 int inline_level() const { return scope()->level(); }
333 int recursive_inline_level(ciMethod* callee) const;
334
335 // inlining of synchronized methods
336 void inline_sync_entry(Value lock, BlockBegin* sync_handler);
337 void fill_sync_handler(Value lock, BlockBegin* sync_handler, bool default_handler = false);
338
339 // inliners
340 bool try_inline( ciMethod* callee, bool holder_known, bool* do_profiling, Value dynamic_receiver);
341 bool try_inline_intrinsics(ciMethod* callee);
342 bool try_inline_full( ciMethod* callee, bool holder_known, bool* do_profiling, Value dynamic_receiver, BlockBegin* cont_block = NULL);
343 bool try_inline_jsr(int jsr_dest_bci);
344
345 // JSR 292 support
346 bool for_method_handle_inline(ciMethod* callee);
347 bool for_invokedynamic_inline(ciMethod* callee);
348
349 // helpers
350 void inline_bailout(const char* msg);
351 BlockBegin* header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state);
352 BlockBegin* setup_start_block(int osr_bci, BlockBegin* std_entry, BlockBegin* osr_entry, ValueStack* init_state);
353 void setup_osr_entry_block();
354 void clear_inline_bailout();
355 ValueStack* state_at_entry();
356 void push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start);
357 void push_scope(ciMethod* callee, BlockBegin* continuation);
358 void push_scope_for_jsr(BlockBegin* jsr_continuation, int jsr_dest_bci);
359 void pop_scope();
360 void pop_scope_for_jsr();
361
362 bool append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile);
|