< prev index next >
src/share/vm/opto/node.hpp
Print this page
*** 69,78 ****
--- 69,79 ----
class EncodePNode;
class EncodePKlassNode;
class FastLockNode;
class FastUnlockNode;
class IfNode;
+ class IfProjNode;
class IfFalseNode;
class IfTrueNode;
class InitializeNode;
class JVMState;
class JumpNode;
*** 98,107 ****
--- 99,109 ----
class MachReturnNode;
class MachSafePointNode;
class MachSpillCopyNode;
class MachTempNode;
class MachMergeNode;
+ class MachMemBarNode;
class Matcher;
class MemBarNode;
class MemBarStoreStoreNode;
class MemNode;
class MergeMemNode;
*** 129,138 ****
--- 131,141 ----
class RegMask;
class RegionNode;
class RootNode;
class SafePointNode;
class SafePointScalarObjectNode;
+ class ShenandoahBarrierNode;
class StartNode;
class State;
class StoreNode;
class SubNode;
class Type;
*** 451,460 ****
--- 454,465 ----
Node* uncast() const;
// Return whether two Nodes are equivalent, after stripping casting.
bool eqv_uncast(const Node* n) const {
return (this->uncast() == n->uncast());
}
+ // Return true if the current node has an out that matches opcode.
+ bool has_out_with(int opcode);
// Find out of current node that matches opcode.
Node* find_out_with(int opcode);
private:
*** 634,643 ****
--- 639,649 ----
DEFINE_CLASS_ID(MachSpillCopy, Mach, 2)
DEFINE_CLASS_ID(MachTemp, Mach, 3)
DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
DEFINE_CLASS_ID(MachConstant, Mach, 5)
DEFINE_CLASS_ID(MachMerge, Mach, 6)
+ DEFINE_CLASS_ID(MachMemBar, Mach, 7)
DEFINE_CLASS_ID(Type, Node, 2)
DEFINE_CLASS_ID(Phi, Type, 0)
DEFINE_CLASS_ID(ConstraintCast, Type, 1)
DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
*** 648,663 ****
DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)
DEFINE_CLASS_ID(Proj, Node, 3)
DEFINE_CLASS_ID(CatchProj, Proj, 0)
DEFINE_CLASS_ID(JumpProj, Proj, 1)
! DEFINE_CLASS_ID(IfTrue, Proj, 2)
! DEFINE_CLASS_ID(IfFalse, Proj, 3)
DEFINE_CLASS_ID(Parm, Proj, 4)
DEFINE_CLASS_ID(MachProj, Proj, 5)
DEFINE_CLASS_ID(Mem, Node, 4)
DEFINE_CLASS_ID(Load, Mem, 0)
--- 654,671 ----
DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)
+ DEFINE_CLASS_ID(ShenandoahBarrier, Type, 7)
DEFINE_CLASS_ID(Proj, Node, 3)
DEFINE_CLASS_ID(CatchProj, Proj, 0)
DEFINE_CLASS_ID(JumpProj, Proj, 1)
! DEFINE_CLASS_ID(IfProj, Proj, 2)
! DEFINE_CLASS_ID(IfTrue, IfProj, 0)
! DEFINE_CLASS_ID(IfFalse, IfProj, 1)
DEFINE_CLASS_ID(Parm, Proj, 4)
DEFINE_CLASS_ID(MachProj, Proj, 5)
DEFINE_CLASS_ID(Mem, Node, 4)
DEFINE_CLASS_ID(Load, Mem, 0)
*** 779,788 ****
--- 787,797 ----
DEFINE_CLASS_QUERY(EncodeP)
DEFINE_CLASS_QUERY(EncodePKlass)
DEFINE_CLASS_QUERY(FastLock)
DEFINE_CLASS_QUERY(FastUnlock)
DEFINE_CLASS_QUERY(If)
+ DEFINE_CLASS_QUERY(IfProj)
DEFINE_CLASS_QUERY(IfFalse)
DEFINE_CLASS_QUERY(IfTrue)
DEFINE_CLASS_QUERY(Initialize)
DEFINE_CLASS_QUERY(Jump)
DEFINE_CLASS_QUERY(JumpProj)
*** 806,815 ****
--- 815,825 ----
DEFINE_CLASS_QUERY(MachProj)
DEFINE_CLASS_QUERY(MachReturn)
DEFINE_CLASS_QUERY(MachSafePoint)
DEFINE_CLASS_QUERY(MachSpillCopy)
DEFINE_CLASS_QUERY(MachTemp)
+ DEFINE_CLASS_QUERY(MachMemBar)
DEFINE_CLASS_QUERY(MachMerge)
DEFINE_CLASS_QUERY(Mem)
DEFINE_CLASS_QUERY(MemBar)
DEFINE_CLASS_QUERY(MemBarStoreStore)
DEFINE_CLASS_QUERY(MergeMem)
*** 822,831 ****
--- 832,842 ----
DEFINE_CLASS_QUERY(Proj)
DEFINE_CLASS_QUERY(Region)
DEFINE_CLASS_QUERY(Root)
DEFINE_CLASS_QUERY(SafePoint)
DEFINE_CLASS_QUERY(SafePointScalarObject)
+ DEFINE_CLASS_QUERY(ShenandoahBarrier)
DEFINE_CLASS_QUERY(Start)
DEFINE_CLASS_QUERY(Store)
DEFINE_CLASS_QUERY(Sub)
DEFINE_CLASS_QUERY(Type)
DEFINE_CLASS_QUERY(Vector)
*** 920,936 ****
Node* find_exact_control(Node* ctrl);
// Check if 'this' node dominates or equal to 'sub'.
bool dominates(Node* sub, Node_List &nlist);
protected:
bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
public:
- // Idealize graph, using DU info. Done after constant propagation
- virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp );
-
// See if there is valid pipeline info
static const Pipeline *pipeline_class();
virtual const Pipeline *pipeline() const;
// Compute the latency from the def to this instruction of the ith input node
--- 931,948 ----
Node* find_exact_control(Node* ctrl);
// Check if 'this' node dominates or equal to 'sub'.
bool dominates(Node* sub, Node_List &nlist);
+ virtual bool is_g1_wb_pre_call() const { return false; }
+ virtual bool is_shenandoah_state_load() const { return false; }
+ virtual bool is_shenandoah_marking_if(PhaseTransform *phase) const { return false; }
+
protected:
bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
public:
// See if there is valid pipeline info
static const Pipeline *pipeline_class();
virtual const Pipeline *pipeline() const;
// Compute the latency from the def to this instruction of the ith input node
*** 960,969 ****
--- 972,984 ----
Node* find_similar(int opc);
// Return the unique control out if only one. Null if none or more than one.
Node* unique_ctrl_out();
+ // Set control or add control as precedence edge
+ void ensure_control_or_add_prec(Node* c);
+
//----------------- Code Generation
// Ideal register class for Matching. Zero means unmatched instruction
// (these are cloned instead of converted to machine nodes).
virtual uint ideal_reg() const;
< prev index next >