LLVM: lib/Transforms/Utils/SSAUpdaterBulk.cpp File Reference (original) (raw)

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.
static void simplifyPass (MutableArrayRef< PHINode * > Worklist, const DataLayout &DL)
static bool PHIAreRefEachOther (const iterator_range< BasicBlock::phi_iterator > NewPHIs)
static bool replaceIfIdentical (PHINode &PHI, PHINode &ReplPHI)
bool EliminateNewDuplicatePHINodes (BasicBlock *BB, BasicBlock::phi_iterator FirstExistingPN)
static void deduplicatePass (ArrayRef< PHINode * > Worklist)

DEBUG_TYPE

#define DEBUG_TYPE "ssaupdaterbulk"

ComputeLiveInBlocks()

Given sets of UsingBlocks and DefBlocks, compute the set of LiveInBlocks.

This is basically a subgraph limited by DefBlocks and UsingBlocks.

Definition at line 71 of file SSAUpdaterBulk.cpp.

References llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorTemplateCommon< T, typename >::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().

deduplicatePass()

EliminateNewDuplicatePHINodes()

getUserBB()

PHIAreRefEachOther()

replaceIfIdentical()

simplifyPass()