diff options
author | James Y Knight <jyknight@google.com> | 2016-08-12 14:48:09 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2016-08-12 14:48:09 +0000 |
commit | 2cc9da9a654ca1f9f90d1eaaea889516074f975f (patch) | |
tree | b322c45c79fc2e10d8aa6eb750b2ecc23ee71db1 /llvm/lib/Target/Sparc/LeonPasses.h | |
parent | 3785393def95f2b52ef28e9bcb3985066812d2db (diff) | |
download | bcm5719-llvm-2cc9da9a654ca1f9f90d1eaaea889516074f975f.tar.gz bcm5719-llvm-2cc9da9a654ca1f9f90d1eaaea889516074f975f.zip |
Revert "[Sparc] Leon errata fix passes."
...and the two followup commits:
Revert "[Sparc][Leon] Missed resetting option flags from check-in 278489."
Revert "[Sparc][Leon] Errata fixes for various errata in different
versions of the Leon variants of the Sparc 32 bit processor."
This reverts commit r274856, r278489, and r278492.
llvm-svn: 278511
Diffstat (limited to 'llvm/lib/Target/Sparc/LeonPasses.h')
-rwxr-xr-x | llvm/lib/Target/Sparc/LeonPasses.h | 127 |
1 files changed, 9 insertions, 118 deletions
diff --git a/llvm/lib/Target/Sparc/LeonPasses.h b/llvm/lib/Target/Sparc/LeonPasses.h index e3b1ed9409d..a544e322fcb 100755 --- a/llvm/lib/Target/Sparc/LeonPasses.h +++ b/llvm/lib/Target/Sparc/LeonPasses.h @@ -44,83 +44,17 @@ protected: int getUnusedFPRegister(MachineRegisterInfo &MRI); }; -class LLVM_LIBRARY_VISIBILITY ReplaceSDIV : public LEONMachineFunctionPass { -public: - static char ID; - - ReplaceSDIV(); - ReplaceSDIV(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "ReplaceSDIV: Leon erratum fix: do not emit SDIV, but emit SDIVCC " - "instead"; - } -}; - -class LLVM_LIBRARY_VISIBILITY FixCALL : public LEONMachineFunctionPass { -public: - static char ID; - - FixCALL(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "FixCALL: Leon erratum fix: restrict the size of the immediate " - "operand of the CALL instruction to 20 bits"; - } -}; - -class LLVM_LIBRARY_VISIBILITY RestoreExecAddress : public LEONMachineFunctionPass { -public: - static char ID; - - RestoreExecAddress(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction& MF) override; - - const char *getPassName() const override { - return "RestoreExecAddress: Leon erratum fix: ensure execution " - "address is restored for bad floating point trap handlers."; - } -}; - -class LLVM_LIBRARY_VISIBILITY IgnoreZeroFlag : public LEONMachineFunctionPass { -public: - static char ID; - - IgnoreZeroFlag(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "IgnoreZeroFlag: Leon erratum fix: do not rely on the zero bit " - "flag on a divide overflow for SDIVCC and UDIVCC"; - } -}; - -class LLVM_LIBRARY_VISIBILITY FillDataCache : public LEONMachineFunctionPass { -public: - static char ID; - static bool CacheFilled; - - FillDataCache(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction& MF) override; - - const char *getPassName() const override { - return "FillDataCache: Leon erratum fix: fill data cache with values at application startup"; - } -}; - -class LLVM_LIBRARY_VISIBILITY InsertNOPDoublePrecision - : public LEONMachineFunctionPass { +class LLVM_LIBRARY_VISIBILITY InsertNOPLoad : public LEONMachineFunctionPass { public: static char ID; - InsertNOPDoublePrecision(TargetMachine &tm); + InsertNOPLoad(TargetMachine &tm); bool runOnMachineFunction(MachineFunction &MF) override; const char *getPassName() const override { - return "InsertNOPDoublePrecision: Leon erratum fix: insert a NOP before " - "the double precision floating point instruction"; + return "InsertNOPLoad: Erratum Fix LBR35: insert a NOP instruction after " + "every single-cycle load instruction when the next instruction is " + "another load/store instruction"; } }; @@ -132,7 +66,7 @@ public: bool runOnMachineFunction(MachineFunction &MF) override; const char *getPassName() const override { - return "FixFSMULD: Leon erratum fix: do not utilize FSMULD"; + return "FixFSMULD: Erratum Fix LBR31: do not select FSMULD"; } }; @@ -144,26 +78,12 @@ public: bool runOnMachineFunction(MachineFunction &MF) override; const char *getPassName() const override { - return "ReplaceFMULS: Leon erratum fix: Replace FMULS instruction with a " + return "ReplaceFMULS: Erratum Fix LBR32: replace FMULS instruction with a " "routine using conversions/double precision operations to replace " "FMULS"; } }; -class LLVM_LIBRARY_VISIBILITY PreventRoundChange - : public LEONMachineFunctionPass { -public: - static char ID; - - PreventRoundChange(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "PreventRoundChange: Leon erratum fix: prevent any rounding mode " - "change request: use only the round-to-nearest rounding mode"; - } -}; - class LLVM_LIBRARY_VISIBILITY FixAllFDIVSQRT : public LEONMachineFunctionPass { public: static char ID; @@ -172,39 +92,10 @@ public: bool runOnMachineFunction(MachineFunction &MF) override; const char *getPassName() const override { - return "FixAllFDIVSQRT: Leon erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD " + return "FixAllFDIVSQRT: Erratum Fix LBR34: fix FDIVS/FDIVD/FSQRTS/FSQRTD " "instructions with NOPs and floating-point store"; } }; - -class LLVM_LIBRARY_VISIBILITY InsertNOPLoad : public LEONMachineFunctionPass { -public: - static char ID; - - InsertNOPLoad(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "InsertNOPLoad: Leon erratum fix: Insert a NOP instruction after " - "every single-cycle load instruction when the next instruction is " - "another load/store instruction"; - } -}; - -class LLVM_LIBRARY_VISIBILITY InsertNOPsLoadStore - : public LEONMachineFunctionPass { -public: - static char ID; - - InsertNOPsLoadStore(TargetMachine &tm); - bool runOnMachineFunction(MachineFunction &MF) override; - - const char *getPassName() const override { - return "InsertNOPsLoadStore: Leon Erratum Fix: Insert NOPs between " - "single-precision loads and the store, so the number of " - "instructions between is 4"; - } -}; -} // namespace lllvm +} // namespace llvm #endif // LLVM_LIB_TARGET_SPARC_LEON_PASSES_H |