Provide static methods in BinaryOperator to determine if an opcode is an equality opcode, a relational opcode, or a logical opcode.

llvm-svn: 53744
This commit is contained in:
Ted Kremenek 2008-07-17 23:24:36 +00:00
parent 9c32a1ecf5
commit 2fe3afca04
1 changed files with 10 additions and 3 deletions

View File

@ -937,9 +937,16 @@ public:
bool isAdditiveOp() const { return Opc == Add || Opc == Sub; }
bool isShiftOp() const { return Opc == Shl || Opc == Shr; }
bool isBitwiseOp() const { return Opc >= And && Opc <= Or; }
bool isRelationalOp() const { return Opc >= LT && Opc <= GE; }
bool isEqualityOp() const { return Opc == EQ || Opc == NE; }
bool isLogicalOp() const { return Opc == LAnd || Opc == LOr; }
static bool isRelationalOp(Opcode Opc) { return Opc >= LT && Opc <= GE; }
bool isRelationalOp() const { return isRelationalOp(Opc); }
static bool isEqualityOp(Opcode Opc) { return Opc == EQ || Opc == NE; }
bool isEqualityOp() const { return isEqualityOp(Opc); }
static bool isLogicalOp(Opcode Opc) { return Opc == LAnd || Opc == LOr; }
bool isLogicalOp() const { return isLogicalOp(Opc); }
bool isAssignmentOp() const { return Opc >= Assign && Opc <= OrAssign; }
bool isCompoundAssignmentOp() const { return Opc > Assign && Opc <= OrAssign;}
bool isShiftAssignOp() const { return Opc == ShlAssign || Opc == ShrAssign; }