mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Make class comment visible in Doxygen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28436 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -6,34 +6,7 @@
|
||||
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The MachineFrameInfo class represents an abstract stack frame until
|
||||
// prolog/epilog code is inserted. This class is key to allowing stack frame
|
||||
// representation optimizations, such as frame pointer elimination. It also
|
||||
// allows more mundane (but still important) optimizations, such as reordering
|
||||
// of abstract objects on the stack frame.
|
||||
//
|
||||
// To support this, the class assigns unique integer identifiers to stack
|
||||
// objects requested clients. These identifiers are negative integers for fixed
|
||||
// stack objects (such as arguments passed on the stack) or positive for objects
|
||||
// that may be reordered. Instructions which refer to stack objects use a
|
||||
// special MO_FrameIndex operand to represent these frame indexes.
|
||||
//
|
||||
// Because this class keeps track of all references to the stack frame, it knows
|
||||
// when a variable sized object is allocated on the stack. This is the sole
|
||||
// condition which prevents frame pointer elimination, which is an important
|
||||
// optimization on register-poor architectures. Because original variable sized
|
||||
// alloca's in the source program are the only source of variable sized stack
|
||||
// objects, it is safe to decide whether there will be any variable sized
|
||||
// objects before all stack objects are known (for example, register allocator
|
||||
// spill code never needs variable sized objects).
|
||||
//
|
||||
// When prolog/epilog code emission is performed, the final stack frame is built
|
||||
// and the machine instructions are modified to refer to the actual stack
|
||||
// offsets of the object, eliminating all MO_FrameIndex operands from the
|
||||
// program.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#ifndef LLVM_CODEGEN_MACHINEFRAMEINFO_H
|
||||
#define LLVM_CODEGEN_MACHINEFRAMEINFO_H
|
||||
@@ -47,6 +20,36 @@ class Type;
|
||||
class MachineDebugInfo;
|
||||
class MachineFunction;
|
||||
|
||||
|
||||
/// The MachineFrameInfo class represents an abstract stack frame until
|
||||
/// prolog/epilog code is inserted. This class is key to allowing stack frame
|
||||
/// representation optimizations, such as frame pointer elimination. It also
|
||||
/// allows more mundane (but still important) optimizations, such as reordering
|
||||
/// of abstract objects on the stack frame.
|
||||
///
|
||||
/// To support this, the class assigns unique integer identifiers to stack
|
||||
/// objects requested clients. These identifiers are negative integers for
|
||||
/// fixed stack objects (such as arguments passed on the stack) or positive
|
||||
/// for objects that may be reordered. Instructions which refer to stack
|
||||
/// objects use a special MO_FrameIndex operand to represent these frame
|
||||
/// indexes.
|
||||
///
|
||||
/// Because this class keeps track of all references to the stack frame, it
|
||||
/// knows when a variable sized object is allocated on the stack. This is the
|
||||
/// sole condition which prevents frame pointer elimination, which is an
|
||||
/// important optimization on register-poor architectures. Because original
|
||||
/// variable sized alloca's in the source program are the only source of
|
||||
/// variable sized stack objects, it is safe to decide whether there will be
|
||||
/// any variable sized objects before all stack objects are known (for
|
||||
/// example, register allocator spill code never needs variable sized
|
||||
/// objects).
|
||||
///
|
||||
/// When prolog/epilog code emission is performed, the final stack frame is
|
||||
/// built and the machine instructions are modified to refer to the actual
|
||||
/// stack offsets of the object, eliminating all MO_FrameIndex operands from
|
||||
/// the program.
|
||||
///
|
||||
/// @brief Abstract Stack Frame Information
|
||||
class MachineFrameInfo {
|
||||
|
||||
// StackObject - Represent a single object allocated on the stack.
|
||||
|
||||
Reference in New Issue
Block a user