/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | UnifyFunctionExitNodes.h | 26 BasicBlock *ReturnBlock = nullptr; 27 BasicBlock *UnwindBlock = nullptr; 28 BasicBlock *UnreachableBlock; 40 BasicBlock *getReturnBlock() const { return ReturnBlock; } 41 BasicBlock *getUnwindBlock() const { return UnwindBlock; } 42 BasicBlock *getUnreachableBlock() const { return UnreachableBlock; }
|
H A D | CodeMoverUtils.h | 19 class BasicBlock; 39 bool isControlFlowEquivalent(const BasicBlock &BB0, const BasicBlock &BB1, 50 void moveInstsBottomUp(BasicBlock &FromBB, BasicBlock &ToBB,
|
H A D | BasicBlockUtils.h | 1 //===- Transform/Utils/BasicBlockUtils.h - BasicBlock Utils -----*- C++ -*-===// 17 // FIXME: Move to this file: BasicBlock::removePredecessor, BB::splitBasicBlock 21 #include "llvm/IR/BasicBlock.h" 47 void DetatchDeadBlocks(ArrayRef <BasicBlock *> BBs, 52 void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 61 void DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, 75 void FoldSingleEntryPHINodes(BasicBlock *BB, 82 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = nullptr); 91 bool MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 99 bool RemoveRedundantDbgInstrs(BasicBlock *B [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 32 class BasicBlock; 53 using PredValueInfo = SmallVectorImpl<std::pair<Constant *, BasicBlock *>>; 54 using PredValueInfoTy = SmallVector<std::pair<Constant *, BasicBlock *>, 8>; 87 SmallPtrSet<const BasicBlock *, 16> LoopHeaders; 89 SmallSet<AssertingVH<const BasicBlock>, 16> LoopHeaders; 111 bool ProcessBlock(BasicBlock *BB); 112 bool MaybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 113 void UpdateSSA(BasicBlock *BB, BasicBlock *NewBB, 115 DenseMap<Instruction *, Value *> CloneInstructions(BasicBlock [all...] |
H A D | SpeculativeExecution.h | 80 bool runOnBasicBlock(BasicBlock &B); 81 bool considerHoistingFromTo(BasicBlock &FromBlock, BasicBlock &ToBlock);
|
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | MemorySSAUpdater.h | 41 #include "llvm/IR/BasicBlock.h" 66 using CFGUpdate = cfg::Update<BasicBlock *>; 68 std::pair<const GraphDiff<BasicBlock *> *, Inverse<BasicBlock *>>; 78 SmallPtrSet<BasicBlock *, 8> VisitedBlocks; 105 void removeEdge(BasicBlock *From, BasicBlock *To); 109 void removeDuplicatePhiEdgesBetween(const BasicBlock *From, 110 const BasicBlock *To); 112 void updatePhisWhenInsertingUniqueBackedgeBlock(BasicBlock *LoopHeade [all...] |
H A D | IteratedDominanceFrontier.h | 17 class BasicBlock; 21 /// Specialization for BasicBlock for the optional use of GraphDiff. 22 template <bool IsPostDom> struct ChildrenGetterTy<BasicBlock, IsPostDom> { 23 using NodeRef = BasicBlock *; 24 using ChildrenTy = SmallVector<BasicBlock *, 8>; 27 ChildrenGetterTy(const GraphDiff<BasicBlock *, IsPostDom> *GD) : GD(GD) { 33 const GraphDiff<BasicBlock *, IsPostDom> *GD = nullptr; 39 class IDFCalculator final : public IDFCalculatorBase<BasicBlock, IsPostDom> { 42 typename llvm::IDFCalculatorBase<BasicBlock, IsPostDom>; 45 IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDo [all...] |
H A D | GuardUtils.h | 17 class BasicBlock; 44 Value *&WidenableCondition, BasicBlock *&IfTrueBB, 45 BasicBlock *&IfFalseBB); 49 bool parseWidenableBranch(User *U, Use *&Cond, Use *&WC, BasicBlock *&IfTrueBB, 50 BasicBlock *&IfFalseBB);
|
H A D | CFG.h | 1 //===-- Analysis/CFG.h - BasicBlock Analyses --------------------*- C++ -*-===// 17 #include "llvm/IR/BasicBlock.h" 22 class BasicBlock; 35 SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *> > & 41 unsigned GetSuccessorNumber(const BasicBlock *BB, const BasicBlock *Succ); 49 bool isCriticalEdge(const Instruction *TI, const BasicBlock *Succ, 69 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet = nullptr, 78 bool isPotentiallyReachable(const BasicBlock *Fro [all...] |
H A D | InstructionPrecedenceTracking.h | 32 DenseMap<const BasicBlock *, const Instruction *> FirstSpecialInsts; 37 void fill(const BasicBlock *BB); 43 void validate(const BasicBlock *BB) const; 57 const Instruction *getFirstSpecialInstruction(const BasicBlock *BB); 61 bool hasSpecialInstructions(const BasicBlock *BB); 80 void insertInstructionTo(const Instruction *Inst, const BasicBlock *BB); 104 const Instruction *getFirstICFI(const BasicBlock *BB) { 110 bool hasICF(const BasicBlock *BB) { 128 const Instruction *getFirstMemoryWrite(const BasicBlock *BB) { 134 bool mayWriteToMemory(const BasicBlock *B [all...] |
H A D | PHITransAddr.h | 62 /// BasicBlock to its predecessors requires PHI translation. 63 bool NeedsPHITranslationFromBlock(BasicBlock *BB) const { 81 bool PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, 91 Value *PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, 103 Value *PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, 111 Value *InsertPHITranslatedSubExpr(Value *InVal, BasicBlock *CurBB, 112 BasicBlock *PredB [all...] |
H A D | OrderedBasicBlock.h | 11 // in a BasicBlock. Since BasicBlock currently lacks a reliable way to query 13 // such queries. OrderedBasicBlock is lazily built on a source BasicBlock and 15 // instance should be discarded whenever the source BasicBlock changes. 18 // positions of a pair of instructions inside a BasicBlock. 26 #include "llvm/IR/BasicBlock.h" 31 class BasicBlock; 35 /// Map a instruction to its position in a BasicBlock. 41 BasicBlock::const_iterator LastInstFound; 46 /// The source BasicBlock t [all...] |
H A D | Interval.h | 27 class BasicBlock; 37 /// HeaderNode - The header BasicBlock, which dominates all BasicBlocks in this 40 BasicBlock *HeaderNode; 43 using succ_iterator = std::vector<BasicBlock*>::iterator; 44 using pred_iterator = std::vector<BasicBlock*>::iterator; 45 using node_iterator = std::vector<BasicBlock*>::iterator; 47 inline Interval(BasicBlock *Header) : HeaderNode(Header) { 51 inline BasicBlock *getHeaderNode() const { return HeaderNode; } 54 std::vector<BasicBlock*> Nodes; 59 std::vector<BasicBlock*> Successor [all...] |
H A D | SyncDependenceAnalysis.h | 27 class BasicBlock; 32 using ConstBlockSet = SmallPtrSet<const BasicBlock *, 4>; 40 void visitSuccessor(const BasicBlock &succBlock, const Loop *termLoop, 41 const BasicBlock *defBlock); 44 bool inRegion(const BasicBlock &BB) const;
|
H A D | Trace.h | 25 class BasicBlock; 31 using BasicBlockListType = std::vector<BasicBlock *>; 39 Trace(const std::vector<BasicBlock *> &vBB) : BasicBlocks (vBB) {} 43 BasicBlock *getEntryBasicBlock () const { return BasicBlocks[0]; } 46 BasicBlock *operator[](unsigned i) const { return BasicBlocks[i]; } 47 BasicBlock *getBlock(unsigned i) const { return BasicBlocks[i]; } 58 int getBlockIndex(const BasicBlock *X) const { 67 bool contains(const BasicBlock *X) const { 73 bool dominates(const BasicBlock *B1, const BasicBlock *B [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | PredIteratorCache.h | 29 mutable DenseMap<BasicBlock *, BasicBlock **> BlockToPredsMap; 30 mutable DenseMap<BasicBlock *, unsigned> BlockToPredCountMap; 38 /// for (BasicBlock **PI = PredCache->GetPreds(BB); *PI; ++PI) 42 BasicBlock **GetPreds(BasicBlock *BB) { 43 BasicBlock **&Entry = BlockToPredsMap[BB]; 47 SmallVector<BasicBlock *, 32> PredCache(pred_begin(BB), pred_end(BB)); 52 Entry = Memory.Allocate<BasicBlock *>(PredCache.size()); 57 unsigned GetNumPreds(BasicBlock *B [all...] |
H A D | BasicBlock.h | 1 //===- llvm/BasicBlock.h - Represent a basic block in the VM ----*- C++ -*-===// 9 // This file contains the declaration of the BasicBlock class. 47 /// tables. The type of a BasicBlock is "Type::LabelTy" because the basic block 53 /// the blocks. The BasicBlock class allows malformed basic blocks to occur 57 class BasicBlock final : public Value, // Basic blocks are data objects also 58 public ilist_node_with_parent<BasicBlock, Function> { 64 friend class SymbolTableListTraits<BasicBlock>; 76 explicit BasicBlock(LLVMContext &C, const Twine &Name = "", 78 BasicBlock *InsertBefore = nullptr); 81 BasicBlock(cons [all...] |
H A D | AssemblyAnnotationWriter.h | 22 class BasicBlock; 39 virtual void emitBasicBlockStartAnnot(const BasicBlock *, 45 virtual void emitBasicBlockEndAnnot(const BasicBlock *,
|
H A D | Dominators.h | 21 #include "llvm/IR/BasicBlock.h" 35 extern template class DomTreeNodeBase<BasicBlock>; 36 extern template class DominatorTreeBase<BasicBlock, false>; // DomTree 37 extern template class DominatorTreeBase<BasicBlock, true>; // PostDomTree 39 extern template class cfg::Update<BasicBlock *>; 42 using BBDomTree = DomTreeBase<BasicBlock>; 43 using BBPostDomTree = PostDomTreeBase<BasicBlock>; 45 using BBUpdates = ArrayRef<llvm::cfg::Update<BasicBlock *>>; 53 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 54 BasicBlock *T [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | WasmEHFuncInfo.h | 19 #include "llvm/IR/BasicBlock.h" 25 using BBOrMBB = PointerUnion<const BasicBlock *, MachineBasicBlock *>; 33 const BasicBlock *getEHPadUnwindDest(const BasicBlock *BB) const { 34 return EHPadUnwindMap.lookup(BB).get<const BasicBlock *>(); 36 void setEHPadUnwindDest(const BasicBlock *BB, const BasicBlock *Dest) { 39 bool hasEHPadUnwindDest(const BasicBlock *BB) const {
|
/freebsd-11-stable/contrib/llvm-project/llvm/lib/IR/ |
H A D | BasicBlock.cpp | 1 //===-- BasicBlock.cpp - Implement BasicBlock related methods -------------===// 9 // This file implements the BasicBlock class for the IR library. 13 #include "llvm/IR/BasicBlock.h" 26 ValueSymbolTable *BasicBlock::getValueSymbolTable() { 32 LLVMContext &BasicBlock::getContext() const { 40 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, function in class:BasicBlock 41 BasicBlock *InsertBefore) 53 void BasicBlock [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | Interval.cpp | 15 #include "llvm/IR/BasicBlock.h" 41 for (const BasicBlock *Node : Nodes) 45 for (const BasicBlock *Predecessor : Predecessors) 49 for (const BasicBlock *Successor : Successors)
|
H A D | CFG.cpp | 1 //===-- CFG.cpp - BasicBlock analysis --------------------------------------==// 28 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { 29 const BasicBlock *BB = &F.getEntryBlock(); 33 SmallPtrSet<const BasicBlock*, 8> Visited; 34 SmallVector<std::pair<const BasicBlock*, succ_const_iterator>, 8> VisitStack; 35 SmallPtrSet<const BasicBlock*, 8> InStack; 41 std::pair<const BasicBlock*, succ_const_iterator> &Top = VisitStack.back(); 42 const BasicBlock *ParentBB = Top.first; 72 unsigned llvm::GetSuccessorNumber(const BasicBlock *B 27 FindFunctionBackedges(const Function &F, SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) argument [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | FlattenCFG.cpp | 17 #include "llvm/IR/BasicBlock.h" 40 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder); 45 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder); 52 bool CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2, 53 BasicBlock *Block1, BasicBlock *Block2); 58 bool run(BasicBlock *BB); 136 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder) { 141 BasicBlock *LastCondBloc [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ |
H A D | SpeculateAnalyses.h | 29 void findCalles(const BasicBlock *, DenseSet<StringRef> &); 57 using VisitedBlocksInfoTy = DenseMap<const BasicBlock *, WalkDirection>; 58 using BlockListTy = SmallVector<const BasicBlock *, 8>; 60 SmallVector<std::pair<const BasicBlock *, const BasicBlock *>, 8>; 62 SmallVector<std::pair<const BasicBlock *, uint64_t>, 8>; 68 void traverseToEntryBlock(const BasicBlock *, const BlockListTy &, 72 void traverseToExitBlock(const BasicBlock *, const BlockListTy &,
|