Lines Matching defs:FPS
59 struct FPS : public MachineFunctionPass { struct
60 static char ID;
61 FPS() : MachineFunctionPass(ID) { in FPS() function
69 void getAnalysisUsage(AnalysisUsage &AU) const override { in getAnalysisUsage()
79 MachineFunctionProperties getRequiredProperties() const override { in getRequiredProperties()
84 const char *getPassName() const override { return "X86 FP Stackifier"; } in getPassName()
87 const TargetInstrInfo *TII; // Machine instruction info.
100 struct LiveBundle {
120 SmallVector<LiveBundle, 8> LiveBundles;
123 EdgeBundles *Bundles;
126 static unsigned calcLiveInMask(MachineBasicBlock *MBB) { in calcLiveInMask()
139 MachineBasicBlock *MBB; // Current basic block
145 unsigned Stack[8]; // FP<n> Registers in each stack slot...
146 unsigned StackTop; // The current top of the FP stack.
148 enum {
156 unsigned RegMap[NumFPRegs];
165 void dumpStack() const { in dumpStack()
176 unsigned getSlot(unsigned RegNo) const { in getSlot()
182 bool isLive(unsigned RegNo) const { in isLive()
188 unsigned getStackEntry(unsigned STi) const { in getStackEntry()
196 unsigned getSTReg(unsigned RegNo) const { in getSTReg()
201 void pushReg(unsigned Reg) { in pushReg()
209 bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; } in isAtTop()
210 void moveToTop(unsigned RegNo, MachineBasicBlock::iterator I) { in moveToTop()
230 void duplicateToTop(unsigned RegNo, unsigned AsReg, in duplicateToTop()
276 static bool isFPCopy(MachineInstr &MI) { in isFPCopy()