Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
lib/CodeGen/PrologEpilogInserter.cpp
Show First 20 Lines • Show All 969 Lines • ▼ Show 20 Lines | |||||
/// insertPrologEpilogCode - Scan the function for modified callee saved | /// insertPrologEpilogCode - Scan the function for modified callee saved | ||||
/// registers, insert spill code for these callee saved registers, then add | /// registers, insert spill code for these callee saved registers, then add | ||||
/// prolog and epilog code to the function. | /// prolog and epilog code to the function. | ||||
/// | /// | ||||
void PEI::insertPrologEpilogCode(MachineFunction &Fn) { | void PEI::insertPrologEpilogCode(MachineFunction &Fn) { | ||||
const TargetFrameLowering &TFI = *Fn.getSubtarget().getFrameLowering(); | const TargetFrameLowering &TFI = *Fn.getSubtarget().getFrameLowering(); | ||||
// Set initial incoming and outgoing cfa offset and register values for basic | |||||
// blocks. | |||||
TFI.initializeCFIInfo(Fn); | |||||
// Add prologue to the function... | // Add prologue to the function... | ||||
for (MachineBasicBlock *SaveBlock : SaveBlocks) | for (MachineBasicBlock *SaveBlock : SaveBlocks) | ||||
TFI.emitPrologue(Fn, *SaveBlock); | TFI.emitPrologue(Fn, *SaveBlock); | ||||
// Add epilogue to restore the callee-save registers in each exiting block. | // Add epilogue to restore the callee-save registers in each exiting block. | ||||
for (MachineBasicBlock *RestoreBlock : RestoreBlocks) | for (MachineBasicBlock *RestoreBlock : RestoreBlocks) | ||||
TFI.emitEpilogue(Fn, *RestoreBlock); | TFI.emitEpilogue(Fn, *RestoreBlock); | ||||
▲ Show 20 Lines • Show All 165 Lines • Show Last 20 Lines |