LLVM 19.0.0git
Namespaces | Macros | Functions | Variables
AArch64PostLegalizerCombiner.cpp File Reference

Post-legalization combines on generic MachineInstrs. More...

#include "AArch64TargetMachine.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/CodeGen/GlobalISel/CSEInfo.h"
#include "llvm/CodeGen/GlobalISel/CSEMIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Combiner.h"
#include "llvm/CodeGen/GlobalISel/CombinerHelper.h"
#include "llvm/CodeGen/GlobalISel/CombinerInfo.h"
#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"
#include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
#include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/Support/Debug.h"
#include "AArch64GenPostLegalizeGICombiner.inc"

Go to the source code of this file.

Namespaces

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

Macros

#define GET_GICOMBINER_DEPS
 
#define DEBUG_TYPE   "aarch64-postlegalizer-combiner"
 
#define GET_GICOMBINER_TYPES
 
#define GET_GICOMBINER_CLASS_MEMBERS
 
#define GET_GICOMBINER_IMPL
 
#define GET_GICOMBINER_CONSTRUCTOR_INITS
 

Functions

 INITIALIZE_PASS_BEGIN (AArch64PostLegalizerCombiner, DEBUG_TYPE, "Combine AArch64 MachineInstrs after legalization", false, false) INITIALIZE_PASS_END(AArch64PostLegalizerCombiner
 
FunctionPassllvm::createAArch64PostLegalizerCombiner (bool IsOptNone)
 

Variables

static cl::opt< boolEnableConsecutiveMemOpOpt ("aarch64-postlegalizer-consecutive-memops", cl::init(true), cl::Hidden, cl::desc("Enable consecutive memop optimization " "in AArch64PostLegalizerCombiner"))
 
 DEBUG_TYPE
 
Combine AArch64 MachineInstrs after legalization
 
Combine AArch64 MachineInstrs after false
 

Detailed Description

Post-legalization combines on generic MachineInstrs.

The combines here must preserve instruction legality.

Lowering combines (e.g. pseudo matching) should be handled by AArch64PostLegalizerLowering.

Combines which don't rely on instruction legality should go in the AArch64PreLegalizerCombiner.

Definition in file AArch64PostLegalizerCombiner.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-postlegalizer-combiner"

Definition at line 47 of file AArch64PostLegalizerCombiner.cpp.

◆ GET_GICOMBINER_CLASS_MEMBERS

#define GET_GICOMBINER_CLASS_MEMBERS

Definition at line 404 of file AArch64PostLegalizerCombiner.cpp.

◆ GET_GICOMBINER_CONSTRUCTOR_INITS

#define GET_GICOMBINER_CONSTRUCTOR_INITS

◆ GET_GICOMBINER_DEPS

#define GET_GICOMBINER_DEPS

Definition at line 43 of file AArch64PostLegalizerCombiner.cpp.

◆ GET_GICOMBINER_IMPL

#define GET_GICOMBINER_IMPL

Definition at line 409 of file AArch64PostLegalizerCombiner.cpp.

◆ GET_GICOMBINER_TYPES

#define GET_GICOMBINER_TYPES

Definition at line 54 of file AArch64PostLegalizerCombiner.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AArch64PostLegalizerCombiner  ,
DEBUG_TYPE  ,
"Combine AArch64 MachineInstrs after legalization"  ,
false  ,
false   
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 706 of file AArch64PostLegalizerCombiner.cpp.

◆ EnableConsecutiveMemOpOpt

cl::opt< bool > EnableConsecutiveMemOpOpt("aarch64-postlegalizer-consecutive-memops", cl::init(true), cl::Hidden, cl::desc("Enable consecutive memop optimization " "in AArch64PostLegalizerCombiner")) ( "aarch64-postlegalizer-consecutive-memops"  ,
cl::init(true ,
cl::Hidden  ,
cl::desc("Enable consecutive memop optimization " "in AArch64PostLegalizerCombiner")   
)
static

◆ false

Combine AArch64 MachineInstrs after false

Definition at line 707 of file AArch64PostLegalizerCombiner.cpp.

◆ legalization

Combine AArch64 MachineInstrs after legalization

Definition at line 707 of file AArch64PostLegalizerCombiner.cpp.