diff options
Diffstat (limited to 'include/llvm/Target/TargetFrameLowering.h')
| -rw-r--r-- | include/llvm/Target/TargetFrameLowering.h | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/include/llvm/Target/TargetFrameLowering.h b/include/llvm/Target/TargetFrameLowering.h index 0e317247a59f..3af2227410f7 100644 --- a/include/llvm/Target/TargetFrameLowering.h +++ b/include/llvm/Target/TargetFrameLowering.h @@ -19,6 +19,7 @@  #include <vector>  namespace llvm { +  class BitVector;    class CalleeSavedInfo;    class MachineFunction;    class RegScavenger; @@ -226,13 +227,15 @@ public:      return 0;    } -  /// processFunctionBeforeCalleeSavedScan - This method is called immediately -  /// before PrologEpilogInserter scans the physical registers used to determine -  /// what callee saved registers should be spilled. This method is optional. -  virtual void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, -                                             RegScavenger *RS = nullptr) const { - -  } +  /// This method determines which of the registers reported by +  /// TargetRegisterInfo::getCalleeSavedRegs() should actually get saved. +  /// The default implementation checks populates the \p SavedRegs bitset with +  /// all registers which are modified in the function, targets may override +  /// this function to save additional registers. +  /// This method also sets up the register scavenger ensuring there is a free +  /// register or a frameindex available. +  virtual void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, +                                    RegScavenger *RS = nullptr) const;    /// processFunctionBeforeFrameFinalized - This method is called immediately    /// before the specified function's frame layout (MF.getFrameInfo()) is  | 
