LLVM  17.0.0git
Classes | Namespaces | Typedefs
CombinerHelper.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/Register.h"
#include "llvm/Support/LowLevelTypeImpl.h"
#include "llvm/IR/InstrTypes.h"
#include <functional>
Include dependency graph for CombinerHelper.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  llvm::PreferredTuple
struct  llvm::IndexedLoadStoreMatchInfo
struct  llvm::PtrAddChain
struct  llvm::RegisterImmPair
struct  llvm::ShiftOfShiftedLogic
struct  llvm::MergeTruncStoresInfo
struct  llvm::InstructionBuildSteps
struct  llvm::InstructionStepsMatchInfo
class  llvm::CombinerHelper


 This is an optimization pass for GlobalISel generic memory operations.


using llvm::BuildFnTy = std::function< void(MachineIRBuilder &)>
using llvm::OperandBuildSteps = SmallVector< std::function< void(MachineInstrBuilder &)>, 4 >

Detailed Description

This contains common combine transformations that may be used in a combine pass,or by the target elsewhere. Targets can pick individual opcode transformations from the helper or use tryCombine which invokes all transformations. All of the transformations return true if the MachineInstruction changed and false otherwise.

Definition in file CombinerHelper.h.