class AggressiveAntiDepBreaker

Declaration

class AggressiveAntiDepBreaker : 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/AggressiveAntiDepBreaker.h:116

Inherits from: AntiDepBreaker

Method Overview

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

Inherited from AntiDepBreaker:

Methods

AggressiveAntiDepBreaker(
    llvm::MachineFunction& MFi,
    const llvm::RegisterClassInfo& RCI,
    TargetSubtargetInfo::RegClassVector&
        CriticalPathRCs)

Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:132

Parameters

llvm::MachineFunction& MFi
const llvm::RegisterClassInfo& RCI
TargetSubtargetInfo::RegClassVector& CriticalPathRCs

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/AggressiveAntiDepBreaker.h:142

Parameters

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

void FinishBlock()

Description

Finish anti-dep breaking for a basic block.

Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:154

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/AggressiveAntiDepBreaker.h:150

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/AggressiveAntiDepBreaker.h:138

Parameters

llvm::MachineBasicBlock* BB

~AggressiveAntiDepBreaker()

Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:135