src/share/vm/opto/cfgnode.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/cfgnode.hpp Thu Feb 19 16:21:11 2015
--- new/src/share/vm/opto/cfgnode.hpp Thu Feb 19 16:21:11 2015
*** 261,270 ****
--- 261,291 ----
// Output selected Control, based on a boolean test
class IfNode : public MultiBranchNode {
// Size is bigger to hold the probability field. However, _prob does not
// change the semantics so it does not appear in the hash & cmp functions.
virtual uint size_of() const { return sizeof(*this); }
+
+ private:
+ ProjNode* range_check_trap_proj(int& flip, Node*& l, Node*& r);
+ ProjNode* range_check_trap_proj() {
+ int flip_test = 0;
+ Node* l = NULL;
+ Node* r = NULL;
+ return range_check_trap_proj(flip_test, l, r);
+ }
+
+ // Helper methods for fold_compares
+ bool cmpi_if(PhaseIterGVN* igvn);
+ bool proj_cmpi_with(Node* ctrl, PhaseIterGVN* igvn);
+ bool shared_region(ProjNode* proj, ProjNode*& success, ProjNode*& fail);
+ bool uncommon_traps(ProjNode* proj, ProjNode*& success, ProjNode*& fail, PhaseIterGVN* igvn);
+ static void merge_uncommon_traps(ProjNode* proj, ProjNode* success, PhaseIterGVN* igvn);
+ bool side_effect_free(ProjNode* proj, PhaseIterGVN* igvn);
+ void reroute_side_effect_free_unc(ProjNode* proj, ProjNode* dom_proj, PhaseIterGVN* igvn);
+ ProjNode* uncommon_trap_proj(CallStaticJavaNode*& call) const;
+ bool fold_compares_helper(ProjNode* proj, ProjNode* success, ProjNode* fail, PhaseIterGVN* igvn);
+
public:
// Degrees of branch prediction probability by order of magnitude:
// PROB_UNLIKELY_1e(N) is a 1 in 1eN chance.
// PROB_LIKELY_1e(N) is a 1 - PROB_UNLIKELY_1e(N)
*** 346,356 ****
--- 367,377 ----
virtual const Type *Value( PhaseTransform *phase ) const;
virtual int required_outcnt() const { return 2; }
virtual const RegMask &out_RegMask() const;
void dominated_by(Node* prev_dom, PhaseIterGVN* igvn);
int is_range_check(Node* &range, Node* &index, jint &offset);
! Node* fold_compares(PhaseGVN* phase);
! Node* fold_compares(PhaseIterGVN* phase);
static Node* up_one_dom(Node* curr, bool linear_only = false);
// Takes the type of val and filters it through the test represented
// by if_proj and returns a more refined type if one is produced.
// Returns NULL is it couldn't improve the type.
src/share/vm/opto/cfgnode.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File