Home
last modified time | relevance | path

Searched refs:BasicBlock (Results 1 – 25 of 329) sorted by relevance

12345678910>>...14

/trueos/contrib/llvm/include/llvm/Analysis/
HDRegionInfo.h71 PointerIntPair<BasicBlock*, 1, bool> entry;
86 inline RegionNode(Region* Parent, BasicBlock* Entry, bool isSubRegion = 0)
105 inline BasicBlock* getEntry() const { return entry.getPointer(); } in getEntry()
129 inline BasicBlock* RegionNode::getNodeAs<BasicBlock>() const {
213 BasicBlock *exit;
220 typedef std::map<BasicBlock*, RegionNode*> BBNodeMapT;
227 void verifyBBInRegion(BasicBlock* BB) const;
232 void verifyWalk(BasicBlock* BB, std::set<BasicBlock*>* visitedBB) const;
247 Region(BasicBlock *Entry, BasicBlock *Exit, RegionInfo* RI,
255 BasicBlock *getEntry() const { return RegionNode::getEntry(); } in getEntry()
[all …]
HDBranchProbabilityInfo.h57 BranchProbability getEdgeProbability(const BasicBlock *Src,
63 BranchProbability getEdgeProbability(const BasicBlock *Src,
64 const BasicBlock *Dst) const;
70 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const;
76 BasicBlock *getHotSucc(BasicBlock *BB) const;
83 raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src,
84 const BasicBlock *Dst) const;
92 uint32_t getEdgeWeight(const BasicBlock *Src,
99 uint32_t getEdgeWeight(const BasicBlock *Src, const BasicBlock *Dst) const;
107 void setEdgeWeight(const BasicBlock *Src, unsigned IndexInSuccessors,
[all …]
HDLoopIterator.h41 typedef std::vector<BasicBlock*>::const_iterator POIterator;
42 typedef std::vector<BasicBlock*>::const_reverse_iterator RPOIterator;
52 DenseMap<BasicBlock*, unsigned> PostNumbers;
53 std::vector<BasicBlock*> PostBlocks;
84 bool hasPreorder(BasicBlock *BB) const { return PostNumbers.count(BB); } in hasPreorder()
87 bool hasPostorder(BasicBlock *BB) const { in hasPostorder()
88 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in hasPostorder()
93 unsigned getPostorder(BasicBlock *BB) const { in getPostorder()
94 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in getPostorder()
101 unsigned getRPO(BasicBlock *BB) const { in getRPO()
[all …]
HDPostDominators.h26 DominatorTreeBase<BasicBlock>* DT;
30 DT = new DominatorTreeBase<BasicBlock>(true); in PostDominatorTree()
41 inline const std::vector<BasicBlock*> &getRoots() const { in getRoots()
49 inline DomTreeNode *operator[](BasicBlock *BB) const {
53 inline DomTreeNode *getNode(BasicBlock *BB) const { in getNode()
61 inline bool dominates(const BasicBlock* A, const BasicBlock* B) const { in dominates()
69 inline bool properlyDominates(BasicBlock* A, BasicBlock* B) const { in properlyDominates()
73 inline BasicBlock *findNearestCommonDominator(BasicBlock *A, BasicBlock *B) { in findNearestCommonDominator()
77 inline const BasicBlock *findNearestCommonDominator(const BasicBlock *A, in findNearestCommonDominator()
78 const BasicBlock *B) { in findNearestCommonDominator()
HDInterval.h28 class BasicBlock; variable
41 BasicBlock *HeaderNode;
43 typedef std::vector<BasicBlock*>::iterator succ_iterator;
44 typedef std::vector<BasicBlock*>::iterator pred_iterator;
45 typedef std::vector<BasicBlock*>::iterator node_iterator;
47 inline Interval(BasicBlock *Header) : HeaderNode(Header) { in Interval()
54 inline BasicBlock *getHeaderNode() const { return HeaderNode; } in getHeaderNode()
58 std::vector<BasicBlock*> Nodes;
64 std::vector<BasicBlock*> Successors;
69 std::vector<BasicBlock*> Predecessors;
[all …]
/trueos/contrib/llvm/include/llvm/Transforms/Utils/
HDBasicBlockUtils.h35 void DeleteDeadBlock(BasicBlock *BB);
42 void FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P = 0);
49 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = 0);
53 bool MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P = 0);
58 void ReplaceInstWithValue(BasicBlock::InstListType &BIL,
59 BasicBlock::iterator &BI, Value *V);
65 void ReplaceInstWithInst(BasicBlock::InstListType &BIL,
66 BasicBlock::iterator &BI, Instruction *I);
91 BasicBlock *SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,
96 inline BasicBlock *SplitCriticalEdge(BasicBlock *BB, succ_iterator SI,
[all …]
/trueos/contrib/llvm/lib/IR/
HDBasicBlock.cpp27 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable()
33 LLVMContext &BasicBlock::getContext() const { in getContext()
39 template class llvm::SymbolTableListTraits<Instruction, BasicBlock>;
42 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock
43 BasicBlock *InsertBefore) in BasicBlock()
61 BasicBlock::~BasicBlock() { in ~BasicBlock()
85 void BasicBlock::setParent(Function *parent) { in setParent()
96 void BasicBlock::removeFromParent() { in removeFromParent()
100 void BasicBlock::eraseFromParent() { in eraseFromParent()
106 void BasicBlock::moveBefore(BasicBlock *MovePos) { in moveBefore()
[all …]
HDDominators.cpp64 TEMPLATE_INSTANTIATION(class llvm::DomTreeNodeBase<BasicBlock>);
65 TEMPLATE_INSTANTIATION(class llvm::DominatorTreeBase<BasicBlock>);
101 const BasicBlock *UseBB = User->getParent(); in dominates()
102 const BasicBlock *DefBB = Def->getParent(); in dominates()
127 BasicBlock::const_iterator I = DefBB->begin(); in dominates()
137 const BasicBlock *UseBB) const { in dominates()
138 const BasicBlock *DefBB = Def->getParent(); in dominates()
157 BasicBlock *NormalDest = II->getNormalDest(); in dominates()
163 const BasicBlock *UseBB) const { in dominates()
171 const BasicBlock *Start = BBE.getStart(); in dominates()
[all …]
/trueos/contrib/llvm/include/llvm/IR/
HDBasicBlock.h32 : public SymbolTableListTraits<Instruction, BasicBlock> {
72 class BasicBlock : public Value, // Basic blocks are data objects also
73 public ilist_node<BasicBlock> {
82 friend class SymbolTableListTraits<BasicBlock, Function>;
84 BasicBlock(const BasicBlock &) LLVM_DELETED_FUNCTION;
85 void operator=(const BasicBlock &) LLVM_DELETED_FUNCTION;
92 explicit BasicBlock(LLVMContext &C, const Twine &Name = "",
93 Function *Parent = 0, BasicBlock *InsertBefore = 0);
109 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "",
110 Function *Parent = 0,BasicBlock *InsertBefore = 0) {
[all …]
HDInstructions.h65 const Twine &Name, BasicBlock *InsertAtEnd);
68 AllocaInst(Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd);
73 const Twine &Name, BasicBlock *InsertAtEnd);
142 LoadInst(Value *Ptr, const Twine &NameStr, BasicBlock *InsertAtEnd);
146 BasicBlock *InsertAtEnd);
150 unsigned Align, BasicBlock *InsertAtEnd);
158 BasicBlock *InsertAtEnd);
161 LoadInst(Value *Ptr, const char *NameStr, BasicBlock *InsertAtEnd);
165 BasicBlock *InsertAtEnd);
266 StoreInst(Value *Val, Value *Ptr, BasicBlock *InsertAtEnd);
[all …]
HDFunction.h34 template<> struct ilist_traits<BasicBlock>
35 : public SymbolTableListTraits<BasicBlock, Function> {
39 BasicBlock *createSentinel() const {
40 return static_cast<BasicBlock*>(&Sentinel);
42 static void destroySentinel(BasicBlock*) {}
44 BasicBlock *provideInitialHead() const { return createSentinel(); }
45 BasicBlock *ensureHead(BasicBlock*) const { return createSentinel(); }
46 static void noteHead(BasicBlock*, BasicBlock*) {}
50 mutable ilist_half_node<BasicBlock> Sentinel;
74 typedef iplist<BasicBlock> BasicBlockListType;
[all …]
/trueos/contrib/llvm/lib/Transforms/Utils/
HDFlattenCFG.cpp30 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder, Pass *P = 0);
34 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder, Pass *P = 0);
40 bool CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2,
41 BasicBlock *Block1, BasicBlock *Block2);
45 bool run(BasicBlock *BB);
123 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder, in FlattenParallelAndOr()
129 BasicBlock *LastCondBlock = NULL; in FlattenParallelAndOr()
130 BasicBlock *FirstCondBlock = NULL; in FlattenParallelAndOr()
131 BasicBlock *UnCondBlock = NULL; in FlattenParallelAndOr()
135 SmallPtrSet<BasicBlock *, 16> Preds(pred_begin(BB), pred_end(BB)); in FlattenParallelAndOr()
[all …]
HDLoopSimplify.cpp103 BasicBlock *RewriteLoopExitBlock(Loop *L, BasicBlock *Exit);
105 BasicBlock *Preheader);
106 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader);
110 static void PlaceSplitBlockCarefully(BasicBlock *NewBB,
111 SmallVectorImpl<BasicBlock*> &SplitPreds,
157 SmallPtrSet<BasicBlock*, 4> BadPreds; in ProcessLoop()
160 BasicBlock *P = *PI; in ProcessLoop()
166 for (SmallPtrSet<BasicBlock*, 4>::iterator I = BadPreds.begin(), in ProcessLoop()
187 SmallVector<BasicBlock*, 8> ExitingBlocks; in ProcessLoop()
189 for (SmallVectorImpl<BasicBlock *>::iterator I = ExitingBlocks.begin(), in ProcessLoop()
[all …]
HDBasicBlockUtils.cpp36 void llvm::DeleteDeadBlock(BasicBlock *BB) { in DeleteDeadBlock()
68 void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P) { in FoldSingleEntryPHINodes()
98 bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) { in DeleteDeadPHIs()
102 for (BasicBlock::iterator I = BB->begin(); in DeleteDeadPHIs()
116 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P) { in MergeBlockIntoPredecessor()
121 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor()
130 BasicBlock *OnlySucc = BB; in MergeBlockIntoPredecessor()
141 for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE; ++BI) { in MergeBlockIntoPredecessor()
197 void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, in ReplaceInstWithValue()
198 BasicBlock::iterator &BI, Value *V) { in ReplaceInstWithValue()
[all …]
HDLowerSwitch.cpp52 BasicBlock* BB;
54 CaseRange(Constant *low = 0, Constant *high = 0, BasicBlock *bb = 0) : in CaseRange()
63 BasicBlock* switchConvert(CaseItr Begin, CaseItr End, Value* Val,
64 BasicBlock* OrigBlock, BasicBlock* Default);
65 BasicBlock* newLeafBlock(CaseRange& Leaf, Value* Val,
66 BasicBlock* OrigBlock, BasicBlock* Default);
98 BasicBlock *Cur = I++; // Advance over block so we don't traverse new blocks in runOnFunction()
130 BasicBlock* LowerSwitch::switchConvert(CaseItr Begin, CaseItr End, in switchConvert()
131 Value* Val, BasicBlock* OrigBlock, in switchConvert()
132 BasicBlock* Default) in switchConvert()
[all …]
HDLoopUnrollRuntime.cpp57 BasicBlock *LastPrologBB, BasicBlock *PrologEnd, in ConnectProlog()
58 BasicBlock *OrigPH, BasicBlock *NewPH, in ConnectProlog()
60 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
70 for (BasicBlock::iterator BBI = (*SBI)->begin(); in ConnectProlog()
112 BasicBlock *Exit = L->getUniqueExitBlock(); in ConnectProlog()
115 SmallVector<BasicBlock*, 4> Preds(pred_begin(Exit), pred_end(Exit)); in ConnectProlog()
119 SmallVector<BasicBlock*, 2> NewBBs; in ConnectProlog()
138 BasicBlock *InsertTop, in CloneLoopBlocks()
139 BasicBlock *InsertBot, in CloneLoopBlocks()
140 std::vector<BasicBlock *> &NewBlocks, in CloneLoopBlocks()
[all …]
HDCloneFunction.cpp37 BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB, in CloneBasicBlock()
41 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), "", F); in CloneBasicBlock()
47 for (BasicBlock::const_iterator II = BB->begin(), IE = BB->end(); in CloneBasicBlock()
118 const BasicBlock &BB = *BI; in CloneFunctionInto()
121 BasicBlock *CBB = CloneBasicBlock(&BB, VMap, NameSuffix, NewFunc, CodeInfo); in CloneFunctionInto()
134 const_cast<BasicBlock*>(&BB)); in CloneFunctionInto()
145 for (Function::iterator BB = cast<BasicBlock>(VMap[OldFunc->begin()]), in CloneFunctionInto()
148 for (BasicBlock::iterator II = BB->begin(); II != BB->end(); ++II) in CloneFunctionInto()
223 void CloneBlock(const BasicBlock *BB,
224 std::vector<const BasicBlock*> &ToClone);
[all …]
HDCodeExtractor.cpp50 static bool isBlockValidForExtraction(const BasicBlock &BB) { in isBlockValidForExtraction()
56 for (BasicBlock::const_iterator I = BB.begin(), E = BB.end(); I != E; ++I) { in isBlockValidForExtraction()
70 static SetVector<BasicBlock *> buildExtractionBlockSet(IteratorT BBBegin, in buildExtractionBlockSet()
72 SetVector<BasicBlock *> Result; in buildExtractionBlockSet()
89 for (SetVector<BasicBlock *>::iterator I = llvm::next(Result.begin()), in buildExtractionBlockSet()
103 static SetVector<BasicBlock *>
104 buildExtractionBlockSet(ArrayRef<BasicBlock *> BBs) { in buildExtractionBlockSet()
109 static SetVector<BasicBlock *>
113 return buildExtractionBlockSet(RN.getNodeAs<BasicBlock>()); in buildExtractionBlockSet()
120 CodeExtractor::CodeExtractor(BasicBlock *BB, bool AggregateArgs) in CodeExtractor()
[all …]
/trueos/contrib/llvm/lib/Analysis/
HDCFG.cpp29 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument
30 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges()
34 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges()
35 SmallVector<std::pair<const BasicBlock*, succ_const_iterator>, 8> VisitStack; in FindFunctionBackedges()
36 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges()
42 std::pair<const BasicBlock*, succ_const_iterator> &Top = VisitStack.back(); in FindFunctionBackedges()
43 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges()
73 unsigned llvm::GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ) { in GetSuccessorNumber()
93 const BasicBlock *Dest = TI->getSuccessor(SuccNum); in isCriticalEdge()
98 const BasicBlock *FirstPred = *I; in isCriticalEdge()
[all …]
HDRegionInfo.cpp53 Region::Region(BasicBlock *Entry, BasicBlock *Exit, RegionInfo* RInfo, in Region()
71 void Region::replaceEntry(BasicBlock *BB) { in replaceEntry()
75 void Region::replaceExit(BasicBlock *BB) { in replaceExit()
80 void Region::replaceEntryRecursive(BasicBlock *NewEntry) { in replaceEntryRecursive()
82 BasicBlock *OldEntry = getEntry(); in replaceEntryRecursive()
96 void Region::replaceExitRecursive(BasicBlock *NewExit) { in replaceExitRecursive()
98 BasicBlock *OldExit = getExit(); in replaceExitRecursive()
112 bool Region::contains(const BasicBlock *B) const { in contains()
113 BasicBlock *BB = const_cast<BasicBlock*>(B); in contains()
118 BasicBlock *entry = getEntry(), *exit = getExit(); in contains()
[all …]
/trueos/contrib/llvm/lib/Transforms/Scalar/
HDStructurizeCFG.cpp28 typedef std::pair<BasicBlock *, Value *> BBValuePair;
31 typedef SmallVector<BasicBlock*, 8> BBVector;
35 typedef SmallPtrSet<BasicBlock *, 8> BBSet;
38 typedef MapVector<BasicBlock *, BBVector> BB2BBVecMap;
41 typedef DenseMap<BasicBlock *, PhiMap> BBPhiMap;
42 typedef DenseMap<BasicBlock *, Value *> BBPredicates;
43 typedef DenseMap<BasicBlock *, BBPredicates> PredMap;
44 typedef DenseMap<BasicBlock *, BasicBlock*> BB2BBMap;
59 BasicBlock *Result;
71 void addBlock(BasicBlock *BB, bool Remember = true) { in addBlock()
[all …]
HDJumpThreading.cpp52 typedef SmallVectorImpl<std::pair<Constant*, BasicBlock*> > PredValueInfo;
53 typedef SmallVector<std::pair<Constant*, BasicBlock*>, 8> PredValueInfoTy;
83 SmallPtrSet<BasicBlock*, 16> LoopHeaders;
85 SmallSet<AssertingVH<BasicBlock>, 16> LoopHeaders;
87 DenseSet<std::pair<Value*, BasicBlock*> > RecursionSet;
91 DenseSet<std::pair<Value*, BasicBlock*> > &TheSet;
92 std::pair<Value*, BasicBlock*> ThePair;
94 RecursionSetRemover(DenseSet<std::pair<Value*, BasicBlock*> > &S, in RecursionSetRemover()
95 std::pair<Value*, BasicBlock*> P) in RecursionSetRemover()
117 bool ProcessBlock(BasicBlock *BB);
[all …]
HDLoopDeletion.cpp54 bool isLoopDead(Loop *L, SmallVectorImpl<BasicBlock *> &exitingBlocks,
55 SmallVectorImpl<BasicBlock *> &exitBlocks,
56 bool &Changed, BasicBlock *Preheader);
80 SmallVectorImpl<BasicBlock *> &exitingBlocks, in isLoopDead()
81 SmallVectorImpl<BasicBlock *> &exitBlocks, in isLoopDead()
82 bool &Changed, BasicBlock *Preheader) { in isLoopDead()
83 BasicBlock *exitBlock = exitBlocks[0]; in isLoopDead()
90 BasicBlock::iterator BI = exitBlock->begin(); in isLoopDead()
116 for (BasicBlock::iterator BI = (*LI)->begin(), BE = (*LI)->end(); in isLoopDead()
135 BasicBlock *preheader = L->getLoopPreheader(); in runOnLoop()
[all …]
/trueos/contrib/llvm/include/llvm/Support/
HDCFG.h84 typedef PredIterator<BasicBlock, Value::use_iterator> pred_iterator;
85 typedef PredIterator<const BasicBlock,
88 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin()
89 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin()
92 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end()
93 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end()
226 typedef SuccIterator<TerminatorInst*, BasicBlock> succ_iterator;
228 const BasicBlock> succ_const_iterator;
230 inline succ_iterator succ_begin(BasicBlock *BB) { in succ_begin()
233 inline succ_const_iterator succ_begin(const BasicBlock *BB) { in succ_begin()
[all …]
HDPredIteratorCache.h29 DenseMap<BasicBlock*, BasicBlock**> BlockToPredsMap;
30 DenseMap<BasicBlock*, unsigned> BlockToPredCountMap;
42 BasicBlock **GetPreds(BasicBlock *BB) { in GetPreds()
43 BasicBlock **&Entry = BlockToPredsMap[BB]; in GetPreds()
46 SmallVector<BasicBlock*, 32> PredCache(pred_begin(BB), pred_end(BB)); in GetPreds()
51 Entry = Memory.Allocate<BasicBlock*>(PredCache.size()); in GetPreds()
56 unsigned GetNumPreds(BasicBlock *BB) { in GetNumPreds()

12345678910>>...14