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