68 class CheckCastPPNode;
69 class ClearArrayNode;
70 class CmpNode;
71 class CodeBuffer;
72 class ConstraintCastNode;
73 class ConNode;
74 class ConINode;
75 class ConvertNode;
76 class CompareAndSwapNode;
77 class CompareAndExchangeNode;
78 class CountedLoopNode;
79 class CountedLoopEndNode;
80 class DecodeNarrowPtrNode;
81 class DecodeNNode;
82 class DecodeNKlassNode;
83 class EncodeNarrowPtrNode;
84 class EncodePNode;
85 class EncodePKlassNode;
86 class FastLockNode;
87 class FastUnlockNode;
88 class HaltNode;
89 class IfNode;
90 class IfProjNode;
91 class IfFalseNode;
92 class IfTrueNode;
93 class InitializeNode;
94 class JVMState;
95 class JumpNode;
96 class JumpProjNode;
97 class LoadNode;
98 class LoadStoreNode;
99 class LoadStoreConditionalNode;
100 class LockNode;
101 class LongCountedLoopNode;
102 class LongCountedLoopEndNode;
103 class LoopNode;
104 class LShiftNode;
105 class MachBranchNode;
106 class MachCallDynamicJavaNode;
107 class MachCallJavaNode;
108 class MachCallLeafNode;
109 class MachCallNode;
110 class MachCallRuntimeNode;
111 class MachCallStaticJavaNode;
112 class MachConstantBaseNode;
113 class MachConstantNode;
114 class MachGotoNode;
115 class MachIfNode;
116 class MachJumpNode;
117 class MachNode;
118 class MachNullCheckNode;
119 class MachProjNode;
120 class MachReturnNode;
121 class MachSafePointNode;
122 class MachSpillCopyNode;
123 class MachTempNode;
124 class MachMergeNode;
125 class MachMemBarNode;
126 class Matcher;
127 class MemBarNode;
128 class MemBarStoreStoreNode;
129 class MemNode;
130 class MergeMemNode;
131 class MoveNode;
132 class MulNode;
133 class MultiNode;
134 class MultiBranchNode;
135 class NegNode;
136 class NegVNode;
137 class NeverBranchNode;
138 class Opaque1Node;
139 class OpaqueLoopInitNode;
140 class OpaqueLoopStrideNode;
141 class Opaque4Node;
142 class OpaqueInitializedAssertionPredicateNode;
143 class OuterStripMinedLoopNode;
144 class OuterStripMinedLoopEndNode;
145 class Node;
159 class PhiNode;
160 class Pipeline;
161 class PopulateIndexNode;
162 class ProjNode;
163 class RangeCheckNode;
164 class ReductionNode;
165 class RegMask;
166 class RegionNode;
167 class RootNode;
168 class SafePointNode;
169 class SafePointScalarObjectNode;
170 class SafePointScalarMergeNode;
171 class StartNode;
172 class State;
173 class StoreNode;
174 class SubNode;
175 class SubTypeCheckNode;
176 class Type;
177 class TypeNode;
178 class UnlockNode;
179 class VectorNode;
180 class LoadVectorNode;
181 class LoadVectorMaskedNode;
182 class StoreVectorMaskedNode;
183 class LoadVectorGatherNode;
184 class LoadVectorGatherMaskedNode;
185 class StoreVectorNode;
186 class StoreVectorScatterNode;
187 class StoreVectorScatterMaskedNode;
188 class VerifyVectorAlignmentNode;
189 class VectorMaskCmpNode;
190 class VectorUnboxNode;
191 class VectorSet;
192 class VectorReinterpretNode;
193 class ShiftVNode;
194 class ExpandVNode;
195 class CompressVNode;
196 class CompressMNode;
197 class C2_MacroAssembler;
198
673 DEFINE_CLASS_ID(AbstractLock, Call, 3)
674 DEFINE_CLASS_ID(Lock, AbstractLock, 0)
675 DEFINE_CLASS_ID(Unlock, AbstractLock, 1)
676 DEFINE_CLASS_ID(ArrayCopy, Call, 4)
677 DEFINE_CLASS_ID(MultiBranch, Multi, 1)
678 DEFINE_CLASS_ID(PCTable, MultiBranch, 0)
679 DEFINE_CLASS_ID(Catch, PCTable, 0)
680 DEFINE_CLASS_ID(Jump, PCTable, 1)
681 DEFINE_CLASS_ID(If, MultiBranch, 1)
682 DEFINE_CLASS_ID(BaseCountedLoopEnd, If, 0)
683 DEFINE_CLASS_ID(CountedLoopEnd, BaseCountedLoopEnd, 0)
684 DEFINE_CLASS_ID(LongCountedLoopEnd, BaseCountedLoopEnd, 1)
685 DEFINE_CLASS_ID(RangeCheck, If, 1)
686 DEFINE_CLASS_ID(OuterStripMinedLoopEnd, If, 2)
687 DEFINE_CLASS_ID(ParsePredicate, If, 3)
688 DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
689 DEFINE_CLASS_ID(Start, Multi, 2)
690 DEFINE_CLASS_ID(MemBar, Multi, 3)
691 DEFINE_CLASS_ID(Initialize, MemBar, 0)
692 DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1)
693
694 DEFINE_CLASS_ID(Mach, Node, 1)
695 DEFINE_CLASS_ID(MachReturn, Mach, 0)
696 DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
697 DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
698 DEFINE_CLASS_ID(MachCallJava, MachCall, 0)
699 DEFINE_CLASS_ID(MachCallStaticJava, MachCallJava, 0)
700 DEFINE_CLASS_ID(MachCallDynamicJava, MachCallJava, 1)
701 DEFINE_CLASS_ID(MachCallRuntime, MachCall, 1)
702 DEFINE_CLASS_ID(MachCallLeaf, MachCallRuntime, 0)
703 DEFINE_CLASS_ID(MachBranch, Mach, 1)
704 DEFINE_CLASS_ID(MachIf, MachBranch, 0)
705 DEFINE_CLASS_ID(MachGoto, MachBranch, 1)
706 DEFINE_CLASS_ID(MachNullCheck, MachBranch, 2)
707 DEFINE_CLASS_ID(MachSpillCopy, Mach, 2)
708 DEFINE_CLASS_ID(MachTemp, Mach, 3)
709 DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
710 DEFINE_CLASS_ID(MachConstant, Mach, 5)
711 DEFINE_CLASS_ID(MachJump, MachConstant, 0)
712 DEFINE_CLASS_ID(MachMerge, Mach, 6)
713 DEFINE_CLASS_ID(MachMemBar, Mach, 7)
714
715 DEFINE_CLASS_ID(Type, Node, 2)
716 DEFINE_CLASS_ID(Phi, Type, 0)
717 DEFINE_CLASS_ID(ConstraintCast, Type, 1)
718 DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
719 DEFINE_CLASS_ID(CheckCastPP, ConstraintCast, 1)
720 DEFINE_CLASS_ID(CastLL, ConstraintCast, 2)
721 DEFINE_CLASS_ID(CastFF, ConstraintCast, 3)
722 DEFINE_CLASS_ID(CastDD, ConstraintCast, 4)
723 DEFINE_CLASS_ID(CastVV, ConstraintCast, 5)
724 DEFINE_CLASS_ID(CastPP, ConstraintCast, 6)
725 DEFINE_CLASS_ID(CMove, Type, 3)
726 DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
727 DEFINE_CLASS_ID(DecodeNarrowPtr, Type, 5)
728 DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
729 DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
730 DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
731 DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
732 DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)
733 DEFINE_CLASS_ID(Vector, Type, 7)
734 DEFINE_CLASS_ID(VectorMaskCmp, Vector, 0)
735 DEFINE_CLASS_ID(VectorUnbox, Vector, 1)
736 DEFINE_CLASS_ID(VectorReinterpret, Vector, 2)
737 DEFINE_CLASS_ID(ShiftV, Vector, 3)
738 DEFINE_CLASS_ID(CompressV, Vector, 4)
739 DEFINE_CLASS_ID(ExpandV, Vector, 5)
740 DEFINE_CLASS_ID(CompressM, Vector, 6)
741 DEFINE_CLASS_ID(Reduction, Vector, 7)
742 DEFINE_CLASS_ID(NegV, Vector, 8)
743 DEFINE_CLASS_ID(Con, Type, 8)
744 DEFINE_CLASS_ID(ConI, Con, 0)
745 DEFINE_CLASS_ID(SafePointScalarMerge, Type, 9)
746 DEFINE_CLASS_ID(Convert, Type, 10)
747
748
749 DEFINE_CLASS_ID(Proj, Node, 3)
750 DEFINE_CLASS_ID(CatchProj, Proj, 0)
751 DEFINE_CLASS_ID(JumpProj, Proj, 1)
752 DEFINE_CLASS_ID(IfProj, Proj, 2)
753 DEFINE_CLASS_ID(IfTrue, IfProj, 0)
754 DEFINE_CLASS_ID(IfFalse, IfProj, 1)
755 DEFINE_CLASS_ID(Parm, Proj, 4)
756 DEFINE_CLASS_ID(MachProj, Proj, 5)
757
758 DEFINE_CLASS_ID(Mem, Node, 4)
759 DEFINE_CLASS_ID(Load, Mem, 0)
760 DEFINE_CLASS_ID(LoadVector, Load, 0)
761 DEFINE_CLASS_ID(LoadVectorGather, LoadVector, 0)
762 DEFINE_CLASS_ID(LoadVectorGatherMasked, LoadVector, 1)
763 DEFINE_CLASS_ID(LoadVectorMasked, LoadVector, 2)
764 DEFINE_CLASS_ID(Store, Mem, 1)
765 DEFINE_CLASS_ID(StoreVector, Store, 0)
766 DEFINE_CLASS_ID(StoreVectorScatter, StoreVector, 0)
767 DEFINE_CLASS_ID(StoreVectorScatterMasked, StoreVector, 1)
768 DEFINE_CLASS_ID(StoreVectorMasked, StoreVector, 2)
769 DEFINE_CLASS_ID(LoadStore, Mem, 2)
770 DEFINE_CLASS_ID(LoadStoreConditional, LoadStore, 0)
771 DEFINE_CLASS_ID(CompareAndSwap, LoadStoreConditional, 0)
772 DEFINE_CLASS_ID(CompareAndExchangeNode, LoadStore, 1)
773
774 DEFINE_CLASS_ID(Region, Node, 5)
775 DEFINE_CLASS_ID(Loop, Region, 0)
776 DEFINE_CLASS_ID(Root, Loop, 0)
777 DEFINE_CLASS_ID(BaseCountedLoop, Loop, 1)
778 DEFINE_CLASS_ID(CountedLoop, BaseCountedLoop, 0)
779 DEFINE_CLASS_ID(LongCountedLoop, BaseCountedLoop, 1)
780 DEFINE_CLASS_ID(OuterStripMinedLoop, Loop, 2)
781
782 DEFINE_CLASS_ID(Sub, Node, 6)
783 DEFINE_CLASS_ID(Cmp, Sub, 0)
784 DEFINE_CLASS_ID(FastLock, Cmp, 0)
785 DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
786 DEFINE_CLASS_ID(SubTypeCheck,Cmp, 2)
787
788 DEFINE_CLASS_ID(MergeMem, Node, 7)
789 DEFINE_CLASS_ID(Bool, Node, 8)
790 DEFINE_CLASS_ID(AddP, Node, 9)
791 DEFINE_CLASS_ID(BoxLock, Node, 10)
792 DEFINE_CLASS_ID(Add, Node, 11)
793 DEFINE_CLASS_ID(Mul, Node, 12)
794 DEFINE_CLASS_ID(ClearArray, Node, 14)
795 DEFINE_CLASS_ID(Halt, Node, 15)
796 DEFINE_CLASS_ID(Opaque1, Node, 16)
797 DEFINE_CLASS_ID(OpaqueLoopInit, Opaque1, 0)
798 DEFINE_CLASS_ID(OpaqueLoopStride, Opaque1, 1)
799 DEFINE_CLASS_ID(Opaque4, Node, 17)
800 DEFINE_CLASS_ID(OpaqueInitializedAssertionPredicate, Node, 18)
801 DEFINE_CLASS_ID(Move, Node, 19)
802 DEFINE_CLASS_ID(LShift, Node, 20)
803 DEFINE_CLASS_ID(Neg, Node, 21)
804
805 _max_classes = ClassMask_Neg
806 };
872 #define DEFINE_CLASS_QUERY(type) \
873 bool is_##type() const { \
874 return ((_class_id & ClassMask_##type) == Class_##type); \
875 } \
876 type##Node *as_##type() const { \
877 assert(is_##type(), "invalid node class: %s", Name()); \
878 return (type##Node*)this; \
879 } \
880 type##Node* isa_##type() const { \
881 return (is_##type()) ? as_##type() : nullptr; \
882 }
883
884 DEFINE_CLASS_QUERY(AbstractLock)
885 DEFINE_CLASS_QUERY(Add)
886 DEFINE_CLASS_QUERY(AddP)
887 DEFINE_CLASS_QUERY(Allocate)
888 DEFINE_CLASS_QUERY(AllocateArray)
889 DEFINE_CLASS_QUERY(ArrayCopy)
890 DEFINE_CLASS_QUERY(BaseCountedLoop)
891 DEFINE_CLASS_QUERY(BaseCountedLoopEnd)
892 DEFINE_CLASS_QUERY(Bool)
893 DEFINE_CLASS_QUERY(BoxLock)
894 DEFINE_CLASS_QUERY(Call)
895 DEFINE_CLASS_QUERY(CallDynamicJava)
896 DEFINE_CLASS_QUERY(CallJava)
897 DEFINE_CLASS_QUERY(CallLeaf)
898 DEFINE_CLASS_QUERY(CallLeafNoFP)
899 DEFINE_CLASS_QUERY(CallRuntime)
900 DEFINE_CLASS_QUERY(CallStaticJava)
901 DEFINE_CLASS_QUERY(Catch)
902 DEFINE_CLASS_QUERY(CatchProj)
903 DEFINE_CLASS_QUERY(CheckCastPP)
904 DEFINE_CLASS_QUERY(CastII)
905 DEFINE_CLASS_QUERY(CastLL)
906 DEFINE_CLASS_QUERY(ConI)
907 DEFINE_CLASS_QUERY(CastPP)
908 DEFINE_CLASS_QUERY(ConstraintCast)
909 DEFINE_CLASS_QUERY(ClearArray)
910 DEFINE_CLASS_QUERY(CMove)
911 DEFINE_CLASS_QUERY(Cmp)
912 DEFINE_CLASS_QUERY(Convert)
913 DEFINE_CLASS_QUERY(CountedLoop)
914 DEFINE_CLASS_QUERY(CountedLoopEnd)
915 DEFINE_CLASS_QUERY(DecodeNarrowPtr)
916 DEFINE_CLASS_QUERY(DecodeN)
917 DEFINE_CLASS_QUERY(DecodeNKlass)
918 DEFINE_CLASS_QUERY(EncodeNarrowPtr)
919 DEFINE_CLASS_QUERY(EncodeP)
920 DEFINE_CLASS_QUERY(EncodePKlass)
921 DEFINE_CLASS_QUERY(FastLock)
922 DEFINE_CLASS_QUERY(FastUnlock)
923 DEFINE_CLASS_QUERY(Halt)
924 DEFINE_CLASS_QUERY(If)
925 DEFINE_CLASS_QUERY(RangeCheck)
926 DEFINE_CLASS_QUERY(IfProj)
927 DEFINE_CLASS_QUERY(IfFalse)
928 DEFINE_CLASS_QUERY(IfTrue)
929 DEFINE_CLASS_QUERY(Initialize)
930 DEFINE_CLASS_QUERY(Jump)
931 DEFINE_CLASS_QUERY(JumpProj)
932 DEFINE_CLASS_QUERY(LongCountedLoop)
933 DEFINE_CLASS_QUERY(LongCountedLoopEnd)
934 DEFINE_CLASS_QUERY(Load)
935 DEFINE_CLASS_QUERY(LoadStore)
936 DEFINE_CLASS_QUERY(LoadStoreConditional)
937 DEFINE_CLASS_QUERY(Lock)
938 DEFINE_CLASS_QUERY(Loop)
939 DEFINE_CLASS_QUERY(LShift)
940 DEFINE_CLASS_QUERY(Mach)
941 DEFINE_CLASS_QUERY(MachBranch)
942 DEFINE_CLASS_QUERY(MachCall)
943 DEFINE_CLASS_QUERY(MachCallDynamicJava)
944 DEFINE_CLASS_QUERY(MachCallJava)
945 DEFINE_CLASS_QUERY(MachCallLeaf)
946 DEFINE_CLASS_QUERY(MachCallRuntime)
947 DEFINE_CLASS_QUERY(MachCallStaticJava)
948 DEFINE_CLASS_QUERY(MachConstantBase)
949 DEFINE_CLASS_QUERY(MachConstant)
950 DEFINE_CLASS_QUERY(MachGoto)
951 DEFINE_CLASS_QUERY(MachIf)
952 DEFINE_CLASS_QUERY(MachJump)
953 DEFINE_CLASS_QUERY(MachNullCheck)
954 DEFINE_CLASS_QUERY(MachProj)
955 DEFINE_CLASS_QUERY(MachReturn)
956 DEFINE_CLASS_QUERY(MachSafePoint)
957 DEFINE_CLASS_QUERY(MachSpillCopy)
958 DEFINE_CLASS_QUERY(MachTemp)
959 DEFINE_CLASS_QUERY(MachMemBar)
960 DEFINE_CLASS_QUERY(MachMerge)
961 DEFINE_CLASS_QUERY(Mem)
962 DEFINE_CLASS_QUERY(MemBar)
963 DEFINE_CLASS_QUERY(MemBarStoreStore)
964 DEFINE_CLASS_QUERY(MergeMem)
965 DEFINE_CLASS_QUERY(Move)
966 DEFINE_CLASS_QUERY(Mul)
967 DEFINE_CLASS_QUERY(Multi)
968 DEFINE_CLASS_QUERY(MultiBranch)
969 DEFINE_CLASS_QUERY(Neg)
970 DEFINE_CLASS_QUERY(NegV)
971 DEFINE_CLASS_QUERY(NeverBranch)
972 DEFINE_CLASS_QUERY(Opaque1)
973 DEFINE_CLASS_QUERY(Opaque4)
974 DEFINE_CLASS_QUERY(OpaqueInitializedAssertionPredicate)
975 DEFINE_CLASS_QUERY(OpaqueLoopInit)
976 DEFINE_CLASS_QUERY(OpaqueLoopStride)
977 DEFINE_CLASS_QUERY(OuterStripMinedLoop)
978 DEFINE_CLASS_QUERY(OuterStripMinedLoopEnd)
979 DEFINE_CLASS_QUERY(Parm)
980 DEFINE_CLASS_QUERY(ParsePredicate)
981 DEFINE_CLASS_QUERY(PCTable)
982 DEFINE_CLASS_QUERY(Phi)
983 DEFINE_CLASS_QUERY(Proj)
984 DEFINE_CLASS_QUERY(Reduction)
985 DEFINE_CLASS_QUERY(Region)
986 DEFINE_CLASS_QUERY(Root)
987 DEFINE_CLASS_QUERY(SafePoint)
988 DEFINE_CLASS_QUERY(SafePointScalarObject)
989 DEFINE_CLASS_QUERY(SafePointScalarMerge)
990 DEFINE_CLASS_QUERY(Start)
991 DEFINE_CLASS_QUERY(Store)
992 DEFINE_CLASS_QUERY(Sub)
993 DEFINE_CLASS_QUERY(SubTypeCheck)
994 DEFINE_CLASS_QUERY(Type)
995 DEFINE_CLASS_QUERY(Vector)
996 DEFINE_CLASS_QUERY(VectorMaskCmp)
997 DEFINE_CLASS_QUERY(VectorUnbox)
998 DEFINE_CLASS_QUERY(VectorReinterpret)
999 DEFINE_CLASS_QUERY(CompressV)
1000 DEFINE_CLASS_QUERY(ExpandV)
1001 DEFINE_CLASS_QUERY(CompressM)
1002 DEFINE_CLASS_QUERY(LoadVector)
1003 DEFINE_CLASS_QUERY(LoadVectorGather)
1004 DEFINE_CLASS_QUERY(LoadVectorMasked)
1005 DEFINE_CLASS_QUERY(LoadVectorGatherMasked)
1006 DEFINE_CLASS_QUERY(StoreVector)
1007 DEFINE_CLASS_QUERY(StoreVectorScatter)
1008 DEFINE_CLASS_QUERY(StoreVectorMasked)
1009 DEFINE_CLASS_QUERY(StoreVectorScatterMasked)
1010 DEFINE_CLASS_QUERY(ShiftV)
1011 DEFINE_CLASS_QUERY(Unlock)
1012
1013 #undef DEFINE_CLASS_QUERY
1014
|
68 class CheckCastPPNode;
69 class ClearArrayNode;
70 class CmpNode;
71 class CodeBuffer;
72 class ConstraintCastNode;
73 class ConNode;
74 class ConINode;
75 class ConvertNode;
76 class CompareAndSwapNode;
77 class CompareAndExchangeNode;
78 class CountedLoopNode;
79 class CountedLoopEndNode;
80 class DecodeNarrowPtrNode;
81 class DecodeNNode;
82 class DecodeNKlassNode;
83 class EncodeNarrowPtrNode;
84 class EncodePNode;
85 class EncodePKlassNode;
86 class FastLockNode;
87 class FastUnlockNode;
88 class FlatArrayCheckNode;
89 class HaltNode;
90 class IfNode;
91 class IfProjNode;
92 class IfFalseNode;
93 class IfTrueNode;
94 class InitializeNode;
95 class JVMState;
96 class JumpNode;
97 class JumpProjNode;
98 class LoadNode;
99 class LoadStoreNode;
100 class LoadStoreConditionalNode;
101 class LockNode;
102 class LongCountedLoopNode;
103 class LongCountedLoopEndNode;
104 class LoopNode;
105 class LShiftNode;
106 class MachBranchNode;
107 class MachCallDynamicJavaNode;
108 class MachCallJavaNode;
109 class MachCallLeafNode;
110 class MachCallNode;
111 class MachCallRuntimeNode;
112 class MachCallStaticJavaNode;
113 class MachConstantBaseNode;
114 class MachConstantNode;
115 class MachGotoNode;
116 class MachIfNode;
117 class MachJumpNode;
118 class MachNode;
119 class MachNullCheckNode;
120 class MachProjNode;
121 class MachPrologNode;
122 class MachReturnNode;
123 class MachSafePointNode;
124 class MachSpillCopyNode;
125 class MachTempNode;
126 class MachMergeNode;
127 class MachMemBarNode;
128 class MachVEPNode;
129 class Matcher;
130 class MemBarNode;
131 class MemBarStoreStoreNode;
132 class MemNode;
133 class MergeMemNode;
134 class MoveNode;
135 class MulNode;
136 class MultiNode;
137 class MultiBranchNode;
138 class NegNode;
139 class NegVNode;
140 class NeverBranchNode;
141 class Opaque1Node;
142 class OpaqueLoopInitNode;
143 class OpaqueLoopStrideNode;
144 class Opaque4Node;
145 class OpaqueInitializedAssertionPredicateNode;
146 class OuterStripMinedLoopNode;
147 class OuterStripMinedLoopEndNode;
148 class Node;
162 class PhiNode;
163 class Pipeline;
164 class PopulateIndexNode;
165 class ProjNode;
166 class RangeCheckNode;
167 class ReductionNode;
168 class RegMask;
169 class RegionNode;
170 class RootNode;
171 class SafePointNode;
172 class SafePointScalarObjectNode;
173 class SafePointScalarMergeNode;
174 class StartNode;
175 class State;
176 class StoreNode;
177 class SubNode;
178 class SubTypeCheckNode;
179 class Type;
180 class TypeNode;
181 class UnlockNode;
182 class InlineTypeNode;
183 class VectorNode;
184 class LoadVectorNode;
185 class LoadVectorMaskedNode;
186 class StoreVectorMaskedNode;
187 class LoadVectorGatherNode;
188 class LoadVectorGatherMaskedNode;
189 class StoreVectorNode;
190 class StoreVectorScatterNode;
191 class StoreVectorScatterMaskedNode;
192 class VerifyVectorAlignmentNode;
193 class VectorMaskCmpNode;
194 class VectorUnboxNode;
195 class VectorSet;
196 class VectorReinterpretNode;
197 class ShiftVNode;
198 class ExpandVNode;
199 class CompressVNode;
200 class CompressMNode;
201 class C2_MacroAssembler;
202
677 DEFINE_CLASS_ID(AbstractLock, Call, 3)
678 DEFINE_CLASS_ID(Lock, AbstractLock, 0)
679 DEFINE_CLASS_ID(Unlock, AbstractLock, 1)
680 DEFINE_CLASS_ID(ArrayCopy, Call, 4)
681 DEFINE_CLASS_ID(MultiBranch, Multi, 1)
682 DEFINE_CLASS_ID(PCTable, MultiBranch, 0)
683 DEFINE_CLASS_ID(Catch, PCTable, 0)
684 DEFINE_CLASS_ID(Jump, PCTable, 1)
685 DEFINE_CLASS_ID(If, MultiBranch, 1)
686 DEFINE_CLASS_ID(BaseCountedLoopEnd, If, 0)
687 DEFINE_CLASS_ID(CountedLoopEnd, BaseCountedLoopEnd, 0)
688 DEFINE_CLASS_ID(LongCountedLoopEnd, BaseCountedLoopEnd, 1)
689 DEFINE_CLASS_ID(RangeCheck, If, 1)
690 DEFINE_CLASS_ID(OuterStripMinedLoopEnd, If, 2)
691 DEFINE_CLASS_ID(ParsePredicate, If, 3)
692 DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
693 DEFINE_CLASS_ID(Start, Multi, 2)
694 DEFINE_CLASS_ID(MemBar, Multi, 3)
695 DEFINE_CLASS_ID(Initialize, MemBar, 0)
696 DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1)
697 DEFINE_CLASS_ID(Blackhole, MemBar, 2)
698
699 DEFINE_CLASS_ID(Mach, Node, 1)
700 DEFINE_CLASS_ID(MachReturn, Mach, 0)
701 DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
702 DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
703 DEFINE_CLASS_ID(MachCallJava, MachCall, 0)
704 DEFINE_CLASS_ID(MachCallStaticJava, MachCallJava, 0)
705 DEFINE_CLASS_ID(MachCallDynamicJava, MachCallJava, 1)
706 DEFINE_CLASS_ID(MachCallRuntime, MachCall, 1)
707 DEFINE_CLASS_ID(MachCallLeaf, MachCallRuntime, 0)
708 DEFINE_CLASS_ID(MachBranch, Mach, 1)
709 DEFINE_CLASS_ID(MachIf, MachBranch, 0)
710 DEFINE_CLASS_ID(MachGoto, MachBranch, 1)
711 DEFINE_CLASS_ID(MachNullCheck, MachBranch, 2)
712 DEFINE_CLASS_ID(MachSpillCopy, Mach, 2)
713 DEFINE_CLASS_ID(MachTemp, Mach, 3)
714 DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
715 DEFINE_CLASS_ID(MachConstant, Mach, 5)
716 DEFINE_CLASS_ID(MachJump, MachConstant, 0)
717 DEFINE_CLASS_ID(MachMerge, Mach, 6)
718 DEFINE_CLASS_ID(MachMemBar, Mach, 7)
719 DEFINE_CLASS_ID(MachProlog, Mach, 8)
720 DEFINE_CLASS_ID(MachVEP, Mach, 9)
721
722 DEFINE_CLASS_ID(Type, Node, 2)
723 DEFINE_CLASS_ID(Phi, Type, 0)
724 DEFINE_CLASS_ID(ConstraintCast, Type, 1)
725 DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
726 DEFINE_CLASS_ID(CheckCastPP, ConstraintCast, 1)
727 DEFINE_CLASS_ID(CastLL, ConstraintCast, 2)
728 DEFINE_CLASS_ID(CastFF, ConstraintCast, 3)
729 DEFINE_CLASS_ID(CastDD, ConstraintCast, 4)
730 DEFINE_CLASS_ID(CastVV, ConstraintCast, 5)
731 DEFINE_CLASS_ID(CastPP, ConstraintCast, 6)
732 DEFINE_CLASS_ID(CMove, Type, 3)
733 DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
734 DEFINE_CLASS_ID(DecodeNarrowPtr, Type, 5)
735 DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0)
736 DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1)
737 DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6)
738 DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0)
739 DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1)
740 DEFINE_CLASS_ID(Vector, Type, 7)
741 DEFINE_CLASS_ID(VectorMaskCmp, Vector, 0)
742 DEFINE_CLASS_ID(VectorUnbox, Vector, 1)
743 DEFINE_CLASS_ID(VectorReinterpret, Vector, 2)
744 DEFINE_CLASS_ID(ShiftV, Vector, 3)
745 DEFINE_CLASS_ID(CompressV, Vector, 4)
746 DEFINE_CLASS_ID(ExpandV, Vector, 5)
747 DEFINE_CLASS_ID(CompressM, Vector, 6)
748 DEFINE_CLASS_ID(Reduction, Vector, 7)
749 DEFINE_CLASS_ID(NegV, Vector, 8)
750 DEFINE_CLASS_ID(InlineType, Type, 8)
751 DEFINE_CLASS_ID(Con, Type, 9)
752 DEFINE_CLASS_ID(ConI, Con, 0)
753 DEFINE_CLASS_ID(SafePointScalarMerge, Type, 10)
754 DEFINE_CLASS_ID(Convert, Type, 11)
755
756
757 DEFINE_CLASS_ID(Proj, Node, 3)
758 DEFINE_CLASS_ID(CatchProj, Proj, 0)
759 DEFINE_CLASS_ID(JumpProj, Proj, 1)
760 DEFINE_CLASS_ID(IfProj, Proj, 2)
761 DEFINE_CLASS_ID(IfTrue, IfProj, 0)
762 DEFINE_CLASS_ID(IfFalse, IfProj, 1)
763 DEFINE_CLASS_ID(Parm, Proj, 4)
764 DEFINE_CLASS_ID(MachProj, Proj, 5)
765
766 DEFINE_CLASS_ID(Mem, Node, 4)
767 DEFINE_CLASS_ID(Load, Mem, 0)
768 DEFINE_CLASS_ID(LoadVector, Load, 0)
769 DEFINE_CLASS_ID(LoadVectorGather, LoadVector, 0)
770 DEFINE_CLASS_ID(LoadVectorGatherMasked, LoadVector, 1)
771 DEFINE_CLASS_ID(LoadVectorMasked, LoadVector, 2)
772 DEFINE_CLASS_ID(Store, Mem, 1)
773 DEFINE_CLASS_ID(StoreVector, Store, 0)
774 DEFINE_CLASS_ID(StoreVectorScatter, StoreVector, 0)
775 DEFINE_CLASS_ID(StoreVectorScatterMasked, StoreVector, 1)
776 DEFINE_CLASS_ID(StoreVectorMasked, StoreVector, 2)
777 DEFINE_CLASS_ID(LoadStore, Mem, 2)
778 DEFINE_CLASS_ID(LoadStoreConditional, LoadStore, 0)
779 DEFINE_CLASS_ID(CompareAndSwap, LoadStoreConditional, 0)
780 DEFINE_CLASS_ID(CompareAndExchangeNode, LoadStore, 1)
781
782 DEFINE_CLASS_ID(Region, Node, 5)
783 DEFINE_CLASS_ID(Loop, Region, 0)
784 DEFINE_CLASS_ID(Root, Loop, 0)
785 DEFINE_CLASS_ID(BaseCountedLoop, Loop, 1)
786 DEFINE_CLASS_ID(CountedLoop, BaseCountedLoop, 0)
787 DEFINE_CLASS_ID(LongCountedLoop, BaseCountedLoop, 1)
788 DEFINE_CLASS_ID(OuterStripMinedLoop, Loop, 2)
789
790 DEFINE_CLASS_ID(Sub, Node, 6)
791 DEFINE_CLASS_ID(Cmp, Sub, 0)
792 DEFINE_CLASS_ID(FastLock, Cmp, 0)
793 DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
794 DEFINE_CLASS_ID(SubTypeCheck, Cmp, 2)
795 DEFINE_CLASS_ID(FlatArrayCheck, Cmp, 3)
796
797 DEFINE_CLASS_ID(MergeMem, Node, 7)
798 DEFINE_CLASS_ID(Bool, Node, 8)
799 DEFINE_CLASS_ID(AddP, Node, 9)
800 DEFINE_CLASS_ID(BoxLock, Node, 10)
801 DEFINE_CLASS_ID(Add, Node, 11)
802 DEFINE_CLASS_ID(Mul, Node, 12)
803 DEFINE_CLASS_ID(ClearArray, Node, 14)
804 DEFINE_CLASS_ID(Halt, Node, 15)
805 DEFINE_CLASS_ID(Opaque1, Node, 16)
806 DEFINE_CLASS_ID(OpaqueLoopInit, Opaque1, 0)
807 DEFINE_CLASS_ID(OpaqueLoopStride, Opaque1, 1)
808 DEFINE_CLASS_ID(Opaque4, Node, 17)
809 DEFINE_CLASS_ID(OpaqueInitializedAssertionPredicate, Node, 18)
810 DEFINE_CLASS_ID(Move, Node, 19)
811 DEFINE_CLASS_ID(LShift, Node, 20)
812 DEFINE_CLASS_ID(Neg, Node, 21)
813
814 _max_classes = ClassMask_Neg
815 };
881 #define DEFINE_CLASS_QUERY(type) \
882 bool is_##type() const { \
883 return ((_class_id & ClassMask_##type) == Class_##type); \
884 } \
885 type##Node *as_##type() const { \
886 assert(is_##type(), "invalid node class: %s", Name()); \
887 return (type##Node*)this; \
888 } \
889 type##Node* isa_##type() const { \
890 return (is_##type()) ? as_##type() : nullptr; \
891 }
892
893 DEFINE_CLASS_QUERY(AbstractLock)
894 DEFINE_CLASS_QUERY(Add)
895 DEFINE_CLASS_QUERY(AddP)
896 DEFINE_CLASS_QUERY(Allocate)
897 DEFINE_CLASS_QUERY(AllocateArray)
898 DEFINE_CLASS_QUERY(ArrayCopy)
899 DEFINE_CLASS_QUERY(BaseCountedLoop)
900 DEFINE_CLASS_QUERY(BaseCountedLoopEnd)
901 DEFINE_CLASS_QUERY(Blackhole)
902 DEFINE_CLASS_QUERY(Bool)
903 DEFINE_CLASS_QUERY(BoxLock)
904 DEFINE_CLASS_QUERY(Call)
905 DEFINE_CLASS_QUERY(CallDynamicJava)
906 DEFINE_CLASS_QUERY(CallJava)
907 DEFINE_CLASS_QUERY(CallLeaf)
908 DEFINE_CLASS_QUERY(CallLeafNoFP)
909 DEFINE_CLASS_QUERY(CallRuntime)
910 DEFINE_CLASS_QUERY(CallStaticJava)
911 DEFINE_CLASS_QUERY(Catch)
912 DEFINE_CLASS_QUERY(CatchProj)
913 DEFINE_CLASS_QUERY(CheckCastPP)
914 DEFINE_CLASS_QUERY(CastII)
915 DEFINE_CLASS_QUERY(CastLL)
916 DEFINE_CLASS_QUERY(ConI)
917 DEFINE_CLASS_QUERY(CastPP)
918 DEFINE_CLASS_QUERY(ConstraintCast)
919 DEFINE_CLASS_QUERY(ClearArray)
920 DEFINE_CLASS_QUERY(CMove)
921 DEFINE_CLASS_QUERY(Cmp)
922 DEFINE_CLASS_QUERY(Convert)
923 DEFINE_CLASS_QUERY(CountedLoop)
924 DEFINE_CLASS_QUERY(CountedLoopEnd)
925 DEFINE_CLASS_QUERY(DecodeNarrowPtr)
926 DEFINE_CLASS_QUERY(DecodeN)
927 DEFINE_CLASS_QUERY(DecodeNKlass)
928 DEFINE_CLASS_QUERY(EncodeNarrowPtr)
929 DEFINE_CLASS_QUERY(EncodeP)
930 DEFINE_CLASS_QUERY(EncodePKlass)
931 DEFINE_CLASS_QUERY(FastLock)
932 DEFINE_CLASS_QUERY(FastUnlock)
933 DEFINE_CLASS_QUERY(FlatArrayCheck)
934 DEFINE_CLASS_QUERY(Halt)
935 DEFINE_CLASS_QUERY(If)
936 DEFINE_CLASS_QUERY(RangeCheck)
937 DEFINE_CLASS_QUERY(IfProj)
938 DEFINE_CLASS_QUERY(IfFalse)
939 DEFINE_CLASS_QUERY(IfTrue)
940 DEFINE_CLASS_QUERY(Initialize)
941 DEFINE_CLASS_QUERY(Jump)
942 DEFINE_CLASS_QUERY(JumpProj)
943 DEFINE_CLASS_QUERY(LongCountedLoop)
944 DEFINE_CLASS_QUERY(LongCountedLoopEnd)
945 DEFINE_CLASS_QUERY(Load)
946 DEFINE_CLASS_QUERY(LoadStore)
947 DEFINE_CLASS_QUERY(LoadStoreConditional)
948 DEFINE_CLASS_QUERY(Lock)
949 DEFINE_CLASS_QUERY(Loop)
950 DEFINE_CLASS_QUERY(LShift)
951 DEFINE_CLASS_QUERY(Mach)
952 DEFINE_CLASS_QUERY(MachBranch)
953 DEFINE_CLASS_QUERY(MachCall)
954 DEFINE_CLASS_QUERY(MachCallDynamicJava)
955 DEFINE_CLASS_QUERY(MachCallJava)
956 DEFINE_CLASS_QUERY(MachCallLeaf)
957 DEFINE_CLASS_QUERY(MachCallRuntime)
958 DEFINE_CLASS_QUERY(MachCallStaticJava)
959 DEFINE_CLASS_QUERY(MachConstantBase)
960 DEFINE_CLASS_QUERY(MachConstant)
961 DEFINE_CLASS_QUERY(MachGoto)
962 DEFINE_CLASS_QUERY(MachIf)
963 DEFINE_CLASS_QUERY(MachJump)
964 DEFINE_CLASS_QUERY(MachNullCheck)
965 DEFINE_CLASS_QUERY(MachProj)
966 DEFINE_CLASS_QUERY(MachProlog)
967 DEFINE_CLASS_QUERY(MachReturn)
968 DEFINE_CLASS_QUERY(MachSafePoint)
969 DEFINE_CLASS_QUERY(MachSpillCopy)
970 DEFINE_CLASS_QUERY(MachTemp)
971 DEFINE_CLASS_QUERY(MachMemBar)
972 DEFINE_CLASS_QUERY(MachMerge)
973 DEFINE_CLASS_QUERY(MachVEP)
974 DEFINE_CLASS_QUERY(Mem)
975 DEFINE_CLASS_QUERY(MemBar)
976 DEFINE_CLASS_QUERY(MemBarStoreStore)
977 DEFINE_CLASS_QUERY(MergeMem)
978 DEFINE_CLASS_QUERY(Move)
979 DEFINE_CLASS_QUERY(Mul)
980 DEFINE_CLASS_QUERY(Multi)
981 DEFINE_CLASS_QUERY(MultiBranch)
982 DEFINE_CLASS_QUERY(Neg)
983 DEFINE_CLASS_QUERY(NegV)
984 DEFINE_CLASS_QUERY(NeverBranch)
985 DEFINE_CLASS_QUERY(Opaque1)
986 DEFINE_CLASS_QUERY(Opaque4)
987 DEFINE_CLASS_QUERY(OpaqueInitializedAssertionPredicate)
988 DEFINE_CLASS_QUERY(OpaqueLoopInit)
989 DEFINE_CLASS_QUERY(OpaqueLoopStride)
990 DEFINE_CLASS_QUERY(OuterStripMinedLoop)
991 DEFINE_CLASS_QUERY(OuterStripMinedLoopEnd)
992 DEFINE_CLASS_QUERY(Parm)
993 DEFINE_CLASS_QUERY(ParsePredicate)
994 DEFINE_CLASS_QUERY(PCTable)
995 DEFINE_CLASS_QUERY(Phi)
996 DEFINE_CLASS_QUERY(Proj)
997 DEFINE_CLASS_QUERY(Reduction)
998 DEFINE_CLASS_QUERY(Region)
999 DEFINE_CLASS_QUERY(Root)
1000 DEFINE_CLASS_QUERY(SafePoint)
1001 DEFINE_CLASS_QUERY(SafePointScalarObject)
1002 DEFINE_CLASS_QUERY(SafePointScalarMerge)
1003 DEFINE_CLASS_QUERY(Start)
1004 DEFINE_CLASS_QUERY(Store)
1005 DEFINE_CLASS_QUERY(Sub)
1006 DEFINE_CLASS_QUERY(SubTypeCheck)
1007 DEFINE_CLASS_QUERY(Type)
1008 DEFINE_CLASS_QUERY(InlineType)
1009 DEFINE_CLASS_QUERY(Vector)
1010 DEFINE_CLASS_QUERY(VectorMaskCmp)
1011 DEFINE_CLASS_QUERY(VectorUnbox)
1012 DEFINE_CLASS_QUERY(VectorReinterpret)
1013 DEFINE_CLASS_QUERY(CompressV)
1014 DEFINE_CLASS_QUERY(ExpandV)
1015 DEFINE_CLASS_QUERY(CompressM)
1016 DEFINE_CLASS_QUERY(LoadVector)
1017 DEFINE_CLASS_QUERY(LoadVectorGather)
1018 DEFINE_CLASS_QUERY(LoadVectorMasked)
1019 DEFINE_CLASS_QUERY(LoadVectorGatherMasked)
1020 DEFINE_CLASS_QUERY(StoreVector)
1021 DEFINE_CLASS_QUERY(StoreVectorScatter)
1022 DEFINE_CLASS_QUERY(StoreVectorMasked)
1023 DEFINE_CLASS_QUERY(StoreVectorScatterMasked)
1024 DEFINE_CLASS_QUERY(ShiftV)
1025 DEFINE_CLASS_QUERY(Unlock)
1026
1027 #undef DEFINE_CLASS_QUERY
1028
|