|
LLVM 22.0.0git
|
#include "Analysis/SPIRVConvergenceRegionAnalysis.h"#include "SPIRV.h"#include "SPIRVStructurizerWrapper.h"#include "SPIRVSubtarget.h"#include "SPIRVUtils.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/IR/CFG.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/IntrinsicsSPIRV.h"#include "llvm/IR/LegacyPassManager.h"#include "llvm/InitializePasses.h"#include "llvm/Transforms/Utils.h"#include "llvm/Transforms/Utils/Cloning.h"#include "llvm/Transforms/Utils/LoopSimplify.h"#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"#include <stack>#include <unordered_set>Go to the source code of this file.
Typedefs | |
| using | BlockSet = std::unordered_set<BasicBlock *> |
| using | Edge = std::pair<BasicBlock *, BasicBlock *> |
Variables | |
| spirv | structurizer |
| spirv structurize | SPIRV |
| spirv structurize | false |
| using BlockSet = std::unordered_set<BasicBlock *> |
Definition at line 37 of file SPIRVStructurizer.cpp.
| using Edge = std::pair<BasicBlock *, BasicBlock *> |
Definition at line 38 of file SPIRVStructurizer.cpp.
|
static |
Definition at line 175 of file SPIRVStructurizer.cpp.
References F, getDesignatedContinueBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 98 of file SPIRVStructurizer.cpp.
References llvm::cast(), llvm::dyn_cast_or_null(), llvm::BlockAddress::getBasicBlock(), I, and II.
Referenced by getContinueBlocks(), and hasLoopMergeInstruction().
|
static |
Definition at line 83 of file SPIRVStructurizer.cpp.
References llvm::cast(), llvm::dyn_cast_or_null(), llvm::BlockAddress::getBasicBlock(), I, and II.
Referenced by getHeaderBlocks(), getMergeBlocks(), isDefinedAsSelectionMergeBy(), and isMergeInstruction().
|
static |
Definition at line 65 of file SPIRVStructurizer.cpp.
References assert(), llvm::SPIRV::ConvergenceRegion::Blocks, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SPIRV::ConvergenceRegion::Exits, llvm::Successor, and llvm::successors().
|
static |
Definition at line 137 of file SPIRVStructurizer.cpp.
References F, getDesignatedMergeBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 150 of file SPIRVStructurizer.cpp.
References F, getDesignatedMergeBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 165 of file SPIRVStructurizer.cpp.
References I, and isMergeInstruction().
|
static |
Definition at line 51 of file SPIRVStructurizer.cpp.
References getRegionForHeader().
Referenced by getRegionForHeader().
|
static |
Definition at line 122 of file SPIRVStructurizer.cpp.
References getDesignatedContinueBlock(), and I.
| INITIALIZE_PASS_BEGIN | ( | SPIRVStructurizer | , |
| "spirv-structurizer" | , | ||
| "structurize SPIRV" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 112 of file SPIRVStructurizer.cpp.
References getDesignatedMergeBlock(), I, and Merge.
|
static |
Definition at line 131 of file SPIRVStructurizer.cpp.
References getDesignatedMergeBlock(), and I.
Referenced by getMergeInstructions().
|
static |
Definition at line 42 of file SPIRVStructurizer.cpp.
|
static |
Definition at line 261 of file SPIRVStructurizer.cpp.
References assert(), llvm::dyn_cast(), llvm::BasicBlock::getTerminator(), llvm::isa(), replaceIfBranchTargets(), and T.
|
static |
Definition at line 214 of file SPIRVStructurizer.cpp.
References llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::BasicBlock::getTerminator(), II, and llvm::BasicBlock::size().
Referenced by replaceBranchTargets().
|
static |
Definition at line 189 of file SPIRVStructurizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallPtrSetImpl< PtrType >::insert(), op, and llvm::successors().
| spirv structurize false |
Definition at line 1222 of file SPIRVStructurizer.cpp.
| spirv structurize SPIRV |
Definition at line 1222 of file SPIRVStructurizer.cpp.
| spirv structurizer |
Definition at line 1221 of file SPIRVStructurizer.cpp.