LLVM API Documentation
#include <Operator.h>
Public Types | |
enum | { NoUnsignedWrap = (1 << 0), NoSignedWrap = (1 << 1) } |
Public Member Functions | |
bool | hasNoUnsignedWrap () const |
bool | hasNoSignedWrap () const |
Static Public Member Functions | |
static bool | classof (const Instruction *I) |
static bool | classof (const ConstantExpr *CE) |
static bool | classof (const Value *V) |
Friends | |
class | BinaryOperator |
class | ConstantExpr |
OverflowingBinaryOperator - Utility class for integer arithmetic operators which may exhibit overflow - Add, Sub, and Mul. It does not include SDiv, despite that operator having the potential for overflow.
Definition at line 79 of file Operator.h.
anonymous enum |
Definition at line 81 of file Operator.h.
static bool llvm::OverflowingBinaryOperator::classof | ( | const Instruction * | I | ) | [inline, static] |
Reimplemented from llvm::Operator.
Reimplemented in llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Add >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Sub >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Shl >, and llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Mul >.
Definition at line 111 of file Operator.h.
References llvm::Instruction::getOpcode().
Referenced by classof().
static bool llvm::OverflowingBinaryOperator::classof | ( | const ConstantExpr * | CE | ) | [inline, static] |
Reimplemented from llvm::Operator.
Reimplemented in llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Add >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Sub >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Shl >, and llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Mul >.
Definition at line 117 of file Operator.h.
References llvm::ConstantExpr::getOpcode().
static bool llvm::OverflowingBinaryOperator::classof | ( | const Value * | V | ) | [inline, static] |
Reimplemented from llvm::Operator.
Reimplemented in llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Add >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Sub >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Shl >, and llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Mul >.
Definition at line 123 of file Operator.h.
References classof().
bool llvm::OverflowingBinaryOperator::hasNoSignedWrap | ( | ) | const [inline] |
hasNoSignedWrap - Test whether this operation is known to never undergo signed overflow, aka the nsw property.
Definition at line 107 of file Operator.h.
References NoSignedWrap, and llvm::Value::SubclassOptionalData.
Referenced by DecomposeSimpleLinearExpr(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), MaintainNoSignedWrap(), and SimplifyDiv().
bool llvm::OverflowingBinaryOperator::hasNoUnsignedWrap | ( | ) | const [inline] |
hasNoUnsignedWrap - Test whether this operation is known to never undergo unsigned overflow, aka the nuw property.
Definition at line 101 of file Operator.h.
References NoUnsignedWrap, and llvm::Value::SubclassOptionalData.
Referenced by DecomposeSimpleLinearExpr(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), and SimplifyDiv().
friend class BinaryOperator [friend] |
Definition at line 87 of file Operator.h.
friend class ConstantExpr [friend] |
Definition at line 88 of file Operator.h.