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
- public ModuloScheduleExpander(llvm::MachineFunction & MF, llvm::ModuloSchedule & S, llvm::LiveIntervals & LIS, llvm::ModuloScheduleExpander::InstrChangesTy InstrChanges)
- public void cleanup()
- public void expand()
- public llvm::MachineBasicBlock * getRewrittenKernel()
Methods
¶ModuloScheduleExpander(
llvm::MachineFunction& MF,
llvm::ModuloSchedule& S,
llvm::LiveIntervals& LIS,
llvm::ModuloScheduleExpander::InstrChangesTy
InstrChanges)
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()
void cleanup()
Description
Performs final cleanup after expansion.
Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:264
¶void expand()
void expand()
Description
Performs the actual expansion.
Declared at: llvm/include/llvm/CodeGen/ModuloSchedule.h:262
¶llvm::MachineBasicBlock* getRewrittenKernel()
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