LLVM 22.0.0git
|
#include "llvm/CodeGen/GlobalISel/GISelValueTracking.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/FloatingPointMode.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
#include "llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/LowLevelTypeUtils.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Register.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/FMF.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/KnownFPClass.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 (GISelValueTrackingAnalysisLegacy, DEBUG_TYPE, "Analysis for ComputingKnownBits", false, true) GISelValueTracking | |
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 bool | outputDenormalIsIEEEOrPosZero (const MachineFunction &MF, LLT Ty) |
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 41 of file GISelValueTracking.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 1760 of file GISelValueTracking.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::GISelValueTracking::computeNumSignBits().
|
static |
Definition at line 120 of file GISelValueTracking.cpp.
References llvm::dbgs(), llvm::Depth, MI, llvm::KnownBits::One, llvm::toString(), and llvm::KnownBits::Zero.
Referenced by llvm::GISelValueTracking::computeKnownBitsImpl().
|
static |
Definition at line 152 of file GISelValueTracking.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 | ( | GISelValueTrackingAnalysisLegacy | , |
DEBUG_TYPE | , | ||
"Analysis for ComputingKnownBits" | , | ||
false | , | ||
true | |||
) |
Definition at line 48 of file GISelValueTracking.cpp.
|
static |
Definition at line 708 of file GISelValueTracking.cpp.
References llvm::MachineFunction::getDenormalMode(), llvm::getFltSemanticForLLT(), llvm::LLT::getScalarType(), llvm::DenormalMode::IEEE, and llvm::DenormalMode::PositiveZero.