summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PTX/PTXInstrInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/PTX/PTXInstrInfo.h')
-rw-r--r--llvm/lib/Target/PTX/PTXInstrInfo.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/Target/PTX/PTXInstrInfo.h b/llvm/lib/Target/PTX/PTXInstrInfo.h
index a04be7728f8..b08c1597412 100644
--- a/llvm/lib/Target/PTX/PTXInstrInfo.h
+++ b/llvm/lib/Target/PTX/PTXInstrInfo.h
@@ -84,6 +84,29 @@ public:
const SmallVectorImpl<MachineOperand> &Cond,
DebugLoc DL) const;
+ // Memory operand folding for spills
+ // TODO: Implement this eventually and get rid of storeRegToStackSlot and
+ // loadRegFromStackSlot. Doing so will get rid of the "stack" registers
+ // we currently use to spill, though I doubt the overall effect on ptxas
+ // output will be large. I have yet to see a case where ptxas is unable
+ // to see through the "stack" register usage and hence generates
+ // efficient code anyway.
+ // virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
+ // MachineInstr* MI,
+ // const SmallVectorImpl<unsigned> &Ops,
+ // int FrameIndex) const;
+
+ virtual void storeRegToStackSlot(MachineBasicBlock& MBB,
+ MachineBasicBlock::iterator MII,
+ unsigned SrcReg, bool isKill, int FrameIndex,
+ const TargetRegisterClass* RC,
+ const TargetRegisterInfo* TRI) const;
+ virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
+ MachineBasicBlock::iterator MII,
+ unsigned DestReg, int FrameIdx,
+ const TargetRegisterClass *RC,
+ const TargetRegisterInfo *TRI) const;
+
// static helper routines
static MachineSDNode *GetPTXMachineNode(SelectionDAG *DAG, unsigned Opcode,
OpenPOWER on IntegriCloud