LLVM
15.0.0git
|
#include "ARMTargetMachine.h"
#include "ARM.h"
#include "ARMMacroFusion.h"
#include "ARMSubtarget.h"
#include "ARMTargetObjectFile.h"
#include "ARMTargetTransformInfo.h"
#include "MCTargetDesc/ARMMCTargetDesc.h"
#include "TargetInfo/ARMTargetInfo.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/ExecutionDomainFix.h"
#include "llvm/CodeGen/GlobalISel/CSEInfo.h"
#include "llvm/CodeGen/GlobalISel/CallLowering.h"
#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
#include "llvm/CodeGen/GlobalISel/Legalizer.h"
#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineScheduler.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/RegisterBankInfo.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Pass.h"
#include "llvm/Support/ARMTargetParser.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/CFGuard.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Scalar.h"
#include <cassert>
#include <memory>
#include <string>
Go to the source code of this file.
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
void | llvm::initializeARMExecutionDomainFixPass (PassRegistry &) |
LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeARMTarget () |
static std::unique_ptr< TargetLoweringObjectFile > | createTLOF (const Triple &TT) |
static ARMBaseTargetMachine::ARMABI | computeTargetABI (const Triple &TT, StringRef CPU, const TargetOptions &Options) |
static std::string | computeDataLayout (const Triple &TT, StringRef CPU, const TargetOptions &Options, bool isLittle) |
static Reloc::Model | getEffectiveRelocModel (const Triple &TT, Optional< Reloc::Model > RM) |
INITIALIZE_PASS_BEGIN (ARMExecutionDomainFix, "arm-execution-domain-fix", "ARM Execution Domain Fix", false, false) INITIALIZE_PASS_END(ARMExecutionDomainFix | |
Variables | |
static cl::opt< bool > | DisableA15SDOptimization ("disable-a15-sd-optimization", cl::Hidden, cl::desc("Inhibit optimization of S->D register accesses on A15"), cl::init(false)) |
static cl::opt< bool > | EnableAtomicTidy ("arm-atomic-cfg-tidy", cl::Hidden, cl::desc("Run SimplifyCFG after expanding atomic operations" " to make use of cmpxchg flow-based information"), cl::init(true)) |
static cl::opt< bool > | EnableARMLoadStoreOpt ("arm-load-store-opt", cl::Hidden, cl::desc("Enable ARM load/store optimization pass"), cl::init(true)) |
static cl::opt< cl::boolOrDefault > | EnableGlobalMerge ("arm-global-merge", cl::Hidden, cl::desc("Enable the global merge pass")) |
arm execution domain | fix |
arm execution domain ARM Execution Domain | Fix |
arm execution domain ARM Execution Domain | false |
|
static |
Definition at line 140 of file ARMTargetMachine.cpp.
References ABI, llvm::ARMBaseTargetMachine::ARM_ABI_AAPCS, llvm::ARMBaseTargetMachine::ARM_ABI_AAPCS16, llvm::ARMBaseTargetMachine::ARM_ABI_APCS, computeTargetABI(), llvm::DataLayout::getManglingComponent(), Options, and llvm::MipsISD::Ret.
|
static |
Definition at line 122 of file ARMTargetMachine.cpp.
References llvm::ARMBaseTargetMachine::ARM_ABI_AAPCS, llvm::ARMBaseTargetMachine::ARM_ABI_AAPCS16, llvm::ARMBaseTargetMachine::ARM_ABI_APCS, llvm::ARMBaseTargetMachine::ARM_ABI_UNKNOWN, llvm::ARM::computeDefaultTargetABI(), llvm::StringRef::empty(), llvm_unreachable, Options, and llvm::StringRef::startswith().
Referenced by computeDataLayout().
|
static |
Definition at line 113 of file ARMTargetMachine.cpp.
|
static |
Definition at line 197 of file ARMTargetMachine.cpp.
References assert(), llvm::Reloc::DynamicNoPIC, llvm::Reloc::PIC_, llvm::AArch64::RM, llvm::Reloc::ROPI, llvm::Reloc::ROPI_RWPI, llvm::Reloc::RWPI, and llvm::Reloc::Static.
INITIALIZE_PASS_BEGIN | ( | ARMExecutionDomainFix | , |
"arm-execution-domain-fix" | , | ||
"ARM Execution Domain Fix" | , | ||
false | , | ||
false | |||
) |
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARMTarget | ( | ) |
Definition at line 85 of file ARMTargetMachine.cpp.
References B, llvm::PassRegistry::getPassRegistry(), llvm::getTheARMBETarget(), llvm::getTheARMLETarget(), llvm::getTheThumbBETarget(), llvm::getTheThumbLETarget(), llvm::initializeARMBlockPlacementPass(), llvm::initializeARMBranchTargetsPass(), llvm::initializeARMConstantIslandsPass(), llvm::initializeARMExecutionDomainFixPass(), llvm::initializeARMExpandPseudoPass(), llvm::initializeARMFixCortexA57AES1742098Pass(), llvm::initializeARMLoadStoreOptPass(), llvm::initializeARMLowOverheadLoopsPass(), llvm::initializeARMParallelDSPPass(), llvm::initializeARMPreAllocLoadStoreOptPass(), llvm::initializeARMSLSHardeningPass(), llvm::initializeGlobalISel(), llvm::initializeMVEGatherScatterLoweringPass(), llvm::initializeMVELaneInterleavingPass(), llvm::initializeMVETailPredicationPass(), llvm::initializeMVETPAndVPTOptimisationsPass(), llvm::initializeMVEVPTBlockPass(), llvm::initializeThumb2SizeReducePass(), X, and Y.
|
static |
|
static |
|
static |
|
static |
Definition at line 396 of file ARMTargetMachine.cpp.
arm execution domain fix |
Definition at line 395 of file ARMTargetMachine.cpp.
Definition at line 396 of file ARMTargetMachine.cpp.