LLVM  mainline
Namespaces | Functions
Local.h File Reference
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Operator.h"
Include dependency graph for Local.h:

Go to the source code of this file.


namespace  llvm

Compute iterated dominance frontiers using a linear time algorithm.


bool llvm::ConstantFoldTerminator (BasicBlock *BB, bool DeleteDeadConditions=false, const TargetLibraryInfo *TLI=nullptr)
bool llvm::isInstructionTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
bool llvm::RecursivelyDeleteTriviallyDeadInstructions (Value *V, const TargetLibraryInfo *TLI=nullptr)
bool llvm::RecursivelyDeleteDeadPHINode (PHINode *PN, const TargetLibraryInfo *TLI=nullptr)
bool llvm::SimplifyInstructionsInBlock (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr)
void llvm::RemovePredecessorAndSimplify (BasicBlock *BB, BasicBlock *Pred)
void llvm::MergeBasicBlockIntoOnlyPred (BasicBlock *BB, DominatorTree *DT=nullptr)
bool llvm::TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock *BB)
bool llvm::EliminateDuplicatePHINodes (BasicBlock *BB)
bool llvm::SimplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, unsigned BonusInstThreshold, AssumptionCache *AC=nullptr)
bool llvm::FlattenCFG (BasicBlock *BB, AliasAnalysis *AA=nullptr)
bool llvm::FoldBranchToCommonDest (BranchInst *BI, unsigned BonusInstThreshold=1)
AllocaInstllvm::DemoteRegToStack (Instruction &X, bool VolatileLoads=false, Instruction *AllocaPoint=nullptr)
AllocaInstllvm::DemotePHIToStack (PHINode *P, Instruction *AllocaPoint=nullptr)
unsigned llvm::getOrEnforceKnownAlignment (Value *V, unsigned PrefAlign, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr)
static unsigned llvm::getKnownAlignment (Value *V, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr)
 getKnownAlignment - Try to infer an alignment for the specified pointer.
template<typename IRBuilderTy >
Value * llvm::EmitGEPOffset (IRBuilderTy *Builder, const DataLayout &DL, User *GEP, bool NoAssumptions=false)
bool llvm::ConvertDebugDeclareToDebugValue (DbgDeclareInst *DDI, StoreInst *SI, DIBuilder &Builder)
bool llvm::ConvertDebugDeclareToDebugValue (DbgDeclareInst *DDI, LoadInst *LI, DIBuilder &Builder)
bool llvm::LowerDbgDeclare (Function &F)
DbgDeclareInstllvm::FindAllocaDbgDeclare (Value *V)
bool llvm::replaceDbgDeclareForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, bool Deref)
 Replaces llvm.dbg.declare instruction when an alloca is replaced with a new value. If Deref is true, tan additional DW_OP_deref is prepended to the expression.
bool llvm::removeUnreachableBlocks (Function &F)
 Remove all blocks that can not be reached from the function's entry.
void llvm::combineMetadata (Instruction *K, const Instruction *J, ArrayRef< unsigned > KnownIDs)
 Combine the metadata of two instructions so that K can replace J.