< prev index next >

src/hotspot/share/opto/parse.hpp

Print this page




 535   Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
 536 
 537   // implementation of jsr/ret
 538   void do_jsr();
 539   void do_ret();
 540 
 541   float   dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test);
 542   float   branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test);
 543   bool    seems_never_taken(float prob) const;
 544   bool    path_is_suitable_for_uncommon_trap(float prob) const;
 545   bool    seems_stable_comparison() const;
 546 
 547   void    do_ifnull(BoolTest::mask btest, Node* c);
 548   void    do_if(BoolTest::mask btest, Node* c);
 549   int     repush_if_args();
 550   void    adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
 551                               Block* path, Block* other_path);
 552   void    sharpen_type_after_if(BoolTest::mask btest,
 553                                 Node* con, const Type* tcon,
 554                                 Node* val, const Type* tval);
 555   IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
 556   Node*   jump_if_join(Node* iffalse, Node* iftrue);
 557   void    jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
 558   void    jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
 559   void    jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
 560 
 561   friend class SwitchRange;
 562   void    do_tableswitch();
 563   void    do_lookupswitch();
 564   void    jump_switch_ranges(Node* a, SwitchRange* lo, SwitchRange* hi, int depth = 0);
 565   bool    create_jump_tables(Node* a, SwitchRange* lo, SwitchRange* hi);

 566 
 567   void decrement_age();
 568   // helper functions for methodData style profiling
 569   void test_counter_against_threshold(Node* cnt, int limit);
 570   void increment_and_test_invocation_counter(int limit);
 571   void test_for_osr_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, int limit);
 572   Node* method_data_addressing(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
 573   void increment_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
 574   void set_md_flag_at(ciMethodData* md, ciProfileData* data, int flag_constant);
 575 
 576   void profile_method_entry();
 577   void profile_taken_branch(int target_bci, bool force_update = false);
 578   void profile_not_taken_branch(bool force_update = false);
 579   void profile_call(Node* receiver);
 580   void profile_generic_call();
 581   void profile_receiver_type(Node* receiver);
 582   void profile_ret(int target_bci);
 583   void profile_null_checkcast();
 584   void profile_switch_case(int table_index);
 585 




 535   Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
 536 
 537   // implementation of jsr/ret
 538   void do_jsr();
 539   void do_ret();
 540 
 541   float   dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test);
 542   float   branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test);
 543   bool    seems_never_taken(float prob) const;
 544   bool    path_is_suitable_for_uncommon_trap(float prob) const;
 545   bool    seems_stable_comparison() const;
 546 
 547   void    do_ifnull(BoolTest::mask btest, Node* c);
 548   void    do_if(BoolTest::mask btest, Node* c);
 549   int     repush_if_args();
 550   void    adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
 551                               Block* path, Block* other_path);
 552   void    sharpen_type_after_if(BoolTest::mask btest,
 553                                 Node* con, const Type* tcon,
 554                                 Node* val, const Type* tval);
 555   IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask, float prob, float cnt);
 556   Node*   jump_if_join(Node* iffalse, Node* iftrue);
 557   void    jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index, bool unc);
 558   void    jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index, bool unc);
 559   void    jump_if_always_fork(int dest_bci_if_true, int prof_table_index, bool unc);
 560 
 561   friend class SwitchRange;
 562   void    do_tableswitch();
 563   void    do_lookupswitch();
 564   void    jump_switch_ranges(Node* a, SwitchRange* lo, SwitchRange* hi, int depth = 0);
 565   bool    create_jump_tables(Node* a, SwitchRange* lo, SwitchRange* hi);
 566   void    linear_search_switch_ranges(Node* key_val, SwitchRange*& lo, SwitchRange*& hi);
 567 
 568   void decrement_age();
 569   // helper functions for methodData style profiling
 570   void test_counter_against_threshold(Node* cnt, int limit);
 571   void increment_and_test_invocation_counter(int limit);
 572   void test_for_osr_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, int limit);
 573   Node* method_data_addressing(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
 574   void increment_md_counter_at(ciMethodData* md, ciProfileData* data, ByteSize offset, Node* idx = NULL, uint stride = 0);
 575   void set_md_flag_at(ciMethodData* md, ciProfileData* data, int flag_constant);
 576 
 577   void profile_method_entry();
 578   void profile_taken_branch(int target_bci, bool force_update = false);
 579   void profile_not_taken_branch(bool force_update = false);
 580   void profile_call(Node* receiver);
 581   void profile_generic_call();
 582   void profile_receiver_type(Node* receiver);
 583   void profile_ret(int target_bci);
 584   void profile_null_checkcast();
 585   void profile_switch_case(int table_index);
 586 


< prev index next >