LLVM 20.0.0git
|
#include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/Target/TargetMachine.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "gisel-known-bits" |
Provides analysis for querying information about KnownBits during GISel passes. | |
Functions | |
INITIALIZE_PASS (GISelKnownBitsAnalysis, DEBUG_TYPE, "Analysis for ComputingKnownBits", false, true) GISelKnownBits | |
static LLVM_ATTRIBUTE_UNUSED void | dumpResult (const MachineInstr &MI, const KnownBits &Known, unsigned Depth) |
static KnownBits | extractBits (unsigned BitWidth, const KnownBits &SrcOpKnown, const KnownBits &OffsetKnown, const KnownBits &WidthKnown) |
static unsigned | computeNumSignBitsFromRangeMetadata (const GAnyLoad *Ld, unsigned TyBits) |
Compute the known number of sign bits with attached range metadata in the memory operand. | |
#define DEBUG_TYPE "gisel-known-bits" |
Provides analysis for querying information about KnownBits during GISel passes.
Definition at line 25 of file GISelKnownBits.cpp.
Compute the known number of sign bits with attached range metadata in the memory operand.
If this is an extending load, accounts for the behavior of the high bits.
Definition at line 649 of file GISelKnownBits.cpp.
References llvm::ConstantRange::getBitWidth(), llvm::getConstantRangeFromMetadata(), llvm::APInt::getNumSignBits(), llvm::MachineInstr::getOpcode(), llvm::GAnyLoad::getRanges(), llvm::ConstantRange::getSignedMax(), llvm::ConstantRange::getSignedMin(), llvm::ConstantRange::signExtend(), and llvm::ConstantRange::zeroExtend().
Referenced by llvm::GISelKnownBits::computeNumSignBits().
|
static |
Definition at line 100 of file GISelKnownBits.cpp.
References llvm::dbgs(), llvm::Depth, MI, llvm::KnownBits::One, llvm::toString(), and llvm::KnownBits::Zero.
Referenced by llvm::GISelKnownBits::computeKnownBitsImpl().
|
static |
Definition at line 132 of file GISelKnownBits.cpp.
References llvm::BitWidth, llvm::APInt::getBitsSetFrom(), llvm::APInt::getLimitedValue(), llvm::APInt::getLowBitsSet(), llvm::KnownBits::getMaxValue(), llvm::KnownBits::getMinValue(), and llvm::KnownBits::lshr().
INITIALIZE_PASS | ( | GISelKnownBitsAnalysis | , |
DEBUG_TYPE | , | ||
"Analysis for ComputingKnownBits" | , | ||
false | , | ||
true | |||
) |
Definition at line 31 of file GISelKnownBits.cpp.