mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-26 05:27:43 +00:00
Round out the API for the new optimization flags.
llvm-svn: 82930
This commit is contained in:
parent
24af6de20a
commit
81504d2150
@ -311,17 +311,26 @@ public:
|
||||
/// setHasNoUnsignedWrap - Set or clear the nsw flag on this instruction,
|
||||
/// which must be an operator which supports this flag. See LangRef.html
|
||||
/// for the meaning of this flag.
|
||||
void setHasNoUnsignedWrap(bool);
|
||||
void setHasNoUnsignedWrap(bool b = true);
|
||||
|
||||
/// setHasNoSignedWrap - Set or clear the nsw flag on this instruction,
|
||||
/// which must be an operator which supports this flag. See LangRef.html
|
||||
/// for the meaning of this flag.
|
||||
void setHasNoSignedWrap(bool);
|
||||
void setHasNoSignedWrap(bool b = true);
|
||||
|
||||
/// setIsExact - Set or clear the exact flag on this instruction,
|
||||
/// which must be an operator which supports this flag. See LangRef.html
|
||||
/// for the meaning of this flag.
|
||||
void setIsExact(bool);
|
||||
void setIsExact(bool b = true);
|
||||
|
||||
/// hasNoUnsignedWrap - Determine whether the no unsigned wrap flag is set.
|
||||
bool hasNoUnsignedWrap() const;
|
||||
|
||||
/// hasNoSignedWrap - Determine whether the no signed wrap flag is set.
|
||||
bool hasNoSignedWrap() const;
|
||||
|
||||
/// isExact - Determine whether the exact flag is set.
|
||||
bool isExact() const;
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const BinaryOperator *) { return true; }
|
||||
|
@ -604,7 +604,10 @@ public:
|
||||
|
||||
/// setIsInBounds - Set or clear the inbounds flag on this GEP instruction.
|
||||
/// See LangRef.html for the meaning of inbounds on a getelementptr.
|
||||
void setIsInBounds(bool);
|
||||
void setIsInBounds(bool b = true);
|
||||
|
||||
/// isInBounds - Determine whether the GEP has the inbounds flag.
|
||||
bool isInBounds() const;
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const GetElementPtrInst *) { return true; }
|
||||
|
@ -1282,6 +1282,10 @@ void GetElementPtrInst::setIsInBounds(bool B) {
|
||||
cast<GEPOperator>(this)->setIsInBounds(B);
|
||||
}
|
||||
|
||||
bool GetElementPtrInst::isInBounds() const {
|
||||
return cast<GEPOperator>(this)->isInBounds();
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ExtractElementInst Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1838,6 +1842,18 @@ void BinaryOperator::setIsExact(bool b) {
|
||||
cast<SDivOperator>(this)->setIsExact(b);
|
||||
}
|
||||
|
||||
bool BinaryOperator::hasNoUnsignedWrap() const {
|
||||
return cast<OverflowingBinaryOperator>(this)->hasNoUnsignedWrap();
|
||||
}
|
||||
|
||||
bool BinaryOperator::hasNoSignedWrap() const {
|
||||
return cast<OverflowingBinaryOperator>(this)->hasNoSignedWrap();
|
||||
}
|
||||
|
||||
bool BinaryOperator::isExact() const {
|
||||
return cast<SDivOperator>(this)->isExact();
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// CastInst Class
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user