LLVM 20.0.0git
Classes | Namespaces | Typedefs
CombinerHelper.h File Reference

This contains common combine transformations that may be used in a combine pass,or by the target elsewhere. More...

#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/Register.h"
#include "llvm/CodeGenTypes/LowLevelType.h"
#include "llvm/IR/InstrTypes.h"
#include <functional>

Go to the source code of this file.

Classes

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

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Typedefs

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.