class ModuloScheduleExpander

Declaration

class ModuloScheduleExpander { /* full declaration omitted */ };

Description

The ModuloScheduleExpander takes a ModuloSchedule and expands it in-place, rewriting the old loop and inserting prologs and epilogs as required.

Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:153

Method Overview

Methods

ModuloScheduleExpander(
    llvm::MachineFunction& MF,
    llvm::ModuloSchedule& S,
    llvm::LiveIntervals& LIS,
    llvm::ModuloScheduleExpander::InstrChangesTy
        InstrChanges)

Description

Create a new ModuloScheduleExpander.

Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:255

Parameters

llvm::MachineFunction& MF
llvm::ModuloSchedule& S
llvm::LiveIntervals& LIS
llvm::ModuloScheduleExpander::InstrChangesTy InstrChanges

void cleanup()

Description

Performs final cleanup after expansion.

Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:264

void expand()

Description

Performs the actual expansion.

Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:262

llvm::MachineBasicBlock* getRewrittenKernel()

Description

Returns the newly rewritten kernel block, or nullptr if this was optimized away.

Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:268