mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-18 22:38:56 +00:00
Update documentation since it was misleading: make it clear that a
negative instruction count is returned if instructions are removed from a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9705 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e668dab5b3
commit
4dad76cea0
@ -186,8 +186,8 @@ public:
|
|||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// All basic block modifier functions below return the number of
|
// All basic block modifier functions below return the number of
|
||||||
// instructions added to/removed from the basic block passed as their
|
// instructions added to (negative if removed from) the basic block
|
||||||
// first argument.
|
// passed as their first argument.
|
||||||
//
|
//
|
||||||
// FIXME: This is only needed because we use a std::vector instead
|
// FIXME: This is only needed because we use a std::vector instead
|
||||||
// of an ilist to keep MachineBasicBlock instructions. Inserting an
|
// of an ilist to keep MachineBasicBlock instructions. Inserting an
|
||||||
@ -199,10 +199,10 @@ public:
|
|||||||
//
|
//
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// Interfaces used by the register allocator and stack frame manipulation
|
// Interfaces used by the register allocator and stack frame
|
||||||
// passes to move data around between registers, immediates and memory.
|
// manipulation passes to move data around between registers,
|
||||||
// The return value is the number of instructions added/deleted to/from the
|
// immediates and memory. The return value is the number of
|
||||||
// basic block.
|
// instructions added to (negative if removed from) the basic block.
|
||||||
//
|
//
|
||||||
|
|
||||||
virtual int storeRegToStackSlot(MachineBasicBlock &MBB,
|
virtual int storeRegToStackSlot(MachineBasicBlock &MBB,
|
||||||
@ -237,7 +237,7 @@ public:
|
|||||||
/// for eliminating these instructions, replacing them with concrete
|
/// for eliminating these instructions, replacing them with concrete
|
||||||
/// instructions. This method need only be implemented if using call frame
|
/// instructions. This method need only be implemented if using call frame
|
||||||
/// setup/destroy pseudo instructions. The return value is the number of
|
/// setup/destroy pseudo instructions. The return value is the number of
|
||||||
/// instructions added/deleted to/from the basic block.
|
/// instructions added to (negative if removed from) the basic block.
|
||||||
///
|
///
|
||||||
virtual int eliminateCallFramePseudoInstr(MachineFunction &MF,
|
virtual int eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
@ -252,7 +252,8 @@ public:
|
|||||||
/// before the specified functions frame layout (MF.getFrameInfo()) is
|
/// before the specified functions frame layout (MF.getFrameInfo()) is
|
||||||
/// finalized. Once the frame is finalized, MO_FrameIndex operands are
|
/// finalized. Once the frame is finalized, MO_FrameIndex operands are
|
||||||
/// replaced with direct constants. This method is optional. The return value
|
/// replaced with direct constants. This method is optional. The return value
|
||||||
/// is the number of instructions added/deleted to/from the basic block
|
/// is the number of instructions added to (negative if removed from) the
|
||||||
|
/// basic block
|
||||||
///
|
///
|
||||||
virtual int processFunctionBeforeFrameFinalized(MachineFunction &MF) const {
|
virtual int processFunctionBeforeFrameFinalized(MachineFunction &MF) const {
|
||||||
return 0;
|
return 0;
|
||||||
@ -264,14 +265,15 @@ public:
|
|||||||
/// eliminated by this method. This method may modify or replace the
|
/// eliminated by this method. This method may modify or replace the
|
||||||
/// specified instruction, as long as it keeps the iterator pointing the the
|
/// specified instruction, as long as it keeps the iterator pointing the the
|
||||||
/// finished product. The return value is the number of instructions
|
/// finished product. The return value is the number of instructions
|
||||||
/// added/deleted to/from the basic block
|
/// added to (negative if removed from) the basic block.
|
||||||
///
|
///
|
||||||
virtual int eliminateFrameIndex(MachineFunction &MF,
|
virtual int eliminateFrameIndex(MachineFunction &MF,
|
||||||
MachineBasicBlock::iterator &II) const = 0;
|
MachineBasicBlock::iterator &II) const = 0;
|
||||||
|
|
||||||
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into
|
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into
|
||||||
/// the function. The return value is the number of instructions
|
/// the function. The return value is the number of instructions
|
||||||
/// added/deleted to/from the basic block (entry for prologue,
|
/// added to (negative if removed from) the basic block (entry for prologue).
|
||||||
|
///
|
||||||
virtual int emitPrologue(MachineFunction &MF) const = 0;
|
virtual int emitPrologue(MachineFunction &MF) const = 0;
|
||||||
virtual int emitEpilogue(MachineFunction &MF,
|
virtual int emitEpilogue(MachineFunction &MF,
|
||||||
MachineBasicBlock &MBB) const = 0;
|
MachineBasicBlock &MBB) const = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user