|
LLVM 24.0.0git
|
This class provides utilities for finding source registers of specific bit ranges in an artifact. More...
#include "llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h"
Public Member Functions | |
| ArtifactValueFinder (MachineRegisterInfo &Mri, MachineIRBuilder &Builder, const LegalizerInfo &Info) | |
| Register | findValueFromDef (Register DefReg, unsigned StartBit, unsigned Size, LLT DstTy) |
Try to find a source of the value defined in the def DefReg, starting at position StartBit with size Size. | |
| bool | tryCombineUnmergeDefs (GUnmerge &MI, GISelChangeObserver &Observer, SmallVectorImpl< Register > &UpdatedDefs) |
Try to combine the defs of an unmerge MI by attempting to find values that provides the bits for each def reg. | |
| GUnmerge * | findUnmergeThatDefinesReg (Register Reg, unsigned Size, unsigned &DefOperandIdx) |
| bool | isSequenceFromUnmerge (GMergeLikeInstr &MI, unsigned MergeStartIdx, GUnmerge *Unmerge, unsigned UnmergeIdxStart, unsigned NumElts, unsigned EltSize, bool AllowUndef) |
| bool | tryCombineMergeLike (GMergeLikeInstr &MI, SmallVectorImpl< MachineInstr * > &DeadInsts, SmallVectorImpl< Register > &UpdatedDefs, GISelChangeObserver &Observer) |
This class provides utilities for finding source registers of specific bit ranges in an artifact.
The routines can look through the source registers if they're other artifacts to try to find a non-artifact source of a value.
Definition at line 621 of file LegalizationArtifactCombiner.h.
|
inline |
Definition at line 897 of file LegalizationArtifactCombiner.h.
|
inline |
Definition at line 945 of file LegalizationArtifactCombiner.h.
References llvm::dyn_cast(), Reg, and Size.
Referenced by isSequenceFromUnmerge(), and tryCombineMergeLike().
|
inline |
Try to find a source of the value defined in the def DefReg, starting at position StartBit with size Size.
Definition at line 905 of file LegalizationArtifactCombiner.h.
References Register, and Size.
Referenced by llvm::LegalizationArtifactCombiner::tryCombineTrunc(), and tryCombineUnmergeDefs().
|
inline |
Definition at line 960 of file LegalizationArtifactCombiner.h.
References assert(), findUnmergeThatDefinesReg(), llvm::MIPatternMatch::m_GImplicitDef(), MI, and llvm::MIPatternMatch::mi_match().
Referenced by tryCombineMergeLike().
|
inline |
Definition at line 982 of file LegalizationArtifactCombiner.h.
References findUnmergeThatDefinesReg(), llvm::getCoverTy(), llvm::LLT::getScalarType(), llvm::LLT::getSizeInBits(), isSequenceFromUnmerge(), llvm::LLT::isVector(), MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::LegalizationArtifactCombiner::replaceRegOrBuildCopy().
Referenced by llvm::LegalizationArtifactCombiner::tryCombineInstruction().
|
inline |
Try to combine the defs of an unmerge MI by attempting to find values that provides the bits for each def reg.
Definition at line 915 of file LegalizationArtifactCombiner.h.
References llvm::SmallBitVector::all(), llvm::GISelChangeObserver::changedInstr(), llvm::GISelChangeObserver::changingInstr(), findValueFromDef(), llvm::LLT::getSizeInBits(), MI, and llvm::LegalizationArtifactCombiner::replaceRegOrBuildCopy().
Referenced by llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().