summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp56
1 files changed, 37 insertions, 19 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp b/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp
index af6d018d0ec..085d4645df0 100644
--- a/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp
@@ -15,8 +15,24 @@
#define DEBUG_TYPE "hexagon-vector-print"
-#include "HexagonTargetMachine.h"
+#include "HexagonInstrInfo.h"
+#include "HexagonSubtarget.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
+#include "llvm/CodeGen/MachineOperand.h"
+#include "llvm/IR/DebugLoc.h"
+#include "llvm/IR/InlineAsm.h"
+#include "llvm/Pass.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
+#include <string>
+#include <vector>
using namespace llvm;
@@ -25,40 +41,43 @@ static cl::opt<bool> TraceHexVectorStoresOnly("trace-hex-vector-stores-only",
cl::desc("Enables tracing of vector stores"));
namespace llvm {
+
FunctionPass *createHexagonVectorPrint();
void initializeHexagonVectorPrintPass(PassRegistry&);
-}
+} // end namespace llvm
namespace {
class HexagonVectorPrint : public MachineFunctionPass {
- const HexagonSubtarget *QST;
- const HexagonInstrInfo *QII;
- const HexagonRegisterInfo *QRI;
-
- public:
- static char ID;
- HexagonVectorPrint() : MachineFunctionPass(ID),
- QST(0), QII(0), QRI(0) {
- initializeHexagonVectorPrintPass(*PassRegistry::getPassRegistry());
- }
+ const HexagonSubtarget *QST;
+ const HexagonInstrInfo *QII;
+ const HexagonRegisterInfo *QRI;
- StringRef getPassName() const override {
- return "Hexagon VectorPrint pass";
- }
- bool runOnMachineFunction(MachineFunction &Fn) override;
+public:
+ static char ID;
+
+ HexagonVectorPrint()
+ : MachineFunctionPass(ID), QST(nullptr), QII(nullptr), QRI(nullptr) {
+ initializeHexagonVectorPrintPass(*PassRegistry::getPassRegistry());
+ }
+
+ StringRef getPassName() const override { return "Hexagon VectorPrint pass"; }
+
+ bool runOnMachineFunction(MachineFunction &Fn) override;
};
char HexagonVectorPrint::ID = 0;
+} // end anonymous namespace
+
static bool isVecReg(unsigned Reg) {
return (Reg >= Hexagon::V0 && Reg <= Hexagon::V31)
|| (Reg >= Hexagon::W0 && Reg <= Hexagon::W15)
|| (Reg >= Hexagon::Q0 && Reg <= Hexagon::Q3);
}
-std::string getStringReg(unsigned R) {
+static std::string getStringReg(unsigned R) {
if (R >= Hexagon::V0 && R <= Hexagon::V31) {
static const char* S[] = { "20", "21", "22", "23", "24", "25", "26", "27",
"28", "29", "2a", "2b", "2c", "2d", "2e", "2f",
@@ -138,7 +157,7 @@ bool HexagonVectorPrint::runOnMachineFunction(MachineFunction &Fn) {
}
}
- Changed = VecPrintList.size() > 0;
+ Changed = !VecPrintList.empty();
if (!Changed)
return Changed;
@@ -179,7 +198,6 @@ bool HexagonVectorPrint::runOnMachineFunction(MachineFunction &Fn) {
return Changed;
}
-}
//===----------------------------------------------------------------------===//
// Public Constructor Functions
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud