aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/InstrTypes.h
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-08-15 14:15:48 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-08-15 14:15:48 +0000
commit1718337cf7e42f38b34be31c7b74e9907a276584 (patch)
tree190532240d386d48247bd20e5b0b18f57d465c9a /include/llvm/InstrTypes.h
parent0f63e22e843e750ab89617824183d2821563f5e7 (diff)
downloadexternal_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/llvm/InstrTypes.h')
-rw-r--r--include/llvm/InstrTypes.h20
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();
}