Searched refs:BasicBlock (Results 1 - 25 of 569) sorted by relevance

1234567891011>>

/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DUnifyFunctionExitNodes.h26 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 DCodeMoverUtils.h19 class BasicBlock;
39 bool isControlFlowEquivalent(const BasicBlock &BB0, const BasicBlock &BB1,
50 void moveInstsBottomUp(BasicBlock &FromBB, BasicBlock &ToBB,
H A DBasicBlockUtils.h1 //===- 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 DJumpThreading.h32 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 DSpeculativeExecution.h80 bool runOnBasicBlock(BasicBlock &B);
81 bool considerHoistingFromTo(BasicBlock &FromBlock, BasicBlock &ToBlock);
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemorySSAUpdater.h41 #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 DIteratedDominanceFrontier.h17 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 DGuardUtils.h17 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 DCFG.h1 //===-- 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 DInstructionPrecedenceTracking.h32 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 DPHITransAddr.h62 /// 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 DOrderedBasicBlock.h11 // 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 DInterval.h27 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 DSyncDependenceAnalysis.h27 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 DTrace.h25 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 DPredIteratorCache.h29 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 DBasicBlock.h1 //===- 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 DAssemblyAnnotationWriter.h22 class BasicBlock;
39 virtual void emitBasicBlockStartAnnot(const BasicBlock *,
45 virtual void emitBasicBlockEndAnnot(const BasicBlock *,
H A DDominators.h21 #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 DWasmEHFuncInfo.h19 #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 DBasicBlock.cpp1 //===-- 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 DInterval.cpp15 #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 DCFG.cpp1 //===-- 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 DFlattenCFG.cpp17 #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 DSpeculateAnalyses.h29 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 &,

Completed in 308 milliseconds

1234567891011>>