LCOV - code coverage report
Current view: top level - lib/Target/ARM - ARMHazardRecognizer.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 2 2 100.0 %
Date: 2018-10-20 13:21:21 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===-- ARMHazardRecognizer.h - ARM 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 ARM functions.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : #ifndef LLVM_LIB_TARGET_ARM_ARMHAZARDRECOGNIZER_H
      15             : #define LLVM_LIB_TARGET_ARM_ARMHAZARDRECOGNIZER_H
      16             : 
      17             : #include "llvm/CodeGen/ScoreboardHazardRecognizer.h"
      18             : 
      19             : namespace llvm {
      20             : 
      21             : class ARMBaseInstrInfo;
      22             : class ARMBaseRegisterInfo;
      23             : class ARMSubtarget;
      24             : class MachineInstr;
      25             : 
      26             : /// ARMHazardRecognizer handles special constraints that are not expressed in
      27             : /// the scheduling itinerary. This is only used during postRA scheduling. The
      28             : /// ARM preRA scheduler uses an unspecialized instance of the
      29             : /// ScoreboardHazardRecognizer.
      30             : class ARMHazardRecognizer : public ScoreboardHazardRecognizer {
      31             :   MachineInstr *LastMI;
      32             :   unsigned FpMLxStalls;
      33             : 
      34             : public:
      35             :   ARMHazardRecognizer(const InstrItineraryData *ItinData,
      36             :                       const ScheduleDAG *DAG)
      37        9595 :     : ScoreboardHazardRecognizer(ItinData, DAG, "post-RA-sched"),
      38        9595 :       LastMI(nullptr) {}
      39             : 
      40             :   HazardType getHazardType(SUnit *SU, int Stalls) override;
      41             :   void Reset() override;
      42             :   void EmitInstruction(SUnit *SU) override;
      43             :   void AdvanceCycle() override;
      44             :   void RecedeCycle() override;
      45             : };
      46             : 
      47             : } // end namespace llvm
      48             : 
      49             : #endif

Generated by: LCOV version 1.13