src/share/vm/opto/opaquenode.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/opaquenode.hpp

src/share/vm/opto/opaquenode.hpp

Print this page
rev 7652 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: ?
rev 7653 : [mq]: branch.freq.1

*** 85,91 **** --- 85,114 ---- Opaque3Node(Compile* C, Node *n, int opt) : Opaque2Node(C, n), _opt(opt) {} virtual int Opcode() const; bool rtm_opt() const { return (_opt == RTM_OPT); } }; + //------------------------------ProfileBranchNode------------------------------- + // The node can store branch frequencies during parsing. + // Once parsing is over, the node goes away (during IGVN). + class ProfileBranchNode : public Node { + uint _taken; + uint _not_taken; + bool _consumed; + bool _delay_removal; + virtual uint hash() const ; // { return NO_HASH; } + virtual uint cmp( const Node &n ) const; + public: + ProfileBranchNode(Node *n, uint taken, uint not_taken) : Node(0, n), + _taken(taken), _not_taken(not_taken), _delay_removal(true), _consumed(false) {} + virtual int Opcode() const; + uint taken() const { return _taken; } + uint not_taken() const { return _not_taken; } + void consume() { _consumed = true; } + + virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); + virtual Node *Identity(PhaseTransform *phase); + virtual const Type *bottom_type() const { return TypeInt::INT; } + }; + #endif // SHARE_VM_OPTO_OPAQUENODE_HPP
src/share/vm/opto/opaquenode.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File