Lines Matching defs:FPS
59 struct FPS : public MachineFunctionPass { struct
60 static char ID;
61 FPS() : MachineFunctionPass(ID) { in FPS() function
68 void getAnalysisUsage(AnalysisUsage &AU) const override { in getAnalysisUsage()
78 MachineFunctionProperties getRequiredProperties() const override { in getRequiredProperties()
83 StringRef getPassName() const override { return "X86 FP Stackifier"; } in getPassName()
86 const TargetInstrInfo *TII = nullptr; // Machine instruction info.
99 struct LiveBundle {
119 SmallVector<LiveBundle, 8> LiveBundles;
122 EdgeBundles *Bundles = nullptr;
125 static unsigned calcLiveInMask(MachineBasicBlock *MBB, bool RemoveFPs) { in calcLiveInMask()
146 MachineBasicBlock *MBB = nullptr; // Current basic block
152 unsigned Stack[8]; // FP<n> Registers in each stack slot...
153 unsigned StackTop = 0; // The current top of the FP stack.
155 enum {
163 unsigned RegMap[NumFPRegs];
172 void dumpStack() const { in dumpStack()
183 unsigned getSlot(unsigned RegNo) const { in getSlot()
189 bool isLive(unsigned RegNo) const { in isLive()
195 unsigned getStackEntry(unsigned STi) const { in getStackEntry()
203 unsigned getSTReg(unsigned RegNo) const { in getSTReg()
208 void pushReg(unsigned Reg) { in pushReg()
217 void popReg() { in popReg()
223 bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; } in isAtTop()
224 void moveToTop(unsigned RegNo, MachineBasicBlock::iterator I) { in moveToTop()
244 void duplicateToTop(unsigned RegNo, unsigned AsReg, in duplicateToTop()
290 static bool isFPCopy(MachineInstr &MI) { in isFPCopy()