564 void do_ifnull(BoolTest::mask btest, Node* c);
565 void do_if(BoolTest::mask btest, Node* c);
566 int repush_if_args();
567 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
568 Block* path, Block* other_path);
569 void sharpen_type_after_if(BoolTest::mask btest,
570 Node* con, const Type* tcon,
571 Node* val, const Type* tval);
572 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
573 Node* jump_if_join(Node* iffalse, Node* iftrue);
574 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
575 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
576 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
577
578 friend class SwitchRange;
579 void do_tableswitch();
580 void do_lookupswitch();
581 void jump_switch_ranges(Node* a, SwitchRange* lo, SwitchRange* hi, int depth = 0);
582 bool create_jump_tables(Node* a, SwitchRange* lo, SwitchRange* hi);
583
584 // helper functions for methodData style profiling
585 void test_counter_against_threshold(Node* cnt, int limit);
586 void increment_and_test_invocation_counter(int limit);
587 void test_for_osr_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, int limit);
588 Node* method_data_addressing(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
589 void increment_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
590 void set_md_flag_at(ciMethodData* md, ciProfileData* data, int flag_constant);
591
592 void profile_method_entry();
593 void profile_taken_branch(int target_bci, bool force_update = false);
594 void profile_not_taken_branch(bool force_update = false);
595 void profile_call(Node* receiver);
596 void profile_generic_call();
597 void profile_receiver_type(Node* receiver);
598 void profile_ret(int target_bci);
599 void profile_null_checkcast();
600 void profile_switch_case(int table_index);
601
602 // helper function for call statistics
603 void count_compiled_calls(bool at_method_entry, bool is_inline) PRODUCT_RETURN;
|
564 void do_ifnull(BoolTest::mask btest, Node* c);
565 void do_if(BoolTest::mask btest, Node* c);
566 int repush_if_args();
567 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
568 Block* path, Block* other_path);
569 void sharpen_type_after_if(BoolTest::mask btest,
570 Node* con, const Type* tcon,
571 Node* val, const Type* tval);
572 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
573 Node* jump_if_join(Node* iffalse, Node* iftrue);
574 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
575 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
576 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
577
578 friend class SwitchRange;
579 void do_tableswitch();
580 void do_lookupswitch();
581 void jump_switch_ranges(Node* a, SwitchRange* lo, SwitchRange* hi, int depth = 0);
582 bool create_jump_tables(Node* a, SwitchRange* lo, SwitchRange* hi);
583
584 void decrement_age();
585 // helper functions for methodData style profiling
586 void test_counter_against_threshold(Node* cnt, int limit);
587 void increment_and_test_invocation_counter(int limit);
588 void test_for_osr_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, int limit);
589 Node* method_data_addressing(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
590 void increment_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
591 void set_md_flag_at(ciMethodData* md, ciProfileData* data, int flag_constant);
592
593 void profile_method_entry();
594 void profile_taken_branch(int target_bci, bool force_update = false);
595 void profile_not_taken_branch(bool force_update = false);
596 void profile_call(Node* receiver);
597 void profile_generic_call();
598 void profile_receiver_type(Node* receiver);
599 void profile_ret(int target_bci);
600 void profile_null_checkcast();
601 void profile_switch_case(int table_index);
602
603 // helper function for call statistics
604 void count_compiled_calls(bool at_method_entry, bool is_inline) PRODUCT_RETURN;
|