Lines Matching defs:FPS
59 struct FPS : public MachineFunctionPass { struct
60 static char ID;
61 FPS() : MachineFunctionPass(ID) { in FPS() argument
69 void getAnalysisUsage(AnalysisUsage &AU) const override { in getAnalysisUsage()
79 const char *getPassName() const override { return "X86 FP Stackifier"; } in getPassName()
82 const TargetInstrInfo *TII; // Machine instruction info.
95 struct LiveBundle {
115 SmallVector<LiveBundle, 8> LiveBundles;
118 EdgeBundles *Bundles;
121 static unsigned calcLiveInMask(MachineBasicBlock *MBB) { in calcLiveInMask()
136 MachineBasicBlock *MBB; // Current basic block
142 unsigned Stack[8]; // FP<n> Registers in each stack slot...
143 unsigned StackTop; // The current top of the FP stack.
145 enum {
153 unsigned RegMap[NumFPRegs];
162 void dumpStack() const { in dumpStack()
173 unsigned getSlot(unsigned RegNo) const { in getSlot()
179 bool isLive(unsigned RegNo) const { in isLive()
185 unsigned getStackEntry(unsigned STi) const { in getStackEntry()
193 unsigned getSTReg(unsigned RegNo) const { in getSTReg()
198 void pushReg(unsigned Reg) { in pushReg()
206 bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; } in isAtTop()
207 void moveToTop(unsigned RegNo, MachineBasicBlock::iterator I) { in moveToTop()
227 void duplicateToTop(unsigned RegNo, unsigned AsReg, MachineInstr *I) { in duplicateToTop()
271 static bool isFPCopy(MachineInstr *MI) { in isFPCopy()