LLVM  13.0.0git
Macros | Functions | Variables
AArch64ExpandPseudoInsts.cpp File Reference
#include "AArch64ExpandImm.h"
#include "AArch64InstrInfo.h"
#include "AArch64MachineFunctionInfo.h"
#include "AArch64Subtarget.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Triple.h"
#include "llvm/CodeGen/LivePhysRegs.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/Pass.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Target/TargetMachine.h"
#include <cassert>
#include <cstdint>
#include <iterator>
#include <limits>
#include <utility>
Include dependency graph for AArch64ExpandPseudoInsts.cpp:

Go to the source code of this file.

Macros

#define AARCH64_EXPAND_PSEUDO_NAME   "AArch64 pseudo instruction expansion pass"
 

Functions

 INITIALIZE_PASS (AArch64ExpandPseudo, "aarch64-expand-pseudo", AARCH64_EXPAND_PSEUDO_NAME, false, false) static void transferImpOps(MachineInstr &OldMI
 Transfer implicit operands on the pseudo instruction to the instructions created from the expansion. More...
 
 for (unsigned i=Desc.getNumOperands(), e=OldMI.getNumOperands();i !=e;++i)
 

Variables

MachineInstrBuilderUseMI
 
MachineInstrBuilder MachineInstrBuilderDefMI
 

Macro Definition Documentation

◆ AARCH64_EXPAND_PSEUDO_NAME

#define AARCH64_EXPAND_PSEUDO_NAME   "AArch64 pseudo instruction expansion pass"

Definition at line 47 of file AArch64ExpandPseudoInsts.cpp.

Function Documentation

◆ for()

for ( unsigned  i = Desc.getNumOperands(),
= OldMI.getNumOperands(); i != e; ++i 
)

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( AArch64ExpandPseudo  ,
"aarch64-expand-pseudo"  ,
AARCH64_EXPAND_PSEUDO_NAME  ,
false  ,
false   
) &

Transfer implicit operands on the pseudo instruction to the instructions created from the expansion.

Variable Documentation

◆ DefMI

Initial value:
{
const MCInstrDesc &Desc = OldMI.getDesc()

Definition at line 103 of file AArch64ExpandPseudoInsts.cpp.

Referenced by adjustDefLatency(), canFoldIntoCSel(), llvm::LiveRangeEdit::checkRematerializable(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::TargetInstrInfo::computeDefOperandLatency(), llvm::TargetSchedModel::computeOperandLatency(), llvm::TargetSchedModel::computeOutputLatency(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::TargetInstrInfo::defaultDefLatency(), llvm::CombinerHelper::dominates(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::execMayBeModifiedBeforeAnyUse(), llvm::execMayBeModifiedBeforeUse(), llvm::MachineFunction::finalizeDebugInstrRefs(), llvm::VEInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SIInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), for(), llvm::getDefSrcRegIgnoringCopies(), llvm::ARMHazardRecognizerFPMLx::getHazardType(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::getOpcodeDef(), llvm::HexagonInstrInfo::getOperandLatency(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::PPCInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), llvm::SystemZRegisterInfo::getRegAllocationHints(), getSingleDef(), llvm::X86InstrInfo::hasHighOperandLatency(), llvm::TargetInstrInfo::hasLowDefLatency(), hasRAWHazard(), INITIALIZE_PASS(), llvm::MachineTraceMetrics::Trace::isDepInTrace(), isKilled(), llvm::isKnownNeverNaN(), llvm::isNZCVTouchedInInstructionRange(), llvm::CombinerHelper::isPredecessor(), llvm::CombinerHelper::matchExtendThroughPhis(), llvm::PPCInstrInfo::onlyFoldImmediate(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::X86InstrInfo::optimizeLoadInstr(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), regIsPICBase(), removeCopies(), scavengeVReg(), llvm::TailDuplicator::tailDuplicateAndUpdate(), llvm::LegalizationArtifactCombiner::tryFoldImplicitDef(), and updatePHIs().

◆ UseMI

Definition at line 102 of file AArch64ExpandPseudoInsts.cpp.

Referenced by llvm::CombinerHelper::applyCombineExtendingLoads(), llvm::TargetSchedModel::computeOperandLatency(), llvm::CombinerHelper::dominates(), llvm::execMayBeModifiedBeforeUse(), llvm::ModuloScheduleExpander::expand(), llvm::PeelingModuloScheduleExpander::filterInstructions(), findOnlyInterestingUse(), llvm::VEInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SIInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), for(), frameIndexMayFold(), getDataDeps(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::HexagonInstrInfo::getOperandLatency(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::PPCInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), getPHIDeps(), INITIALIZE_PASS(), isCopyFeedingInvariantStore(), isDefLiveOut(), llvm::MachineTraceMetrics::Trace::isDepInTrace(), isInlineConstantIfFolded(), llvm::isNZCVTouchedInInstructionRange(), llvm::CombinerHelper::isPredecessor(), llvm::MachineRegisterInfo::markUsesInDebugValueAsUndef(), matchAArch64MulConstCombine(), llvm::CombinerHelper::matchCombineDivRem(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::PPCInstrInfo::onlyFoldImmediate(), llvm::PPCInstrInfo::optimizeCompareInstr(), pushDepHeight(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), llvm::LegalizationArtifactCombiner::replaceRegOrBuildCopy(), llvm::MachineSSAUpdater::RewriteUse(), llvm::PeelingModuloScheduleExpander::rewriteUsesOf(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::Mips16RegisterInfo::saveScavengerRegister(), llvm::RegScavenger::scavengeRegister(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::LiveIntervals::shrinkToUses(), llvm::TailDuplicator::tailDuplicateAndUpdate(), tryChangeVGPRtoSGPRinCopy(), tryToFoldACImm(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), updatePhysDepsDownwards(), and verifyCFIntrinsic().

llvm::MCInstrDesc
Describe properties that are true of each instruction in the target description file.
Definition: MCInstrDesc.h:195