diff options
Diffstat (limited to 'llvm/lib/Target/Mips/Mips16HardFloat.cpp')
| -rw-r--r-- | llvm/lib/Target/Mips/Mips16HardFloat.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/llvm/lib/Target/Mips/Mips16HardFloat.cpp b/llvm/lib/Target/Mips/Mips16HardFloat.cpp index 32dc90af2ef..e330dda7d03 100644 --- a/llvm/lib/Target/Mips/Mips16HardFloat.cpp +++ b/llvm/lib/Target/Mips/Mips16HardFloat.cpp @@ -12,12 +12,14 @@ //===----------------------------------------------------------------------===// #include "Mips16HardFloat.h" +#include "MipsTargetMachine.h" #include "llvm/IR/Module.h" #include "llvm/IR/Value.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" #include <algorithm> #include <string> +using namespace llvm; #define DEBUG_TYPE "mips16-hard-float" @@ -489,7 +491,20 @@ static void removeUseSoftFloat(Function &F) { F.addAttributes(AttributeSet::FunctionIndex, A); } -namespace llvm { +namespace { +class Mips16HardFloat : public ModulePass { +public: + static char ID; + + Mips16HardFloat(MipsTargetMachine &TM_) : ModulePass(ID), TM(TM_) {} + + const char *getPassName() const override { return "MIPS16 Hard Float Pass"; } + bool runOnModule(Module &M) override; + +protected: + const MipsTargetMachine &TM; +}; +} // namespace // // This pass only makes sense when the underlying chip has floating point but @@ -532,8 +547,6 @@ bool Mips16HardFloat::runOnModule(Module &M) { char Mips16HardFloat::ID = 0; -} - ModulePass *llvm::createMips16HardFloat(MipsTargetMachine &TM) { return new Mips16HardFloat(TM); } |

