aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/CellSPU/SPUHazardRecognizers.h
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2007-12-04 22:23:35 +0000
committerScott Michel <scottm@aero.org>2007-12-04 22:23:35 +0000
commit8efdca495339cf29f9ed24f10c49b2a0d8c71c06 (patch)
treede355be7f16914c2c6f21f597b71bc6cf9dceb78 /lib/Target/CellSPU/SPUHazardRecognizers.h
parent811fadb7b51b57bd067c2d310551a8eafbf21848 (diff)
downloadexternal_llvm-8efdca495339cf29f9ed24f10c49b2a0d8c71c06.zip
external_llvm-8efdca495339cf29f9ed24f10c49b2a0d8c71c06.tar.gz
external_llvm-8efdca495339cf29f9ed24f10c49b2a0d8c71c06.tar.bz2
More of the Cell SPU code drop from "Team Aerospace".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44582 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU/SPUHazardRecognizers.h')
-rw-r--r--lib/Target/CellSPU/SPUHazardRecognizers.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/Target/CellSPU/SPUHazardRecognizers.h b/lib/Target/CellSPU/SPUHazardRecognizers.h
new file mode 100644
index 0000000..ce602fd
--- /dev/null
+++ b/lib/Target/CellSPU/SPUHazardRecognizers.h
@@ -0,0 +1,43 @@
+//===-- SPUHazardRecognizers.h - Cell SPU Hazard Recognizer -----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by a team from the Computer Systems Research
+// Department at The Aerospace Corporation.
+//
+// See README.txt for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines hazard recognizers for scheduling on the Cell SPU
+// processor.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SPUHAZRECS_H
+#define SPUHAZRECS_H
+
+#include "llvm/CodeGen/ScheduleDAG.h"
+#include "SPUInstrInfo.h"
+
+namespace llvm {
+
+/// SPUHazardRecognizer
+class SPUHazardRecognizer : public HazardRecognizer
+{
+private:
+ const TargetInstrInfo &TII;
+ int EvenOdd;
+
+public:
+ SPUHazardRecognizer(const TargetInstrInfo &TII);
+ virtual HazardType getHazardType(SDNode *Node);
+ virtual void EmitInstruction(SDNode *Node);
+ virtual void AdvanceCycle();
+ virtual void EmitNoop();
+};
+
+} // end namespace llvm
+
+#endif
+