|
LLVM 24.0.0git
|
#include "AArch64TargetMachine.h"#include "AArch64.h"#include "AArch64AsmPrinter.h"#include "AArch64MachineFunctionInfo.h"#include "AArch64MachineScheduler.h"#include "AArch64MacroFusion.h"#include "AArch64Subtarget.h"#include "AArch64TargetObjectFile.h"#include "AArch64TargetTransformInfo.h"#include "MCTargetDesc/AArch64MCTargetDesc.h"#include "TargetInfo/AArch64TargetInfo.h"#include "llvm/ADT/StringExtras.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/CodeGen/CSEConfigBase.h"#include "llvm/CodeGen/GlobalISel/CSEInfo.h"#include "llvm/CodeGen/GlobalISel/IRTranslator.h"#include "llvm/CodeGen/GlobalISel/InstructionSelect.h"#include "llvm/CodeGen/GlobalISel/Legalizer.h"#include "llvm/CodeGen/GlobalISel/LoadStoreOpt.h"#include "llvm/CodeGen/GlobalISel/Localizer.h"#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"#include "llvm/CodeGen/MIRParser/MIParser.h"#include "llvm/CodeGen/MachineScheduler.h"#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/TargetInstrInfo.h"#include "llvm/CodeGen/TargetPassConfig.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/Function.h"#include "llvm/InitializePasses.h"#include "llvm/MC/MCAsmInfo.h"#include "llvm/MC/MCTargetOptions.h"#include "llvm/MC/TargetRegistry.h"#include "llvm/Option/LibraryOptions.h"#include "llvm/Pass.h"#include "llvm/Passes/PassBuilder.h"#include "llvm/Support/CodeGen.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Target/TargetLoweringObjectFile.h"#include "llvm/Target/TargetOptions.h"#include "llvm/TargetParser/Triple.h"#include "llvm/Transforms/CFGuard.h"#include "llvm/Transforms/Scalar.h"#include "llvm/Transforms/Utils/LowerIFunc.h"#include "llvm/Transforms/Vectorize/LoopIdiomVectorize.h"#include <memory>#include "llvm/Passes/TargetPassRegistry.inc"Go to the source code of this file.
Macros | |
| #define | GET_PASS_REGISTRY "AArch64PassRegistry.def" |
| #define | ADD_CLASS_PASS_TO_PASS_NAME(NAME, CREATE_PASS) |
| #define | ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS(NAME, CLASS) |
| #define | MODULE_ANALYSIS(NAME, CREATE_PASS) |
| #define | MODULE_PASS(NAME, CREATE_PASS) |
| #define | MODULE_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | LOOP_ANALYSIS(NAME, CREATE_PASS) |
| #define | LOOP_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | ADD_PASS(NAME, CREATE_PASS) |
| #define | ADD_PASS_WITH_PARAMS(NAME, CREATE_PASS, PARSER) |
| #define | ADD_ANALYSIS_PASS(NAME, CREATE_PASS) |
| #define | MODULE_PASS(NAME, CREATE_PASS) |
| #define | MODULE_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | LOOP_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | MACHINE_FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | MODULE_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) |
| #define | LOOP_ANALYSIS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
Functions | |
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeAArch64Target () |
| static std::unique_ptr< TargetLoweringObjectFile > | createTLOF (const Triple &TT) |
| static StringRef | computeDefaultCPU (const Triple &TT, StringRef CPU) |
| static Reloc::Model | getEffectiveRelocModel (const Triple &TT, std::optional< Reloc::Model > RM) |
| static CodeModel::Model | getEffectiveAArch64CodeModel (const Triple &TT, std::optional< CodeModel::Model > CM, bool JIT) |
| static bool | scheduleFormTransposedTupleAdjacentToUsers (const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI, const SDep *Dep) |
| #define ADD_ANALYSIS_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define ADD_CLASS_PASS_TO_PASS_NAME | ( | NAME, | |
| CREATE_PASS ) |
| #define ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS | ( | NAME, | |
| CLASS ) |
| #define ADD_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define ADD_PASS_WITH_PARAMS | ( | NAME, | |
| CREATE_PASS, | |||
| PARSER ) |
| #define FUNCTION_ALIAS_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_ALIAS_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define FUNCTION_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
| #define FUNCTION_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
| #define GET_PASS_REGISTRY "AArch64PassRegistry.def" |
| #define LOOP_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define LOOP_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define LOOP_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define LOOP_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define MACHINE_FUNCTION_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
| #define MACHINE_FUNCTION_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
| #define MODULE_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define MODULE_ANALYSIS | ( | NAME, | |
| CREATE_PASS ) |
| #define MODULE_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define MODULE_PASS | ( | NAME, | |
| CREATE_PASS ) |
| #define MODULE_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
| #define MODULE_PASS_WITH_PARAMS | ( | NAME, | |
| CLASS, | |||
| CREATE_PASS, | |||
| PARSER, | |||
| PARAMS ) |
Definition at line 146 of file AArch64TargetMachine.cpp.
Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine().
|
static |
Definition at line 137 of file AArch64TargetMachine.cpp.
Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine(), llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), llvm::ARMBaseTargetMachine::ARMBaseTargetMachine(), llvm::MipsTargetMachine::MipsTargetMachine(), llvm::PPCTargetMachine::PPCTargetMachine(), llvm::RISCVTargetMachine::RISCVTargetMachine(), llvm::SystemZTargetMachine::SystemZTargetMachine(), llvm::VETargetMachine::VETargetMachine(), and llvm::X86TargetMachine::X86TargetMachine().
|
static |
Definition at line 166 of file AArch64TargetMachine.cpp.
References llvm::CodeModel::Large, llvm::report_fatal_error(), llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine().
|
static |
Definition at line 152 of file AArch64TargetMachine.cpp.
References llvm::Reloc::DynamicNoPIC, llvm::Reloc::PIC_, and llvm::Reloc::Static.
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Target | ( | ) |
Definition at line 63 of file AArch64TargetMachine.cpp.
References llvm::PassRegistry::getPassRegistry(), llvm::getTheAArch64_32Target(), llvm::getTheAArch64beTarget(), llvm::getTheAArch64leTarget(), llvm::getTheARM64_32Target(), llvm::getTheARM64Target(), llvm::initializeAArch64A53Fix835769LegacyPass(), llvm::initializeAArch64A57FPLoadBalancingLegacyPass(), llvm::initializeAArch64AdvSIMDScalarLegacyPass(), llvm::initializeAArch64Arm64ECCallLoweringPass(), llvm::initializeAArch64AsmPrinterPass(), llvm::initializeAArch64BranchTargetsLegacyPass(), llvm::initializeAArch64CodeLayoutOptPass(), llvm::initializeAArch64CollectLOHLegacyPass(), llvm::initializeAArch64CompressJumpTablesLegacyPass(), llvm::initializeAArch64CondBrTuningPass(), llvm::initializeAArch64ConditionalComparesLegacyPass(), llvm::initializeAArch64ConditionOptimizerLegacyPass(), llvm::initializeAArch64DAGToDAGISelLegacyPass(), llvm::initializeAArch64DeadRegisterDefinitionsLegacyPass(), llvm::initializeAArch64ExpandPseudoLegacyPass(), llvm::initializeAArch64LoadStoreOptLegacyPass(), llvm::initializeAArch64LowerHomogeneousPrologEpilogLegacyPass(), llvm::initializeAArch64MIPeepholeOptLegacyPass(), llvm::initializeAArch64O0PreLegalizerCombinerLegacyPass(), llvm::initializeAArch64PointerAuthLegacyPass(), llvm::initializeAArch64PostCoalescerLegacyPass(), llvm::initializeAArch64PostLegalizerCombinerLegacyPass(), llvm::initializeAArch64PostLegalizerLoweringLegacyPass(), llvm::initializeAArch64PostSelectOptimizeLegacyPass(), llvm::initializeAArch64PredicateAsCounterLoopRewritesPass(), llvm::initializeAArch64PreLegalizerCombinerLegacyPass(), llvm::initializeAArch64PromoteConstantPass(), llvm::initializeAArch64PTrueCoalescingLegacyPass(), llvm::initializeAArch64RedundantCondBranchLegacyPass(), llvm::initializeAArch64RedundantCopyEliminationLegacyPass(), llvm::initializeAArch64SIMDInstrOptLegacyPass(), llvm::initializeAArch64SLSHardeningLegacyPass(), llvm::initializeAArch64SpeculationHardeningPass(), llvm::initializeAArch64SRLTDefineSuperRegsLegacyPass(), llvm::initializeAArch64StackTaggingPass(), llvm::initializeAArch64StackTaggingPreRALegacyPass(), llvm::initializeAArch64StorePairSuppressPass(), llvm::initializeFalkorHWPFFixPass(), llvm::initializeFalkorMarkStridedAccessesLegacyPass(), llvm::initializeGlobalISel(), llvm::initializeLDTLSCleanupPass(), llvm::initializeMachineKCFILegacyPass(), llvm::initializeMachineSMEABIPass(), llvm::initializeSMEPeepholeOptPass(), llvm::initializeSVEShuffleOptsPass(), X, and Y.
|
static |
Definition at line 354 of file AArch64TargetMachine.cpp.
References llvm::MachineInstr::getOpcode(), llvm::isNonDataDep(), and TII.
Referenced by llvm::AArch64TargetMachine::createMachineScheduler().