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/CodeGen/IntrinsicLowering.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 38 of file SPIRVStructurizer.cpp.
using Edge = std::pair<BasicBlock *, BasicBlock *> |
Definition at line 39 of file SPIRVStructurizer.cpp.
|
static |
Definition at line 176 of file SPIRVStructurizer.cpp.
References F, getDesignatedContinueBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 99 of file SPIRVStructurizer.cpp.
References llvm::BlockAddress::getBasicBlock(), I, and II.
Referenced by getContinueBlocks(), and hasLoopMergeInstruction().
|
static |
Definition at line 84 of file SPIRVStructurizer.cpp.
References llvm::BlockAddress::getBasicBlock(), I, and II.
Referenced by getHeaderBlocks(), getMergeBlocks(), isDefinedAsSelectionMergeBy(), and isMergeInstruction().
|
static |
Definition at line 66 of file SPIRVStructurizer.cpp.
References assert(), llvm::SPIRV::ConvergenceRegion::Blocks, llvm::SPIRV::ConvergenceRegion::Exits, llvm::Successor, and llvm::successors().
|
static |
Definition at line 138 of file SPIRVStructurizer.cpp.
References F, getDesignatedMergeBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 151 of file SPIRVStructurizer.cpp.
References F, getDesignatedMergeBlock(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
|
static |
Definition at line 166 of file SPIRVStructurizer.cpp.
References I, and isMergeInstruction().
|
static |
Definition at line 52 of file SPIRVStructurizer.cpp.
References getRegionForHeader().
Referenced by getRegionForHeader().
|
static |
Definition at line 123 of file SPIRVStructurizer.cpp.
References getDesignatedContinueBlock(), and I.
INITIALIZE_PASS_BEGIN | ( | SPIRVStructurizer | , |
"spirv-structurizer" | , | ||
"structurize SPIRV" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 113 of file SPIRVStructurizer.cpp.
References getDesignatedMergeBlock(), I, and Merge.
|
static |
Definition at line 132 of file SPIRVStructurizer.cpp.
References getDesignatedMergeBlock(), and I.
Referenced by getMergeInstructions().
|
static |
Definition at line 43 of file SPIRVStructurizer.cpp.
|
static |
Definition at line 262 of file SPIRVStructurizer.cpp.
References assert(), llvm::BasicBlock::getTerminator(), and replaceIfBranchTargets().
|
static |
Definition at line 215 of file SPIRVStructurizer.cpp.
References llvm::CallingConv::C, llvm::IRBuilderBase::CreateBr(), llvm::Instruction::eraseFromParent(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::BasicBlock::getTerminator(), II, llvm::IRBuilderBase::SetInsertPoint(), and llvm::BasicBlock::size().
Referenced by replaceBranchTargets().
|
static |
Definition at line 190 of file SPIRVStructurizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallPtrSetImpl< PtrType >::insert(), op, and llvm::successors().
spirv structurize false |
Definition at line 1223 of file SPIRVStructurizer.cpp.
spirv structurize SPIRV |
Definition at line 1223 of file SPIRVStructurizer.cpp.
Referenced by llvm::SPIRVExtensionsParser::SPIRVExtensionsParser(), and llvm::SPIRVRegisterInfo::SPIRVRegisterInfo().
spirv structurizer |
Definition at line 1222 of file SPIRVStructurizer.cpp.