svf-lib 1.0.1355 → 1.0.1356
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -800,6 +800,45 @@ private:
|
|
|
800
800
|
|
|
801
801
|
u32_t predicate;
|
|
802
802
|
public:
|
|
803
|
+
|
|
804
|
+
/// OpCode for CmpStmt, enum value is same to llvm CmpInst
|
|
805
|
+
enum Predicate : unsigned
|
|
806
|
+
{
|
|
807
|
+
// Opcode U L G E Intuitive operation
|
|
808
|
+
FCMP_FALSE = 0, ///< 0 0 0 0 Always false (always folded)
|
|
809
|
+
FCMP_OEQ = 1, ///< 0 0 0 1 True if ordered and equal
|
|
810
|
+
FCMP_OGT = 2, ///< 0 0 1 0 True if ordered and greater than
|
|
811
|
+
FCMP_OGE = 3, ///< 0 0 1 1 True if ordered and greater than or equal
|
|
812
|
+
FCMP_OLT = 4, ///< 0 1 0 0 True if ordered and less than
|
|
813
|
+
FCMP_OLE = 5, ///< 0 1 0 1 True if ordered and less than or equal
|
|
814
|
+
FCMP_ONE = 6, ///< 0 1 1 0 True if ordered and operands are unequal
|
|
815
|
+
FCMP_ORD = 7, ///< 0 1 1 1 True if ordered (no nans)
|
|
816
|
+
FCMP_UNO = 8, ///< 1 0 0 0 True if unordered: isnan(X) | isnan(Y)
|
|
817
|
+
FCMP_UEQ = 9, ///< 1 0 0 1 True if unordered or equal
|
|
818
|
+
FCMP_UGT = 10, ///< 1 0 1 0 True if unordered or greater than
|
|
819
|
+
FCMP_UGE = 11, ///< 1 0 1 1 True if unordered, greater than, or equal
|
|
820
|
+
FCMP_ULT = 12, ///< 1 1 0 0 True if unordered or less than
|
|
821
|
+
FCMP_ULE = 13, ///< 1 1 0 1 True if unordered, less than, or equal
|
|
822
|
+
FCMP_UNE = 14, ///< 1 1 1 0 True if unordered or not equal
|
|
823
|
+
FCMP_TRUE = 15, ///< 1 1 1 1 Always true (always folded)
|
|
824
|
+
FIRST_FCMP_PREDICATE = FCMP_FALSE,
|
|
825
|
+
LAST_FCMP_PREDICATE = FCMP_TRUE,
|
|
826
|
+
BAD_FCMP_PREDICATE = FCMP_TRUE + 1,
|
|
827
|
+
ICMP_EQ = 32, ///< equal
|
|
828
|
+
ICMP_NE = 33, ///< not equal
|
|
829
|
+
ICMP_UGT = 34, ///< unsigned greater than
|
|
830
|
+
ICMP_UGE = 35, ///< unsigned greater or equal
|
|
831
|
+
ICMP_ULT = 36, ///< unsigned less than
|
|
832
|
+
ICMP_ULE = 37, ///< unsigned less or equal
|
|
833
|
+
ICMP_SGT = 38, ///< signed greater than
|
|
834
|
+
ICMP_SGE = 39, ///< signed greater or equal
|
|
835
|
+
ICMP_SLT = 40, ///< signed less than
|
|
836
|
+
ICMP_SLE = 41, ///< signed less or equal
|
|
837
|
+
FIRST_ICMP_PREDICATE = ICMP_EQ,
|
|
838
|
+
LAST_ICMP_PREDICATE = ICMP_SLE,
|
|
839
|
+
BAD_ICMP_PREDICATE = ICMP_SLE + 1
|
|
840
|
+
};
|
|
841
|
+
|
|
803
842
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
804
843
|
//@{
|
|
805
844
|
static inline bool classof(const CmpStmt *)
|
|
@@ -847,6 +886,13 @@ private:
|
|
|
847
886
|
u32_t opcode;
|
|
848
887
|
|
|
849
888
|
public:
|
|
889
|
+
/// OpCode for BinaryOPStmt, enum value is same to llvm BinaryOperator
|
|
890
|
+
enum OpCode: unsigned
|
|
891
|
+
{
|
|
892
|
+
Add = 13, FAdd = 14, Sub = 15, FSub = 16, Mul = 17, FMul = 18, UDiv = 19, SDiv = 20, FDiv = 21, URem = 22,
|
|
893
|
+
SRem = 23, FRem = 24, Shl = 25, LShr = 26, AShr = 27, And = 28, Or = 29, Xor = 30
|
|
894
|
+
};
|
|
895
|
+
|
|
850
896
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
851
897
|
//@{
|
|
852
898
|
static inline bool classof(const BinaryOPStmt *)
|