LLVM API Documentation

BasicBlockUtils.cpp File Reference

#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
#include "llvm/Constant.h"
#include "llvm/Type.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Target/TargetData.h"
#include <algorithm>

Include dependency graph for BasicBlockUtils.cpp:

Go to the source code of this file.

Functions

void llvm::DeleteDeadBlock (BasicBlock *BB)
void llvm::FoldSingleEntryPHINodes (BasicBlock *BB)
bool llvm::MergeBlockIntoPredecessor (BasicBlock *BB, Pass *P=0)
void llvm::ReplaceInstWithValue (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Value *V)
void llvm::ReplaceInstWithInst (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Instruction *I)
void llvm::ReplaceInstWithInst (Instruction *From, Instruction *To)
void llvm::RemoveSuccessor (TerminatorInst *TI, unsigned SuccNum)
BasicBlock * llvm::SplitEdge (BasicBlock *From, BasicBlock *To, Pass *P)
BasicBlock * llvm::SplitBlock (BasicBlock *Old, Instruction *SplitPt, Pass *P)
BasicBlock * llvm::SplitBlockPredecessors (BasicBlock *BB, BasicBlock *const *Preds, unsigned NumPreds, const char *Suffix, Pass *P=0)
static bool AreEquivalentAddressValues (const Value *A, const Value *B)
Value * llvm::FindAvailableLoadedValue (Value *Ptr, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan=6, AliasAnalysis *AA=0)


Function Documentation

static bool AreEquivalentAddressValues ( const Value *  A,
const Value *  B 
) [static]

AreEquivalentAddressValues - Test if A and B will obviously have the same value. This includes recognizing that t0 and t1 will have the same value in code like this: t0 = getelementptr , 0, 3 store i32 0, i32* t0 t1 = getelementptr , 0, 3 t2 = load i32* t1

Definition at line 432 of file BasicBlockUtils.cpp.

Referenced by llvm::FindAvailableLoadedValue().