Lines Matching refs:CFStack
27 struct CFStack { struct
42 CFStack(const R600Subtarget *st, CallingConv::ID cc) : ST(st), in CFStack() function
47 bool branchStackContains(CFStack::StackItem);
49 unsigned getSubEntrySize(CFStack::StackItem Item);
57 unsigned CFStack::getLoopDepth() { in getLoopDepth()
61 bool CFStack::branchStackContains(CFStack::StackItem Item) { in branchStackContains()
65 bool CFStack::requiresWorkAroundForInst(unsigned Opcode) { in requiresWorkAroundForInst()
103 unsigned CFStack::getSubEntrySize(CFStack::StackItem Item) { in getSubEntrySize()
107 case CFStack::FIRST_NON_WQM_PUSH: in getSubEntrySize()
121 case CFStack::FIRST_NON_WQM_PUSH_W_FULL_ENTRY: in getSubEntrySize()
126 case CFStack::SUB_ENTRY: in getSubEntrySize()
131 void CFStack::updateMaxStackSize() { in updateMaxStackSize()
136 void CFStack::pushBranch(unsigned Opcode, bool isWQM) { in pushBranch()
137 CFStack::StackItem Item = CFStack::ENTRY; in pushBranch()
143 !branchStackContains(CFStack::FIRST_NON_WQM_PUSH)) in pushBranch()
144 Item = CFStack::FIRST_NON_WQM_PUSH; // May not be required on Evergreen/NI in pushBranch()
150 !branchStackContains(CFStack::FIRST_NON_WQM_PUSH_W_FULL_ENTRY)) in pushBranch()
151 Item = CFStack::FIRST_NON_WQM_PUSH_W_FULL_ENTRY; in pushBranch()
153 Item = CFStack::SUB_ENTRY; in pushBranch()
155 Item = CFStack::ENTRY; in pushBranch()
159 if (Item == CFStack::ENTRY) in pushBranch()
166 void CFStack::pushLoop() { in pushLoop()
167 LoopStack.push_back(CFStack::ENTRY); in pushLoop()
172 void CFStack::popBranch() { in popBranch()
173 CFStack::StackItem Top = BranchStack.back(); in popBranch()
174 if (Top == CFStack::ENTRY) in popBranch()
181 void CFStack::popLoop() { in popLoop()
484 CFStack CFStack(ST, MF.getFunction().getCallingConv()); in runOnMachineFunction() local
517 CFStack.requiresWorkAroundForInst(MI->getOpcode()); in runOnMachineFunction()
528 CFStack.pushBranch(R600::CF_PUSH_EG); in runOnMachineFunction()
530 CFStack.pushBranch(R600::CF_ALU_PUSH_BEFORE); in runOnMachineFunction()
539 CFStack.pushLoop(); in runOnMachineFunction()
552 CFStack.popLoop(); in runOnMachineFunction()
590 CFStack.popBranch(); in runOnMachineFunction()
667 MFI->CFStackSize = CFStack.MaxStackSize; in runOnMachineFunction()