LLVM
15.0.0git
|
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegionInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/InitializePasses.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "amdgpucfgstructurizer" |
Variables | |
static int | structurize_once = 0 |
char | AMDGPUMachineCFGStructurizerID = AMDGPUMachineCFGStructurizer::ID |
amdgpu machine cfg | structurizer |
amdgpu machine cfg AMDGPU Machine CFG | Structurizer |
amdgpu machine cfg AMDGPU Machine CFG | false |
#define DEBUG_TYPE "amdgpucfgstructurizer" |
Definition at line 28 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 2801 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), E, llvm::MachineInstr::getOperand(), getPHINumInputs(), i, I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MachineInstr::isPHI(), llvm::MachineOperand::isReg(), and MBBI.
|
static |
Definition at line 1621 of file AMDGPUMachineCFGStructurizer.cpp.
References MBB.
|
static |
Definition at line 2551 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, mbbHasBackEdge(), and llvm::reverse().
Referenced by containsNewBackedge().
|
static |
Definition at line 2572 of file AMDGPUMachineCFGStructurizer.cpp.
References containsNewBackedge().
|
static |
Definition at line 599 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::MachineRegisterInfo::createVirtualRegister(), MRI, and TII.
|
static |
Definition at line 1254 of file AMDGPUMachineCFGStructurizer.cpp.
References MBB, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_size(), and llvm::MachineBasicBlock::terminators().
Referenced by fixupRegionExits().
|
static |
Definition at line 1267 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), llvm::MachineBasicBlock::successors(), and llvm::MachineBasicBlock::terminators().
Referenced by fixupRegionExits().
void fixupRegionExits | ( | RegionMRT * | Region | ) |
Definition at line 1313 of file AMDGPUMachineCFGStructurizer.cpp.
References fixMBBTerminator(), and fixRegionTerminator().
|
static |
Definition at line 304 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineInstr::isPHI().
|
static |
Definition at line 284 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), llvm::MachineInstr::getNumOperands(), and llvm::MachineInstr::isPHI().
Referenced by checkRegOnlyPHIInputs().
|
static |
Definition at line 289 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOperand(), and llvm::MachineInstr::isPHI().
|
static |
Definition at line 299 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineInstr::isPHI().
|
static |
Definition at line 1672 of file AMDGPUMachineCFGStructurizer.cpp.
References result.
Referenced by hasOneExitNode().
|
static |
Definition at line 1687 of file AMDGPUMachineCFGStructurizer.cpp.
References getSingleExitNode().
INITIALIZE_PASS_BEGIN | ( | AMDGPUMachineCFGStructurizer | , |
"amdgpu-machine-cfg-structurizer" | , | ||
"AMDGPU Machine CFG Structurizer" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 2229 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::MachineFunction::begin(), llvm::MachineBasicBlock::getParent(), and MBB.
|
static |
Definition at line 1408 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::is_contained().
|
static |
Definition at line 2543 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), MBB, and llvm::MachineBasicBlock::successors().
Referenced by containsNewBackedge().
bool regionIsSequence | ( | RegionMRT * | Region | ) |
Definition at line 1301 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 1756 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::dbgs(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, DenseMapInfo< ValueT >, detail::DenseSetPair< ValueT > >, DenseMapInfo< ValueT > >::insert(), LLVM_DEBUG, llvm::MachineBasicBlock::predecessors(), llvm::printMBBReference(), SI, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_size(), and llvm::MachineBasicBlock::successors().
|
static |
Definition at line 1746 of file AMDGPUMachineCFGStructurizer.cpp.
References E, MBB, llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_end().
|
static |
Definition at line 2529 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::RegionBase< Tr >::contains(), E, llvm::MachineBasicBlock::pred_begin(), and llvm::MachineBasicBlock::pred_end().
|
static |
Definition at line 294 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::MachineInstr::getOperand(), and llvm::MachineOperand::setMBB().
|
static |
Definition at line 2473 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::MachineBasicBlock::addSuccessor(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineBasicBlock::end(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), I, llvm::MachineFunction::insert(), MBB, llvm::MachineBasicBlock::splice(), and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().
char AMDGPUMachineCFGStructurizerID = AMDGPUMachineCFGStructurizer::ID |
Definition at line 2843 of file AMDGPUMachineCFGStructurizer.cpp.
Definition at line 2849 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 2730 of file AMDGPUMachineCFGStructurizer.cpp.
amdgpu machine cfg structurizer |
Definition at line 2848 of file AMDGPUMachineCFGStructurizer.cpp.
Definition at line 2849 of file AMDGPUMachineCFGStructurizer.cpp.