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 7387 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: ?
*** 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); }
};
+ //------------------------------Opaque4Node------------------------------------
+ // The node can store branch frequencies during parsing.
+ // Once parsing is over, the node goes away (during IGVN).
+ class Opaque4Node : 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:
+ Opaque4Node(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