diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 21:25:48 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 21:25:48 +0000 |
| commit | d88c1a5a572cdb661c111098831fa526e933756f (patch) | |
| tree | 97b32c3372106ac47ded3d1a99f9c023a8530073 /contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp | |
| parent | 715652a404ee99f10c09c0a5edbb5883961b8c25 (diff) | |
| parent | b915e9e0fc85ba6f398b3fab0db6a81a8913af94 (diff) | |
Notes
Diffstat (limited to 'contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp')
| -rw-r--r-- | contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp | 57 |
1 files changed, 21 insertions, 36 deletions
diff --git a/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp b/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp index 17fe86a70844..4ae64062d9e2 100644 --- a/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp +++ b/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp @@ -22,9 +22,9 @@ using namespace llvm; extern "C" void LLVMInitializeSparcTarget() { // Register the target. - RegisterTargetMachine<SparcV8TargetMachine> X(TheSparcTarget); - RegisterTargetMachine<SparcV9TargetMachine> Y(TheSparcV9Target); - RegisterTargetMachine<SparcelTargetMachine> Z(TheSparcelTarget); + RegisterTargetMachine<SparcV8TargetMachine> X(getTheSparcTarget()); + RegisterTargetMachine<SparcV9TargetMachine> Y(getTheSparcV9Target()); + RegisterTargetMachine<SparcelTargetMachine> Z(getTheSparcelTarget()); } static std::string computeDataLayout(const Triple &T, bool is64Bit) { @@ -76,7 +76,7 @@ SparcTargetMachine::SparcTargetMachine(const Target &T, const Triple &TT, SparcTargetMachine::~SparcTargetMachine() {} -const SparcSubtarget * +const SparcSubtarget * SparcTargetMachine::getSubtargetImpl(const Function &F) const { Attribute CPUAttr = F.getFnAttribute("target-cpu"); Attribute FSAttr = F.getFnAttribute("target-features"); @@ -95,7 +95,7 @@ SparcTargetMachine::getSubtargetImpl(const Function &F) const { F.hasFnAttribute("use-soft-float") && F.getFnAttribute("use-soft-float").getValueAsString() == "true"; - if (softFloat) + if (softFloat) FS += FS.empty() ? "+soft-float" : ",+soft-float"; auto &I = SubtargetMap[CPU + FS]; @@ -115,7 +115,7 @@ namespace { class SparcPassConfig : public TargetPassConfig { public: SparcPassConfig(SparcTargetMachine *TM, PassManagerBase &PM) - : TargetPassConfig(TM, PM) {} + : TargetPassConfig(TM, PM) {} SparcTargetMachine &getSparcTargetMachine() const { return getTM<SparcTargetMachine>(); @@ -142,46 +142,31 @@ bool SparcPassConfig::addInstSelector() { return false; } -void SparcPassConfig::addPreEmitPass() { +void SparcPassConfig::addPreEmitPass(){ addPass(createSparcDelaySlotFillerPass(getSparcTargetMachine())); - if (this->getSparcTargetMachine().getSubtargetImpl()->ignoreZeroFlag()) { - addPass(new IgnoreZeroFlag(getSparcTargetMachine())); - } - if (this->getSparcTargetMachine().getSubtargetImpl()->performSDIVReplace()) { - addPass(new ReplaceSDIV(getSparcTargetMachine())); - } - if (this->getSparcTargetMachine().getSubtargetImpl()->fixCallImmediates()) { - addPass(new FixCALL(getSparcTargetMachine())); + + if (this->getSparcTargetMachine().getSubtargetImpl()->insertNOPLoad()) + { + addPass(new InsertNOPLoad(getSparcTargetMachine())); } - if (this->getSparcTargetMachine().getSubtargetImpl()->fixFSMULD()) { + if (this->getSparcTargetMachine().getSubtargetImpl()->fixFSMULD()) + { addPass(new FixFSMULD(getSparcTargetMachine())); } - if (this->getSparcTargetMachine().getSubtargetImpl()->replaceFMULS()) { + if (this->getSparcTargetMachine().getSubtargetImpl()->replaceFMULS()) + { addPass(new ReplaceFMULS(getSparcTargetMachine())); } - if (this->getSparcTargetMachine().getSubtargetImpl()->preventRoundChange()) { - addPass(new PreventRoundChange(getSparcTargetMachine())); + if (this->getSparcTargetMachine().getSubtargetImpl()->detectRoundChange()) { + addPass(new DetectRoundChange(getSparcTargetMachine())); } - if (this->getSparcTargetMachine().getSubtargetImpl()->fixAllFDIVSQRT()) { + if (this->getSparcTargetMachine().getSubtargetImpl()->fixAllFDIVSQRT()) + { addPass(new FixAllFDIVSQRT(getSparcTargetMachine())); } - if (this->getSparcTargetMachine().getSubtargetImpl()->insertNOPsLoadStore()) { - addPass(new InsertNOPsLoadStore(getSparcTargetMachine())); - } - if (this->getSparcTargetMachine().getSubtargetImpl()->insertNOPLoad()) { - addPass(new InsertNOPLoad(getSparcTargetMachine())); - } - if (this->getSparcTargetMachine().getSubtargetImpl()->flushCacheLineSWAP()) { - addPass(new FlushCacheLineSWAP(getSparcTargetMachine())); - } - if (this->getSparcTargetMachine() - .getSubtargetImpl() - ->insertNOPDoublePrecision()) { - addPass(new InsertNOPDoublePrecision(getSparcTargetMachine())); - } } -void SparcV8TargetMachine::anchor() {} +void SparcV8TargetMachine::anchor() { } SparcV8TargetMachine::SparcV8TargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, @@ -191,7 +176,7 @@ SparcV8TargetMachine::SparcV8TargetMachine(const Target &T, const Triple &TT, CodeGenOpt::Level OL) : SparcTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, false) {} -void SparcV9TargetMachine::anchor() {} +void SparcV9TargetMachine::anchor() { } SparcV9TargetMachine::SparcV9TargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, |
