LLVM 20.0.0git
|
#include "llvm/Transforms/Utils/SSAUpdaterBulk.h"
#include "llvm/Analysis/IteratedDominanceFrontier.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/Value.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "ssaupdaterbulk" |
Functions | |
static BasicBlock * | getUserBB (Use *U) |
Helper function for finding a block which should have a value for the given user. | |
static void | ComputeLiveInBlocks (const SmallPtrSetImpl< BasicBlock * > &UsingBlocks, const SmallPtrSetImpl< BasicBlock * > &DefBlocks, SmallPtrSetImpl< BasicBlock * > &LiveInBlocks, PredIteratorCache &PredCache) |
Given sets of UsingBlocks and DefBlocks, compute the set of LiveInBlocks. | |
#define DEBUG_TYPE "ssaupdaterbulk" |
Definition at line 24 of file SSAUpdaterBulk.cpp.
|
static |
Given sets of UsingBlocks and DefBlocks, compute the set of LiveInBlocks.
This is basically a subgraph limited by DefBlocks and UsingBlocks.
Definition at line 86 of file SSAUpdaterBulk.cpp.
References llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallPtrSetImpl< PtrType >::end(), llvm::PredIteratorCache::get(), llvm::SmallPtrSetImpl< PtrType >::insert(), P, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::SSAUpdaterBulk::RewriteAllUses().
|
static |
Helper function for finding a block which should have a value for the given user.
For PHI-nodes this block is the corresponding predecessor, for other instructions it's their parent block.
Definition at line 29 of file SSAUpdaterBulk.cpp.
Referenced by llvm::SSAUpdaterBulk::AddUse(), and llvm::SSAUpdaterBulk::RewriteAllUses().