class CriticalAntiDepBreaker

Declaration

class CriticalAntiDepBreaker : public AntiDepBreaker { /* full declaration omitted */ };

Description

This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards).

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:36

Inherits from: AntiDepBreaker

Method Overview

  • public unsigned int BreakAntiDependencies(const std::vector<SUnit> & SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned int InsertPosIndex, llvm::AntiDepBreaker::DbgValueVector & DbgValues)
  • public CriticalAntiDepBreaker(llvm::MachineFunction & MFi, const llvm::RegisterClassInfo & RCI)
  • public void FinishBlock()
  • public void Observe(llvm::MachineInstr & MI, unsigned int Count, unsigned int InsertPosIndex)
  • public void StartBlock(llvm::MachineBasicBlock * BB)
  • public ~CriticalAntiDepBreaker()

Inherited from AntiDepBreaker:

Methods

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

Description

Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers.

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:82

Parameters

const std::vector<SUnit>& SUnits
MachineBasicBlock::iterator Begin
MachineBasicBlock::iterator End
unsigned int InsertPosIndex
llvm::AntiDepBreaker::DbgValueVector& DbgValues

CriticalAntiDepBreaker(
    llvm::MachineFunction& MFi,
    const llvm::RegisterClassInfo& RCI)

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:74

Parameters

llvm::MachineFunction& MFi
const llvm::RegisterClassInfo& RCI

void FinishBlock()

Description

Finish anti-dep breaking for a basic block.

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:94

void Observe(llvm::MachineInstr& MI,
             unsigned int Count,
             unsigned int InsertPosIndex)

Description

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

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:90

Parameters

llvm::MachineInstr& MI
unsigned int Count
unsigned int InsertPosIndex

void StartBlock(llvm::MachineBasicBlock* BB)

Description

Initialize anti-dep breaking for a new basic block.

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:78

Parameters

llvm::MachineBasicBlock* BB

~CriticalAntiDepBreaker()

Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:75