LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::CriticalAntiDepBreaker Class Reference

#include "CodeGen/CriticalAntiDepBreaker.h"

Inheritance diagram for llvm::CriticalAntiDepBreaker:
Inheritance graph
Collaboration diagram for llvm::CriticalAntiDepBreaker:
Collaboration graph

Public Member Functions

 CriticalAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI)
 ~CriticalAntiDepBreaker () override
void StartBlock (MachineBasicBlock *BB) override
 Initialize anti-dep breaking for a new basic block. More...
unsigned BreakAntiDependencies (const std::vector< SUnit > &SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned InsertPosIndex, DbgValueVector &DbgValues) override
 Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers. More...
void Observe (MachineInstr &MI, unsigned Count, unsigned InsertPosIndex) override
 Update liveness information to account for the current instruction, which will not be scheduled. More...
void FinishBlock () override
 Finish anti-dep breaking for a basic block. More...
- Public Member Functions inherited from llvm::AntiDepBreaker
virtual ~AntiDepBreaker ()
void UpdateDbgValue (MachineInstr &MI, unsigned OldReg, unsigned NewReg)
 Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg. More...
void UpdateDbgValues (const DbgValueVector &DbgValues, MachineInstr *ParentMI, unsigned OldReg, unsigned NewReg)
 Update all DBG_VALUE instructions that may be affected by the dependency breaker's update of ParentMI to use NewReg. More...

Additional Inherited Members

- Public Types inherited from llvm::AntiDepBreaker
using DbgValueVector = std::vector< std::pair< MachineInstr *, MachineInstr * > >

Detailed Description

Definition at line 37 of file CriticalAntiDepBreaker.h.

Constructor & Destructor Documentation

◆ CriticalAntiDepBreaker()

CriticalAntiDepBreaker::CriticalAntiDepBreaker ( MachineFunction MFi,
const RegisterClassInfo RCI 

Definition at line 45 of file CriticalAntiDepBreaker.cpp.

References ~CriticalAntiDepBreaker().

◆ ~CriticalAntiDepBreaker()

CriticalAntiDepBreaker::~CriticalAntiDepBreaker ( )

Referenced by CriticalAntiDepBreaker().

Member Function Documentation

◆ BreakAntiDependencies()

unsigned CriticalAntiDepBreaker::BreakAntiDependencies ( const std::vector< SUnit > &  SUnits,
MachineBasicBlock::iterator  Begin,
MachineBasicBlock::iterator  End,
unsigned  InsertPosIndex,
DbgValueVector DbgValues 

◆ FinishBlock()

void CriticalAntiDepBreaker::FinishBlock ( )

Finish anti-dep breaking for a basic block.

Implements llvm::AntiDepBreaker.

Definition at line 102 of file CriticalAntiDepBreaker.cpp.

References llvm::BitVector::reset().

◆ Observe()

void CriticalAntiDepBreaker::Observe ( MachineInstr MI,
unsigned  Count,
unsigned  InsertPosIndex 

Update liveness information to account for the current instruction, which will not be scheduled.

Implements llvm::AntiDepBreaker.

Definition at line 107 of file CriticalAntiDepBreaker.cpp.

References assert(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineInstr::isDebugValue(), and llvm::MachineInstr::isKill().

◆ StartBlock()

void CriticalAntiDepBreaker::StartBlock ( MachineBasicBlock BB)

The documentation for this class was generated from the following files: