|
LLVM 22.0.0git
|
#include "PPCTargetMachine.h"#include "MCTargetDesc/PPCMCTargetDesc.h"#include "PPC.h"#include "PPCMachineFunctionInfo.h"#include "PPCMachineScheduler.h"#include "PPCMacroFusion.h"#include "PPCSubtarget.h"#include "PPCTargetObjectFile.h"#include "PPCTargetTransformInfo.h"#include "TargetInfo/PowerPCTargetInfo.h"#include "llvm/ADT/StringRef.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/CodeGen/GlobalISel/IRTranslator.h"#include "llvm/CodeGen/GlobalISel/InstructionSelect.h"#include "llvm/CodeGen/GlobalISel/Legalizer.h"#include "llvm/CodeGen/GlobalISel/Localizer.h"#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"#include "llvm/CodeGen/MachineScheduler.h"#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/TargetPassConfig.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Function.h"#include "llvm/InitializePasses.h"#include "llvm/MC/TargetRegistry.h"#include "llvm/Pass.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/Scalar.h"#include <cassert>#include <memory>#include <optional>#include <string>Go to the source code of this file.
Functions | |
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void | LLVMInitializePowerPCTarget () |
| static std::string | computeFSAdditions (StringRef FS, CodeGenOptLevel OL, const Triple &TT) |
| static std::unique_ptr< TargetLoweringObjectFile > | createTLOF (const Triple &TT) |
| static PPCTargetMachine::PPCABI | computeTargetABI (const Triple &TT, const TargetOptions &Options) |
| static Reloc::Model | getEffectiveRelocModel (const Triple &TT, std::optional< Reloc::Model > RM) |
| static CodeModel::Model | getEffectivePPCCodeModel (const Triple &TT, std::optional< CodeModel::Model > CM, bool JIT) |
| static ScheduleDAGInstrs * | createPPCMachineScheduler (MachineSchedContext *C) |
| static ScheduleDAGInstrs * | createPPCPostMachineScheduler (MachineSchedContext *C) |
Variables | |
| static cl::opt< bool > | EnableBranchCoalescing ("enable-ppc-branch-coalesce", cl::Hidden, cl::desc("enable coalescing of duplicate branches for PPC")) |
| static cl::opt< bool > | DisableCTRLoops ("disable-ppc-ctrloops", cl::Hidden, cl::desc("Disable CTR loops for PPC")) |
| static cl::opt< bool > | DisableInstrFormPrep ("disable-ppc-instr-form-prep", cl::Hidden, cl::desc("Disable PPC loop instr form prep")) |
| static cl::opt< bool > | VSXFMAMutateEarly ("schedule-ppc-vsx-fma-mutation-early", cl::Hidden, cl::desc("Schedule VSX FMA instruction mutation early")) |
| static cl::opt< bool > | DisableVSXSwapRemoval ("disable-ppc-vsx-swap-removal", cl::Hidden, cl::desc("Disable VSX Swap Removal for PPC")) |
| static cl::opt< bool > | DisableMIPeephole ("disable-ppc-peephole", cl::Hidden, cl::desc("Disable machine peepholes for PPC")) |
| static cl::opt< bool > | EnableGEPOpt ("ppc-gep-opt", cl::Hidden, cl::desc("Enable optimizations on complex GEPs"), cl::init(true)) |
| static cl::opt< bool > | EnablePrefetch ("enable-ppc-prefetching", cl::desc("enable software prefetching on PPC"), cl::init(false), cl::Hidden) |
| static cl::opt< bool > | EnableExtraTOCRegDeps ("enable-ppc-extra-toc-reg-deps", cl::desc("Add extra TOC register dependencies"), cl::init(true), cl::Hidden) |
| static cl::opt< bool > | EnableMachineCombinerPass ("ppc-machine-combiner", cl::desc("Enable the machine combiner pass"), cl::init(true), cl::Hidden) |
| static cl::opt< bool > | ReduceCRLogical ("ppc-reduce-cr-logicals", cl::desc("Expand eligible cr-logical binary ops to branches"), cl::init(true), cl::Hidden) |
| static cl::opt< bool > | EnablePPCGenScalarMASSEntries ("enable-ppc-gen-scalar-mass", cl::init(false), cl::desc("Enable lowering math functions to their corresponding MASS " "(scalar) entries"), cl::Hidden) |
| static cl::opt< bool > | EnableGlobalMerge ("ppc-global-merge", cl::Hidden, cl::init(false), cl::desc("Enable the global merge pass")) |
| static cl::opt< unsigned > | GlobalMergeMaxOffset ("ppc-global-merge-max-offset", cl::Hidden, cl::init(0x7fff), cl::desc("Maximum global merge offset")) |
| static MachineSchedRegistry | PPCPreRASchedRegistry ("ppc-prera", "Run PowerPC PreRA specific scheduler", createPPCMachineScheduler) |
| static MachineSchedRegistry | PPCPostRASchedRegistry ("ppc-postra", "Run PowerPC PostRA specific scheduler", createPPCPostMachineScheduler) |
|
static |
Definition at line 152 of file PPCTargetMachine.cpp.
References llvm::Default, llvm::None, llvm::Triple::ppc64, and llvm::Triple::ppc64le.
Referenced by llvm::PPCTargetMachine::getSubtargetImpl(), and llvm::PPCTargetMachine::PPCTargetMachine().
|
static |
Definition at line 195 of file PPCTargetMachine.cpp.
References assert(), Options, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::PPCTargetMachine::PPC_ABI_ELFv1, llvm::PPCTargetMachine::PPC_ABI_ELFv2, and llvm::PPCTargetMachine::PPC_ABI_UNKNOWN.
Referenced by llvm::ARMBaseTargetMachine::ARMBaseTargetMachine(), llvm::MipsTargetMachine::MipsTargetMachine(), and llvm::PPCTargetMachine::PPCTargetMachine().
|
static |
Definition at line 261 of file PPCTargetMachine.cpp.
References llvm::CallingConv::C, llvm::createPowerPCMacroFusionDAGMutation(), llvm::createSchedLive(), and llvm::createStoreClusterDAGMutation().
Referenced by llvm::PPCTargetMachine::createMachineScheduler().
|
static |
Definition at line 276 of file PPCTargetMachine.cpp.
References llvm::CallingConv::C, llvm::createPowerPCMacroFusionDAGMutation(), llvm::createSchedPostRA(), and llvm::createStoreClusterDAGMutation().
Referenced by llvm::PPCTargetMachine::createPostMachineScheduler().
|
static |
Definition at line 188 of file PPCTargetMachine.cpp.
|
static |
Definition at line 236 of file PPCTargetMachine.cpp.
References assert(), llvm::CodeModel::Kernel, llvm::CodeModel::Medium, llvm::report_fatal_error(), llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
Referenced by llvm::PPCTargetMachine::PPCTargetMachine().
|
static |
Definition at line 218 of file PPCTargetMachine.cpp.
References llvm::Reloc::PIC_, llvm::Triple::ppc64, llvm::report_fatal_error(), and llvm::Reloc::Static.
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCTarget | ( | ) |
Definition at line 118 of file PPCTargetMachine.cpp.
References A(), B(), llvm::CallingConv::C, D(), llvm::PassRegistry::getPassRegistry(), llvm::getThePPC32LETarget(), llvm::getThePPC32Target(), llvm::getThePPC64LETarget(), llvm::getThePPC64Target(), llvm::initializeGlobalISel(), llvm::initializePPCAIXAsmPrinterPass(), llvm::initializePPCBoolRetToIntPass(), llvm::initializePPCBranchCoalescingPass(), llvm::initializePPCBSelPass(), llvm::initializePPCCTRLoopsPass(), llvm::initializePPCCTRLoopsVerifyPass(), llvm::initializePPCDAGToDAGISelLegacyPass(), llvm::initializePPCEarlyReturnPass(), llvm::initializePPCExpandAtomicPseudoPass(), llvm::initializePPCGenScalarMASSEntriesPass(), llvm::initializePPCLinuxAsmPrinterPass(), llvm::initializePPCLoopInstrFormPrepPass(), llvm::initializePPCLowerMASSVEntriesPass(), llvm::initializePPCMIPeepholePass(), llvm::initializePPCPreEmitPeepholePass(), llvm::initializePPCReduceCRLogicalsPass(), llvm::initializePPCTLSDynamicCallPass(), llvm::initializePPCTOCRegDepsPass(), llvm::initializePPCVSXFMAMutatePass(), llvm::initializePPCVSXSwapRemovalPass(), and llvm::initializePPCVSXWACCCopyPass().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |