LLVM  10.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
llvm::LegalizationArtifactCombiner Class Reference

#include "llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h"

Public Member Functions

 LegalizationArtifactCombiner (MachineIRBuilder &B, MachineRegisterInfo &MRI, const LegalizerInfo &LI)
 
bool tryCombineAnyExt (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 
bool tryCombineZExt (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 
bool tryCombineSExt (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 
bool tryFoldImplicitDef (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 Try to fold G_[ASZ]EXT (G_IMPLICIT_DEF). More...
 
bool tryCombineMerges (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 
bool tryCombineExtract (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts)
 
bool tryCombineInstruction (MachineInstr &MI, SmallVectorImpl< MachineInstr *> &DeadInsts, GISelObserverWrapper &WrapperObserver)
 Try to combine away MI. More...
 

Static Public Member Functions

static unsigned canFoldMergeOpcode (unsigned MergeOp, unsigned ConvertOp, LLT OpTy, LLT DestTy)
 
static bool isMergeLikeOpcode (unsigned Opc)
 

Detailed Description

Definition at line 26 of file LegalizationArtifactCombiner.h.

Constructor & Destructor Documentation

◆ LegalizationArtifactCombiner()

llvm::LegalizationArtifactCombiner::LegalizationArtifactCombiner ( MachineIRBuilder B,
MachineRegisterInfo MRI,
const LegalizerInfo LI 
)
inline

Definition at line 44 of file LegalizationArtifactCombiner.h.

Member Function Documentation

◆ canFoldMergeOpcode()

static unsigned llvm::LegalizationArtifactCombiner::canFoldMergeOpcode ( unsigned  MergeOp,
unsigned  ConvertOp,
LLT  OpTy,
LLT  DestTy 
)
inlinestatic

◆ isMergeLikeOpcode()

static bool llvm::LegalizationArtifactCombiner::isMergeLikeOpcode ( unsigned  Opc)
inlinestatic

Definition at line 338 of file LegalizationArtifactCombiner.h.

◆ tryCombineAnyExt()

bool llvm::LegalizationArtifactCombiner::tryCombineAnyExt ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

◆ tryCombineExtract()

bool llvm::LegalizationArtifactCombiner::tryCombineExtract ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

◆ tryCombineInstruction()

bool llvm::LegalizationArtifactCombiner::tryCombineInstruction ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts,
GISelObserverWrapper WrapperObserver 
)
inline

◆ tryCombineMerges()

bool llvm::LegalizationArtifactCombiner::tryCombineMerges ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

◆ tryCombineSExt()

bool llvm::LegalizationArtifactCombiner::tryCombineSExt ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

◆ tryCombineZExt()

bool llvm::LegalizationArtifactCombiner::tryCombineZExt ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

◆ tryFoldImplicitDef()

bool llvm::LegalizationArtifactCombiner::tryFoldImplicitDef ( MachineInstr MI,
SmallVectorImpl< MachineInstr *> &  DeadInsts 
)
inline

The documentation for this class was generated from the following file: