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/IR/Module.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 26 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 629 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 101 of file GISelKnownBits.cpp.
References llvm::dbgs(), llvm::Depth, MI, llvm::KnownBits::One, llvm::dwarf::toString(), and llvm::KnownBits::Zero.
Referenced by llvm::GISelKnownBits::computeKnownBitsImpl().
|
static |
Definition at line 133 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().
Referenced by combineX86ShufflesRecursively(), and llvm::GISelKnownBits::computeKnownBitsImpl().
INITIALIZE_PASS | ( | GISelKnownBitsAnalysis | , |
DEBUG_TYPE | , | ||
"Analysis for ComputingKnownBits" | , | ||
false | , | ||
true | |||
) |
Definition at line 32 of file GISelKnownBits.cpp.