LLVM 18.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 2797 of file AMDGPUMachineCFGStructurizer.cpp.
References assert(), E, getPHINumInputs(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), and MBBI.
|
static |
Definition at line 1621 of file AMDGPUMachineCFGStructurizer.cpp.
References MBB, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 2550 of file AMDGPUMachineCFGStructurizer.cpp.
References llvm::CallingConv::C, containsNewBackedge(), llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, mbbHasBackEdge(), and llvm::reverse().
Referenced by containsNewBackedge().
|
static |
Definition at line 2571 of file AMDGPUMachineCFGStructurizer.cpp.
References containsNewBackedge().
|
static |
Definition at line 599 of file AMDGPUMachineCFGStructurizer.cpp.
|
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.
|
static |
Definition at line 284 of file AMDGPUMachineCFGStructurizer.cpp.
Referenced by checkRegOnlyPHIInputs().
|
static |
Definition at line 289 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 299 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 1672 of file AMDGPUMachineCFGStructurizer.cpp.
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 2228 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 2542 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, MapTy, ValueInfoT >::insert(), LLVM_DEBUG, llvm::MachineBasicBlock::predecessors(), llvm::printMBBReference(), 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 2528 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 PHI.
|
static |
Definition at line 2472 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 2839 of file AMDGPUMachineCFGStructurizer.cpp.
amdgpu machine cfg AMDGPU Machine CFG false |
Definition at line 2845 of file AMDGPUMachineCFGStructurizer.cpp.
|
static |
Definition at line 2726 of file AMDGPUMachineCFGStructurizer.cpp.
amdgpu machine cfg structurizer |
Definition at line 2844 of file AMDGPUMachineCFGStructurizer.cpp.
amdgpu machine cfg AMDGPU Machine CFG Structurizer |
Definition at line 2845 of file AMDGPUMachineCFGStructurizer.cpp.