< prev index next >

src/hotspot/share/opto/node.hpp

Print this page
rev 52710 : Upstream/backport Shenandoah to JDK11u


 126 class Node_Stack;
 127 class NullCheckNode;
 128 class OopMap;
 129 class ParmNode;
 130 class PCTableNode;
 131 class PhaseCCP;
 132 class PhaseGVN;
 133 class PhaseIterGVN;
 134 class PhaseRegAlloc;
 135 class PhaseTransform;
 136 class PhaseValues;
 137 class PhiNode;
 138 class Pipeline;
 139 class ProjNode;
 140 class RangeCheckNode;
 141 class RegMask;
 142 class RegionNode;
 143 class RootNode;
 144 class SafePointNode;
 145 class SafePointScalarObjectNode;

 146 class StartNode;
 147 class State;
 148 class StoreNode;
 149 class SubNode;
 150 class Type;
 151 class TypeNode;
 152 class UnlockNode;
 153 class VectorNode;
 154 class LoadVectorNode;
 155 class StoreVectorNode;
 156 class VectorSet;
 157 typedef void (*NFunc)(Node&,void*);
 158 extern "C" {
 159   typedef int (*C_sort_func_t)(const void *, const void *);
 160 }
 161 
 162 // The type of all node counts and indexes.
 163 // It must hold at least 16 bits, but must also be fast to load and store.
 164 // This type, if less than 32 bits, could limit the number of possible nodes.
 165 // (To make this type platform-specific, move to globalDefinitions_xxx.hpp.)


 661       DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
 662       DEFINE_CLASS_ID(MachConstant,     Mach, 5)
 663         DEFINE_CLASS_ID(MachJump,       MachConstant, 0)
 664       DEFINE_CLASS_ID(MachMerge,        Mach, 6)
 665       DEFINE_CLASS_ID(MachMemBar,       Mach, 7)
 666 
 667     DEFINE_CLASS_ID(Type,  Node, 2)
 668       DEFINE_CLASS_ID(Phi,   Type, 0)
 669       DEFINE_CLASS_ID(ConstraintCast, Type, 1)
 670         DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
 671         DEFINE_CLASS_ID(CastLL, ConstraintCast, 1)
 672         DEFINE_CLASS_ID(CheckCastPP, ConstraintCast, 2)
 673       DEFINE_CLASS_ID(CMove, Type, 3)
 674       DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
 675       DEFINE_CLASS_ID(DecodeNarrowPtr, Type, 5)
 676         DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
 677         DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
 678       DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
 679         DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
 680         DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)

 681 
 682     DEFINE_CLASS_ID(Proj,  Node, 3)
 683       DEFINE_CLASS_ID(CatchProj, Proj, 0)
 684       DEFINE_CLASS_ID(JumpProj,  Proj, 1)
 685       DEFINE_CLASS_ID(IfProj,    Proj, 2)
 686         DEFINE_CLASS_ID(IfTrue,    IfProj, 0)
 687         DEFINE_CLASS_ID(IfFalse,   IfProj, 1)
 688       DEFINE_CLASS_ID(Parm,      Proj, 4)
 689       DEFINE_CLASS_ID(MachProj,  Proj, 5)
 690 
 691     DEFINE_CLASS_ID(Mem,   Node, 4)
 692       DEFINE_CLASS_ID(Load,  Mem, 0)
 693         DEFINE_CLASS_ID(LoadVector,  Load, 0)
 694           DEFINE_CLASS_ID(LoadBarrierSlowReg, Load, 1)
 695           DEFINE_CLASS_ID(LoadBarrierWeakSlowReg, Load, 2)
 696       DEFINE_CLASS_ID(Store, Mem, 1)
 697         DEFINE_CLASS_ID(StoreVector, Store, 0)
 698       DEFINE_CLASS_ID(LoadStore, Mem, 2)
 699         DEFINE_CLASS_ID(LoadStoreConditional, LoadStore, 0)
 700           DEFINE_CLASS_ID(CompareAndSwap, LoadStoreConditional, 0)


 860   DEFINE_CLASS_QUERY(MachTemp)
 861   DEFINE_CLASS_QUERY(MachMemBar)
 862   DEFINE_CLASS_QUERY(MachMerge)
 863   DEFINE_CLASS_QUERY(Mem)
 864   DEFINE_CLASS_QUERY(MemBar)
 865   DEFINE_CLASS_QUERY(MemBarStoreStore)
 866   DEFINE_CLASS_QUERY(MergeMem)
 867   DEFINE_CLASS_QUERY(Mul)
 868   DEFINE_CLASS_QUERY(Multi)
 869   DEFINE_CLASS_QUERY(MultiBranch)
 870   DEFINE_CLASS_QUERY(OuterStripMinedLoop)
 871   DEFINE_CLASS_QUERY(OuterStripMinedLoopEnd)
 872   DEFINE_CLASS_QUERY(Parm)
 873   DEFINE_CLASS_QUERY(PCTable)
 874   DEFINE_CLASS_QUERY(Phi)
 875   DEFINE_CLASS_QUERY(Proj)
 876   DEFINE_CLASS_QUERY(Region)
 877   DEFINE_CLASS_QUERY(Root)
 878   DEFINE_CLASS_QUERY(SafePoint)
 879   DEFINE_CLASS_QUERY(SafePointScalarObject)

 880   DEFINE_CLASS_QUERY(Start)
 881   DEFINE_CLASS_QUERY(Store)
 882   DEFINE_CLASS_QUERY(Sub)
 883   DEFINE_CLASS_QUERY(Type)
 884   DEFINE_CLASS_QUERY(Vector)
 885   DEFINE_CLASS_QUERY(LoadVector)
 886   DEFINE_CLASS_QUERY(StoreVector)
 887   DEFINE_CLASS_QUERY(Unlock)
 888 
 889   #undef DEFINE_CLASS_QUERY
 890 
 891   // duplicate of is_MachSpillCopy()
 892   bool is_SpillCopy () const {
 893     return ((_class_id & ClassMask_MachSpillCopy) == Class_MachSpillCopy);
 894   }
 895 
 896   bool is_Con () const { return (_flags & Flag_is_Con) != 0; }
 897   // The data node which is safe to leave in dead loop during IGVN optimization.
 898   bool is_dead_loop_safe() const {
 899     return is_Phi() || (is_Proj() && in(0) == NULL) ||




 126 class Node_Stack;
 127 class NullCheckNode;
 128 class OopMap;
 129 class ParmNode;
 130 class PCTableNode;
 131 class PhaseCCP;
 132 class PhaseGVN;
 133 class PhaseIterGVN;
 134 class PhaseRegAlloc;
 135 class PhaseTransform;
 136 class PhaseValues;
 137 class PhiNode;
 138 class Pipeline;
 139 class ProjNode;
 140 class RangeCheckNode;
 141 class RegMask;
 142 class RegionNode;
 143 class RootNode;
 144 class SafePointNode;
 145 class SafePointScalarObjectNode;
 146 class ShenandoahBarrierNode;
 147 class StartNode;
 148 class State;
 149 class StoreNode;
 150 class SubNode;
 151 class Type;
 152 class TypeNode;
 153 class UnlockNode;
 154 class VectorNode;
 155 class LoadVectorNode;
 156 class StoreVectorNode;
 157 class VectorSet;
 158 typedef void (*NFunc)(Node&,void*);
 159 extern "C" {
 160   typedef int (*C_sort_func_t)(const void *, const void *);
 161 }
 162 
 163 // The type of all node counts and indexes.
 164 // It must hold at least 16 bits, but must also be fast to load and store.
 165 // This type, if less than 32 bits, could limit the number of possible nodes.
 166 // (To make this type platform-specific, move to globalDefinitions_xxx.hpp.)


 662       DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
 663       DEFINE_CLASS_ID(MachConstant,     Mach, 5)
 664         DEFINE_CLASS_ID(MachJump,       MachConstant, 0)
 665       DEFINE_CLASS_ID(MachMerge,        Mach, 6)
 666       DEFINE_CLASS_ID(MachMemBar,       Mach, 7)
 667 
 668     DEFINE_CLASS_ID(Type,  Node, 2)
 669       DEFINE_CLASS_ID(Phi,   Type, 0)
 670       DEFINE_CLASS_ID(ConstraintCast, Type, 1)
 671         DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
 672         DEFINE_CLASS_ID(CastLL, ConstraintCast, 1)
 673         DEFINE_CLASS_ID(CheckCastPP, ConstraintCast, 2)
 674       DEFINE_CLASS_ID(CMove, Type, 3)
 675       DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
 676       DEFINE_CLASS_ID(DecodeNarrowPtr, Type, 5)
 677         DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
 678         DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
 679       DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
 680         DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
 681         DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)
 682       DEFINE_CLASS_ID(ShenandoahBarrier, Type, 7)
 683 
 684     DEFINE_CLASS_ID(Proj,  Node, 3)
 685       DEFINE_CLASS_ID(CatchProj, Proj, 0)
 686       DEFINE_CLASS_ID(JumpProj,  Proj, 1)
 687       DEFINE_CLASS_ID(IfProj,    Proj, 2)
 688         DEFINE_CLASS_ID(IfTrue,    IfProj, 0)
 689         DEFINE_CLASS_ID(IfFalse,   IfProj, 1)
 690       DEFINE_CLASS_ID(Parm,      Proj, 4)
 691       DEFINE_CLASS_ID(MachProj,  Proj, 5)
 692 
 693     DEFINE_CLASS_ID(Mem,   Node, 4)
 694       DEFINE_CLASS_ID(Load,  Mem, 0)
 695         DEFINE_CLASS_ID(LoadVector,  Load, 0)
 696           DEFINE_CLASS_ID(LoadBarrierSlowReg, Load, 1)
 697           DEFINE_CLASS_ID(LoadBarrierWeakSlowReg, Load, 2)
 698       DEFINE_CLASS_ID(Store, Mem, 1)
 699         DEFINE_CLASS_ID(StoreVector, Store, 0)
 700       DEFINE_CLASS_ID(LoadStore, Mem, 2)
 701         DEFINE_CLASS_ID(LoadStoreConditional, LoadStore, 0)
 702           DEFINE_CLASS_ID(CompareAndSwap, LoadStoreConditional, 0)


 862   DEFINE_CLASS_QUERY(MachTemp)
 863   DEFINE_CLASS_QUERY(MachMemBar)
 864   DEFINE_CLASS_QUERY(MachMerge)
 865   DEFINE_CLASS_QUERY(Mem)
 866   DEFINE_CLASS_QUERY(MemBar)
 867   DEFINE_CLASS_QUERY(MemBarStoreStore)
 868   DEFINE_CLASS_QUERY(MergeMem)
 869   DEFINE_CLASS_QUERY(Mul)
 870   DEFINE_CLASS_QUERY(Multi)
 871   DEFINE_CLASS_QUERY(MultiBranch)
 872   DEFINE_CLASS_QUERY(OuterStripMinedLoop)
 873   DEFINE_CLASS_QUERY(OuterStripMinedLoopEnd)
 874   DEFINE_CLASS_QUERY(Parm)
 875   DEFINE_CLASS_QUERY(PCTable)
 876   DEFINE_CLASS_QUERY(Phi)
 877   DEFINE_CLASS_QUERY(Proj)
 878   DEFINE_CLASS_QUERY(Region)
 879   DEFINE_CLASS_QUERY(Root)
 880   DEFINE_CLASS_QUERY(SafePoint)
 881   DEFINE_CLASS_QUERY(SafePointScalarObject)
 882   DEFINE_CLASS_QUERY(ShenandoahBarrier)
 883   DEFINE_CLASS_QUERY(Start)
 884   DEFINE_CLASS_QUERY(Store)
 885   DEFINE_CLASS_QUERY(Sub)
 886   DEFINE_CLASS_QUERY(Type)
 887   DEFINE_CLASS_QUERY(Vector)
 888   DEFINE_CLASS_QUERY(LoadVector)
 889   DEFINE_CLASS_QUERY(StoreVector)
 890   DEFINE_CLASS_QUERY(Unlock)
 891 
 892   #undef DEFINE_CLASS_QUERY
 893 
 894   // duplicate of is_MachSpillCopy()
 895   bool is_SpillCopy () const {
 896     return ((_class_id & ClassMask_MachSpillCopy) == Class_MachSpillCopy);
 897   }
 898 
 899   bool is_Con () const { return (_flags & Flag_is_Con) != 0; }
 900   // The data node which is safe to leave in dead loop during IGVN optimization.
 901   bool is_dead_loop_safe() const {
 902     return is_Phi() || (is_Proj() && in(0) == NULL) ||


< prev index next >