LLVM 22.0.0git
Macros | Functions
GISelValueTracking.cpp File Reference
#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.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "gisel-known-bits"

Provides analysis for querying information about KnownBits during GISel passes.

Definition at line 41 of file GISelValueTracking.cpp.

Function Documentation

◆ computeNumSignBitsFromRangeMetadata()

static unsigned computeNumSignBitsFromRangeMetadata ( const GAnyLoad Ld,
unsigned  TyBits 
)
static

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().

◆ dumpResult()

static LLVM_ATTRIBUTE_UNUSED void dumpResult ( const MachineInstr MI,
const KnownBits Known,
unsigned  Depth 
)
static

◆ extractBits()

static KnownBits extractBits ( unsigned  BitWidth,
const KnownBits SrcOpKnown,
const KnownBits OffsetKnown,
const KnownBits WidthKnown 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( GISelValueTrackingAnalysisLegacy  ,
DEBUG_TYPE  ,
"Analysis for ComputingKnownBits"  ,
false  ,
true   
)

Definition at line 48 of file GISelValueTracking.cpp.

◆ outputDenormalIsIEEEOrPosZero()

static bool outputDenormalIsIEEEOrPosZero ( const MachineFunction MF,
LLT  Ty 
)
static