diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-08-15 14:15:48 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-08-15 14:15:48 +0000 |
commit | 1718337cf7e42f38b34be31c7b74e9907a276584 (patch) | |
tree | 190532240d386d48247bd20e5b0b18f57d465c9a /include | |
parent | 0f63e22e843e750ab89617824183d2821563f5e7 (diff) | |
download | external_llvm-1718337cf7e42f38b34be31c7b74e9907a276584.zip external_llvm-1718337cf7e42f38b34be31c7b74e9907a276584.tar.gz external_llvm-1718337cf7e42f38b34be31c7b74e9907a276584.tar.bz2 |
Added more helper functions for binary instructions emulating
unary Neg and Not: isNeg, isNot, getNegArgument, and getNotArgument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3341 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/InstrTypes.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/llvm/InstrTypes.h b/include/llvm/InstrTypes.h index 6f71710..ccce21a 100644 --- a/include/llvm/InstrTypes.h +++ b/include/llvm/InstrTypes.h @@ -77,12 +77,28 @@ public: static BinaryOperator *create(BinaryOps Op, Value *S1, Value *S2, const std::string &Name = ""); - // createNeg, createNot - Helper constructors that create the "neg" and "not" - // instructions out of "sub" and "xor" instructions. + // Helper functions to construct and inspect unary operations (NEG and NOT) + // via binary operators SUB and XOR: + // + // createNeg, createNot - Create the NEG and NOT + // instructions out of SUB and XOR instructions. // + // isNeg, isNot - Check if the given Value is a NEG or NOT instruction. + // + // getNegArgument, getNotArgument - Helper functions to extract the + // unary argument of a NEG or NOT operation implemented via Sub or Xor. + // static BinaryOperator *createNeg(Value *Op, const std::string &Name = ""); static BinaryOperator *createNot(Value *Op, const std::string &Name = ""); + static bool isNeg(const Value *V); + static bool isNot(const Value *V); + + static const Value* getNegArgument(const BinaryOperator* Bop); + static Value* getNegArgument( BinaryOperator* Bop); + static const Value* getNotArgument(const BinaryOperator* Bop); + static Value* getNotArgument( BinaryOperator* Bop); + BinaryOps getOpcode() const { return (BinaryOps)Instruction::getOpcode(); } |