summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/Mips16HardFloat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Mips/Mips16HardFloat.cpp')
-rw-r--r--llvm/lib/Target/Mips/Mips16HardFloat.cpp19
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);
}
OpenPOWER on IntegriCloud