LLVM 20.0.0git
Namespaces | Macros | Functions | Variables
AArch64PostLegalizerLowering.cpp File Reference

Post-legalization lowering for instructions. More...

#include "AArch64ExpandImm.h"
#include "AArch64GlobalISelUtils.h"
#include "AArch64PerfectShuffle.h"
#include "AArch64Subtarget.h"
#include "AArch64TargetMachine.h"
#include "GISel/AArch64LegalizerInfo.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "TargetInfo/AArch64TargetInfo.h"
#include "Utils/AArch64BaseInfo.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/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/LegalizerHelper.h"
#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include <optional>
#include "AArch64GenPostLegalizeGILowering.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-lowering"
 
#define GET_GICOMBINER_TYPES
 
#define GET_GICOMBINER_CLASS_MEMBERS
 
#define GET_GICOMBINER_IMPL
 
#define GET_GICOMBINER_CONSTRUCTOR_INITS
 

Functions

 INITIALIZE_PASS_BEGIN (AArch64PostLegalizerLowering, DEBUG_TYPE, "Lower AArch64 MachineInstrs after legalization", false, false) INITIALIZE_PASS_END(AArch64PostLegalizerLowering
 
FunctionPassllvm::createAArch64PostLegalizerLowering ()
 

Variables

 DEBUG_TYPE
 
Lower AArch64 MachineInstrs after legalization
 
Lower AArch64 MachineInstrs after false
 

Detailed Description

Post-legalization lowering for instructions.

This is used to offload pattern matching from the selector.

For example, this combiner will notice that a G_SHUFFLE_VECTOR is actually a G_ZIP, G_UZP, etc.

General optimization combines should be handled by either the AArch64PostLegalizerCombiner or the AArch64PreLegalizerCombiner.

Definition in file AArch64PostLegalizerLowering.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-postlegalizer-lowering"

Definition at line 57 of file AArch64PostLegalizerLowering.cpp.

◆ GET_GICOMBINER_CLASS_MEMBERS

#define GET_GICOMBINER_CLASS_MEMBERS

Definition at line 1229 of file AArch64PostLegalizerLowering.cpp.

◆ GET_GICOMBINER_CONSTRUCTOR_INITS

#define GET_GICOMBINER_CONSTRUCTOR_INITS

◆ GET_GICOMBINER_DEPS

#define GET_GICOMBINER_DEPS

Definition at line 53 of file AArch64PostLegalizerLowering.cpp.

◆ GET_GICOMBINER_IMPL

#define GET_GICOMBINER_IMPL

Definition at line 1234 of file AArch64PostLegalizerLowering.cpp.

◆ GET_GICOMBINER_TYPES

#define GET_GICOMBINER_TYPES

Definition at line 65 of file AArch64PostLegalizerLowering.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AArch64PostLegalizerLowering  ,
DEBUG_TYPE  ,
"Lower AArch64 MachineInstrs after legalization"  ,
false  ,
false   
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1314 of file AArch64PostLegalizerLowering.cpp.

◆ false

Lower AArch64 MachineInstrs after false

Definition at line 1315 of file AArch64PostLegalizerLowering.cpp.

◆ legalization

Lower AArch64 MachineInstrs after legalization

Definition at line 1315 of file AArch64PostLegalizerLowering.cpp.