Lines Matching +full:si +full:- +full:en
1 //===-- SILateBranchLowering.cpp - Final preparation of branches ----------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
23 #define DEBUG_TYPE "si-late-branch-lowering"
47 return "SI Final Branch Preparation"; in getPassName()
62 "SI insert s_cbranch_execz instructions", false, false)
65 "SI insert s_cbranch_execz instructions", false, false)
81 bool MustExport = !AMDGPU::isGFX10Plus(TII->getSubtarget()); in generateEndPgm()
85 const GCNSubtarget &ST = MBB.getParent()->getSubtarget<GCNSubtarget>(); in generateEndPgm()
90 BuildMI(MBB, I, DL, TII->get(AMDGPU::EXP_DONE)) in generateEndPgm()
98 .addImm(0); // en in generateEndPgm()
102 BuildMI(MBB, I, DL, TII->get(AMDGPU::S_ENDPGM)).addImm(0); in generateEndPgm()
112 for (MachineBasicBlock *Succ : SplitBB->successors()) { in splitBlock()
117 MDT->getBase().applyUpdates(DTUpdates); in splitBlock()
125 BuildMI(*MI.getParent(), MI, MI.getDebugLoc(), TII->get(MovOpc), ExecReg) in expandChainCall()
126 ->addOperand(MI.getOperand(ExecIdx)); in expandChainCall()
129 MI.setDesc(TII->get(AMDGPU::SI_TCRETURN)); in expandChainCall()
137 auto BranchMI = BuildMI(MBB, MI, DL, TII->get(AMDGPU::S_CBRANCH_SCC0)) in earlyTerm()
141 if (Next != MBB.end() && !Next->isTerminator()) in earlyTerm()
145 MDT->getBase().insertEdge(&MBB, EarlyExitBlock); in earlyTerm()
151 TRI = &TII->getRegisterInfo(); in runOnMachineFunction()
166 // This only occurs in -O0 when BranchFolding is not executed. in runOnMachineFunction()
200 BuildMI(*EarlyExitBlock, EarlyExitBlock->end(), DL, TII->get(MovOpc), in runOnMachineFunction()
203 generateEndPgm(*EarlyExitBlock, EarlyExitBlock->end(), DL, TII, MF); in runOnMachineFunction()
209 Instr->eraseFromParent(); in runOnMachineFunction()
219 assert(!MF.getInfo<SIMachineFunctionInfo>()->returnsVoid()); in runOnMachineFunction()
229 auto MBB = MI->getParent(); in runOnMachineFunction()
230 if (MBB == &MF.back() && MI == &MBB->back()) in runOnMachineFunction()
240 MBB->addSuccessor(EmptyMBBAtEnd); in runOnMachineFunction()
241 MDT->getBase().insertEdge(MBB, EmptyMBBAtEnd); in runOnMachineFunction()
242 BuildMI(*MBB, MI, MI->getDebugLoc(), TII->get(AMDGPU::S_BRANCH)) in runOnMachineFunction()
244 MI->eraseFromParent(); in runOnMachineFunction()