LLVM
12.0.0git
|
#include "llvm/ADT/APInt.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Operator.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
Go to the source code of this file.
Functions | |
static ConstantRange | makeExactMulNUWRegion (const APInt &V) |
Exact mul nuw region for single element RHS. More... | |
static ConstantRange | makeExactMulNSWRegion (const APInt &V) |
Exact mul nsw region for single element RHS. More... | |
static ConstantRange | getPreferredRange (const ConstantRange &CR1, const ConstantRange &CR2, ConstantRange::PreferredRangeType Type) |
|
static |
Definition at line 443 of file ConstantRange.cpp.
References llvm::ConstantRange::isSignWrappedSet(), llvm::ConstantRange::isSizeStrictlySmallerThan(), llvm::ConstantRange::isWrappedSet(), llvm::ConstantRange::Signed, and llvm::ConstantRange::Unsigned.
Referenced by llvm::ConstantRange::intersectWith(), and llvm::ConstantRange::unionWith().
|
static |
Exact mul nsw region for single element RHS.
Definition at line 198 of file ConstantRange.cpp.
References llvm::BitWidth, llvm::APInt::DOWN, llvm::APInt::getBitWidth(), llvm::APInt::getSignedMaxValue(), llvm::APInt::getSignedMinValue(), llvm::APInt::isAllOnesValue(), llvm::APInt::isNegative(), llvm::APInt::isOneValue(), llvm::LegalizeActions::Lower, llvm::APIntOps::RoundingSDiv(), llvm::APInt::UP, and llvm::Upper.
Referenced by llvm::ConstantRange::makeGuaranteedNoWrapRegion().
|
static |
Exact mul nuw region for single element RHS.
Definition at line 185 of file ConstantRange.cpp.
References llvm::BitWidth, llvm::APInt::DOWN, llvm::APInt::getBitWidth(), llvm::APInt::getMaxValue(), llvm::APInt::getMinValue(), llvm::ConstantRange::getNonEmpty(), llvm::APIntOps::RoundingUDiv(), and llvm::APInt::UP.
Referenced by llvm::ConstantRange::makeGuaranteedNoWrapRegion().