874 bool is_scaled_iv(Node* exp, Node* iv, int* p_scale); |
874 bool is_scaled_iv(Node* exp, Node* iv, int* p_scale); |
875 |
875 |
876 // Return true if exp is a scaled induction var plus (or minus) constant |
876 // Return true if exp is a scaled induction var plus (or minus) constant |
877 bool is_scaled_iv_plus_offset(Node* exp, Node* iv, int* p_scale, Node** p_offset, int depth = 0); |
877 bool is_scaled_iv_plus_offset(Node* exp, Node* iv, int* p_scale, Node** p_offset, int depth = 0); |
878 |
878 |
879 // Return true if proj is for "proj->[region->..]call_uct" |
|
880 static bool is_uncommon_trap_proj(ProjNode* proj, Deoptimization::DeoptReason reason); |
|
881 // Return true for "if(test)-> proj -> ... |
|
882 // | |
|
883 // V |
|
884 // other_proj->[region->..]call_uct" |
|
885 static bool is_uncommon_trap_if_pattern(ProjNode* proj, Deoptimization::DeoptReason reason); |
|
886 // Create a new if above the uncommon_trap_if_pattern for the predicate to be promoted |
879 // Create a new if above the uncommon_trap_if_pattern for the predicate to be promoted |
887 ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, |
880 ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, |
888 Deoptimization::DeoptReason reason); |
881 Deoptimization::DeoptReason reason); |
889 void register_control(Node* n, IdealLoopTree *loop, Node* pred); |
882 void register_control(Node* n, IdealLoopTree *loop, Node* pred); |
890 |
883 |