Fixed some bugs.
[llvm/zpu.git] / lib / Target / ARM / Thumb2HazardRecognizer.h
blobaa4411f186f614e47bbbf43ea880ce902ee3e5c6
1 //===-- Thumb2HazardRecognizer.h - Thumb2 Hazard Recognizers ----*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines hazard recognizers for scheduling Thumb2 functions on
11 // ARM processors.
13 //===----------------------------------------------------------------------===//
15 #ifndef THUMB2HAZARDRECOGNIZER_H
16 #define THUMB2HAZARDRECOGNIZER_H
18 #include "llvm/CodeGen/PostRAHazardRecognizer.h"
20 namespace llvm {
22 class MachineInstr;
24 class Thumb2HazardRecognizer : public PostRAHazardRecognizer {
25 unsigned ITBlockSize; // No. of MIs in current IT block yet to be scheduled.
26 MachineInstr *ITBlockMIs[4];
28 public:
29 Thumb2HazardRecognizer(const InstrItineraryData *ItinData) :
30 PostRAHazardRecognizer(ItinData) {}
32 virtual HazardType getHazardType(SUnit *SU);
33 virtual void Reset();
34 virtual void EmitInstruction(SUnit *SU);
38 } // end namespace llvm
40 #endif // THUMB2HAZARDRECOGNIZER_H