LLVM 20.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/STLExtras.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/InstructionSelector.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/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_EXTERNAL_VISIBILITY void | LLVMInitializePowerPCTarget () |
static bool | isLittleEndianTriple (const Triple &T) |
static std::string | getDataLayoutString (const Triple &T) |
Return the datalayout string of a subtarget. | |
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 > | MergeStringPool ("ppc-merge-string-pool", cl::desc("Merge all of the strings in a module into one pool"), 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 209 of file PPCTargetMachine.cpp.
References llvm::Triple::ppc64, and llvm::Triple::ppc64le.
Referenced by llvm::PPCTargetMachine::getSubtargetImpl().
|
static |
Definition at line 252 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.
|
static |
Definition at line 318 of file PPCTargetMachine.cpp.
References llvm::CallingConv::C, llvm::createCopyConstrainDAGMutation(), llvm::createPowerPCMacroFusionDAGMutation(), and llvm::createStoreClusterDAGMutation().
|
static |
Definition at line 334 of file PPCTargetMachine.cpp.
References llvm::CallingConv::C, llvm::createPowerPCMacroFusionDAGMutation(), and llvm::createStoreClusterDAGMutation().
|
static |
Definition at line 245 of file PPCTargetMachine.cpp.
Return the datalayout string of a subtarget.
Definition at line 162 of file PPCTargetMachine.cpp.
References llvm::DataLayout::getManglingComponent(), is64Bit(), isLittleEndianTriple(), llvm::Triple::Lv2, llvm::Triple::ppc64, and llvm::Triple::ppc64le.
|
static |
Definition at line 293 of file PPCTargetMachine.cpp.
References assert(), llvm::CodeModel::Kernel, llvm::CodeModel::Medium, llvm::report_fatal_error(), llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
static |
Definition at line 275 of file PPCTargetMachine.cpp.
References llvm::Reloc::PIC_, llvm::Triple::ppc64, llvm::report_fatal_error(), and llvm::Reloc::Static.
Definition at line 157 of file PPCTargetMachine.cpp.
References llvm::Triple::ppc64le, and llvm::Triple::ppcle.
Referenced by getDataLayoutString().
LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCTarget | ( | ) |
Definition at line 123 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::initializePPCBoolRetToIntPass(), llvm::initializePPCBranchCoalescingPass(), llvm::initializePPCBSelPass(), llvm::initializePPCCTRLoopsPass(), llvm::initializePPCCTRLoopsVerifyPass(), llvm::initializePPCDAGToDAGISelLegacyPass(), llvm::initializePPCEarlyReturnPass(), llvm::initializePPCExpandAtomicPseudoPass(), llvm::initializePPCExpandISELPass(), llvm::initializePPCGenScalarMASSEntriesPass(), llvm::initializePPCLoopInstrFormPrepPass(), llvm::initializePPCLowerMASSVEntriesPass(), llvm::initializePPCMergeStringPoolPass(), llvm::initializePPCMIPeepholePass(), llvm::initializePPCPreEmitPeepholePass(), llvm::initializePPCReduceCRLogicalsPass(), llvm::initializePPCTLSDynamicCallPass(), llvm::initializePPCTOCRegDepsPass(), llvm::initializePPCVSXCopyPass(), llvm::initializePPCVSXFMAMutatePass(), and llvm::initializePPCVSXSwapRemovalPass().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |