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()
134 MachineBasicBlock *MBB; // Current basic block
140 unsigned Stack[8]; // FP<n> Registers in each stack slot...
141 unsigned StackTop; // The current top of the FP stack.
143 enum {
151 unsigned RegMap[NumFPRegs];
160 void dumpStack() const { in dumpStack()
171 unsigned getSlot(unsigned RegNo) const { in getSlot()
177 bool isLive(unsigned RegNo) const { in isLive()
183 unsigned getStackEntry(unsigned STi) const { in getStackEntry()
191 unsigned getSTReg(unsigned RegNo) const { in getSTReg()
196 void pushReg(unsigned Reg) { in pushReg()
204 bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; } in isAtTop()
205 void moveToTop(unsigned RegNo, MachineBasicBlock::iterator I) { in moveToTop()
225 void duplicateToTop(unsigned RegNo, unsigned AsReg, MachineInstr *I) { in duplicateToTop()
269 static bool isFPCopy(MachineInstr *MI) { in isFPCopy()