LLVM
8.0.1
|
#include "PPCTargetMachine.h"
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "PPC.h"
#include "PPCSubtarget.h"
#include "PPCTargetObjectFile.h"
#include "PPCTargetTransformInfo.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/Passes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/MachineScheduler.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/Pass.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/Scalar.h"
#include <cassert>
#include <memory>
#include <string>
Go to the source code of this file.
Functions | |
void | LLVMInitializePowerPCTarget () |
static std::string | getDataLayoutString (const Triple &T) |
Return the datalayout string of a subtarget. More... | |
static std::string | computeFSAdditions (StringRef FS, CodeGenOpt::Level 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, Optional< Reloc::Model > RM) |
static CodeModel::Model | getEffectivePPCCodeModel (const Triple &TT, Optional< CodeModel::Model > CM, bool JIT) |
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 > | DisablePreIncPrep ("disable-ppc-preinc-prep", cl::Hidden, cl::desc("Disable PPC loop preinc 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 > | DisableQPXLoadSplat ("disable-ppc-qpx-load-splat", cl::Hidden, cl::desc("Disable QPX load splat simplification")) |
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("disable 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(false), cl::Hidden) |
|
static |
Definition at line 144 of file PPCTargetMachine.cpp.
References llvm::CodeGenOpt::Default, llvm::Triple::getArch(), llvm::CodeGenOpt::None, llvm::Triple::ppc64, and llvm::Triple::ppc64le.
Referenced by llvm::PPCTargetMachine::getSubtargetImpl().
|
static |
Definition at line 182 of file PPCTargetMachine.cpp.
References assert(), llvm::StringRef::empty(), llvm::MCTargetOptions::getABIName(), llvm::Triple::getArch(), llvm::Triple::isMacOSX(), llvm::Triple::isOSDarwin(), llvm::TargetOptions::MCOptions, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::PPCTargetMachine::PPC_ABI_ELFv1, llvm::PPCTargetMachine::PPC_ABI_ELFv2, llvm::PPCTargetMachine::PPC_ABI_UNKNOWN, llvm::report_fatal_error(), and llvm::StringRef::startswith().
|
static |
Definition at line 173 of file PPCTargetMachine.cpp.
References llvm::Triple::isOSDarwin().
Return the datalayout string of a subtarget.
Definition at line 111 of file PPCTargetMachine.cpp.
References llvm::Triple::getArch(), llvm::DataLayout::getManglingComponent(), llvm::Triple::getOS(), is64Bit(), llvm::Triple::isOSDarwin(), llvm::Triple::Lv2, llvm::Triple::ppc64, llvm::Triple::ppc64le, and llvm::MipsISD::Ret.
|
static |
Definition at line 225 of file PPCTargetMachine.cpp.
References llvm::Triple::getArch(), llvm::Triple::isOSDarwin(), llvm::CodeModel::Kernel, llvm::CodeModel::Medium, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::report_fatal_error(), llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
static |
Definition at line 208 of file PPCTargetMachine.cpp.
References llvm::Reloc::DynamicNoPIC, llvm::Triple::getArch(), llvm::Optional< T >::hasValue(), llvm::Triple::isOSDarwin(), llvm::Reloc::PIC_, llvm::Triple::ppc64, and llvm::Reloc::Static.
void LLVMInitializePowerPCTarget | ( | ) |
Definition at line 96 of file PPCTargetMachine.cpp.
References B, C, llvm::PassRegistry::getPassRegistry(), llvm::getThePPC32Target(), llvm::getThePPC64LETarget(), llvm::getThePPC64Target(), llvm::initializePPCBoolRetToIntPass(), llvm::initializePPCExpandISELPass(), llvm::initializePPCMIPeepholePass(), llvm::initializePPCPreEmitPeepholePass(), and llvm::initializePPCTLSDynamicCallPass().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().
|
static |
Referenced by llvm::PPCTargetMachine::createPassConfig().