LLVM  6.0.0svn
PostRAHazardRecognizer.cpp File Reference

This runs the hazard recognizer and emits noops when necessary. More...

#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/ScheduleHazardRecognizer.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for PostRAHazardRecognizer.cpp:

Go to the source code of this file.

## Macros

#define DEBUG_TYPE   "post-RA-hazard-rec"

## Functions

STATISTIC (NumNoops, "Number of noops inserted")

INITIALIZE_PASS (PostRAHazardRecognizer, DEBUG_TYPE, "Post RA hazard recognizer", false, false) bool PostRAHazardRecognizer

## Detailed Description

This runs the hazard recognizer and emits noops when necessary.

This gives targets a way to run the hazard recognizer without running one of the schedulers. Example use cases for this pass would be:

• Targets that need the hazard recognizer to be run at -O0.
• Targets that want to guarantee that hazards at the beginning of scheduling regions are handled correctly. The post-RA scheduler is a top-down scheduler, but when there are multiple scheduling regions in a basic block, it visits the regions in bottom-up order. This makes it impossible for the scheduler to gauranttee it can correctly handle hazards at the beginning of scheduling regions.

This pass traverses all the instructions in a program in top-down order. In contrast to the instruction scheduling passes, this pass never resets the hazard recognizer to ensure it can correctly handles noop hazards at the beginning of blocks.

Definition in file PostRAHazardRecognizer.cpp.

## ◆ DEBUG_TYPE

 #define DEBUG_TYPE   "post-RA-hazard-rec"

Definition at line 41 of file PostRAHazardRecognizer.cpp.

## ◆ INITIALIZE_PASS()

 INITIALIZE_PASS ( PostRAHazardRecognizer , DEBUG_TYPE , "Post RA hazard recognizer" , false , false )

Definition at line 66 of file PostRAHazardRecognizer.cpp.

## ◆ STATISTIC()

 STATISTIC ( NumNoops , "Number of noops inserted" )