Don't use a potentially expensive shift if all we want is one set bit.
[oota-llvm.git] / lib / Target / AArch64 / AArch64FrameLowering.h
index dfa66ec236437d16eecd85b9037b3c67ff025add..45ea0ec8e0717c6df09128260ce96e13cb605110 100644 (file)
@@ -7,7 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 //
-//
+// This class implements the AArch64-specific parts of the TargetFrameLowering
+// class.
 //
 //===----------------------------------------------------------------------===//
 
@@ -29,7 +30,7 @@ private:
   struct LoadStoreMethod {
     const TargetRegisterClass *RegClass; // E.g. GPR64RegClass
 
-    // The preferred instruction. 
+    // The preferred instruction.
     unsigned PairOpcode; // E.g. LSPair64_STR
 
     // Sometimes only a single register can be handled at once.
@@ -70,6 +71,10 @@ public:
                                         const std::vector<CalleeSavedInfo> &CSI,
                                         const TargetRegisterInfo *TRI) const;
 
+  void eliminateCallFramePseudoInstr(MachineFunction &MF,
+                                     MachineBasicBlock &MBB,
+                                     MachineBasicBlock::iterator MI) const;
+
   /// If the register is X30 (i.e. LR) and the return address is used in the
   /// function then the callee-save store doesn't actually kill the register,
   /// otherwise it does.