LLVM 20.0.0git
|
#include "llvm/IR/ConstantFPRange.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
Go to the source code of this file.
Functions | |
static APFloat::cmpResult | strictCompare (const APFloat &LHS, const APFloat &RHS) |
static bool | isNonCanonicalEmptySet (const APFloat &Lower, const APFloat &Upper) |
static void | canonicalizeRange (APFloat &Lower, APFloat &Upper) |
static bool | fcmpPredExcludesEqual (FCmpInst::Predicate Pred) |
Return true for ULT/UGT/OLT/OGT. | |
static ConstantFPRange | makeLessThan (APFloat V, FCmpInst::Predicate Pred) |
Return [-inf, V) or [-inf, V]. | |
static ConstantFPRange | makeGreaterThan (APFloat V, FCmpInst::Predicate Pred) |
Return (V, +inf] or [V, +inf]. | |
static ConstantFPRange | extendZeroIfEqual (const ConstantFPRange &CR, FCmpInst::Predicate Pred) |
Make sure that +0/-0 are both included in the range. | |
static ConstantFPRange | setNaNField (const ConstantFPRange &CR, FCmpInst::Predicate Pred) |
Definition at line 76 of file ConstantFPRange.cpp.
References llvm::APFloat::getInf(), isNonCanonicalEmptySet(), llvm::Lower, and llvm::Upper.
Referenced by llvm::ConstantFPRange::intersectWith().
|
static |
Make sure that +0/-0 are both included in the range.
Definition at line 141 of file ConstantFPRange.cpp.
References llvm::ConstantFPRange::containsQNaN(), llvm::ConstantFPRange::containsSNaN(), fcmpPredExcludesEqual(), llvm::ConstantFPRange::getLower(), llvm::ConstantFPRange::getUpper(), llvm::APFloat::getZero(), llvm::Lower, and llvm::Upper.
Referenced by llvm::ConstantFPRange::makeAllowedFCmpRegion(), and llvm::ConstantFPRange::makeSatisfyingFCmpRegion().
|
static |
Return true for ULT/UGT/OLT/OGT.
Definition at line 112 of file ConstantFPRange.cpp.
References llvm::CmpInst::FCMP_OEQ.
Referenced by extendZeroIfEqual(), makeGreaterThan(), and makeLessThan().
Definition at line 71 of file ConstantFPRange.cpp.
References llvm::APFloatBase::cmpGreaterThan, llvm::Lower, strictCompare(), and llvm::Upper.
Referenced by canonicalizeRange(), and llvm::ConstantFPRange::ConstantFPRange().
|
static |
Return (V, +inf] or [V, +inf].
Definition at line 129 of file ConstantFPRange.cpp.
References fcmpPredExcludesEqual(), llvm::APFloat::getInf(), and llvm::ConstantFPRange::getNonNaN().
Referenced by llvm::ConstantFPRange::makeAllowedFCmpRegion(), and llvm::ConstantFPRange::makeSatisfyingFCmpRegion().
|
static |
Return [-inf, V) or [-inf, V].
Definition at line 117 of file ConstantFPRange.cpp.
References fcmpPredExcludesEqual(), llvm::APFloat::getInf(), and llvm::ConstantFPRange::getNonNaN().
Referenced by llvm::ConstantFPRange::makeAllowedFCmpRegion(), and llvm::ConstantFPRange::makeSatisfyingFCmpRegion().
|
static |
Definition at line 156 of file ConstantFPRange.cpp.
References llvm::ConstantFPRange::getLower(), llvm::ConstantFPRange::getUpper(), and llvm::CmpInst::isUnordered().
Referenced by llvm::ConstantFPRange::makeAllowedFCmpRegion(), and llvm::ConstantFPRange::makeSatisfyingFCmpRegion().
Definition at line 60 of file ConstantFPRange.cpp.
References assert(), llvm::APFloatBase::cmpEqual, llvm::APFloatBase::cmpGreaterThan, llvm::APFloatBase::cmpLessThan, LHS, and RHS.
Referenced by llvm::ConstantFPRange::contains(), and isNonCanonicalEmptySet().