class PeelingModuloScheduleExpander

Declaration

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

Description

A reimplementation of ModuloScheduleExpander. It works by generating a standalone kernel loop and peeling out the prologs and epilogs.

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

Method Overview

Methods

PeelingModuloScheduleExpander(
    llvm::MachineFunction& MF,
    llvm::ModuloSchedule& S,
    llvm::LiveIntervals* LIS)

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

Parameters

llvm::MachineFunction& MF
llvm::ModuloSchedule& S
llvm::LiveIntervals* LIS

void expand()

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

void rewriteKernel()

Description

Converts BB from the original loop body to the rewritten, pipelined steady-state.

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

void validateAgainstModuloScheduleExpander()

Description

Runs ModuloScheduleExpander and treats it as a golden input to validate aspects of the code generated by PeelingModuloScheduleExpander.

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