blob: 472665862e4191f8721daea40b781ba28dbe143d [file] [log] [blame]
Evan Cheng88645942010-06-18 23:11:35 +00001//===-- 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.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef THUMB2HAZARDRECOGNIZER_H
16#define THUMB2HAZARDRECOGNIZER_H
17
18#include "llvm/CodeGen/PostRAHazardRecognizer.h"
19
20namespace llvm {
21
22class MachineInstr;
23
24class Thumb2HazardRecognizer : public PostRAHazardRecognizer {
25 unsigned ITBlockSize; // No. of MIs in current IT block yet to be scheduled.
26 MachineInstr *ITBlockMIs[4];
27
28public:
29 Thumb2HazardRecognizer(const InstrItineraryData &ItinData) :
30 PostRAHazardRecognizer(ItinData) {}
31
32 virtual HazardType getHazardType(SUnit *SU);
33 virtual void Reset();
34 virtual void EmitInstruction(SUnit *SU);
35};
36
37
38} // end namespace llvm
39
40#endif // THUMB2HAZARDRECOGNIZER_H