LLVM  14.0.0git
Classes | Namespaces | Typedefs
CombinerHelper.h File Reference
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/LowLevelType.h"
#include "llvm/CodeGen/Register.h"
#include "llvm/Support/Alignment.h"
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.

Classes

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
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 

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.