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.