Lines Matching refs:BasicBlock

1 //===-- BasicBlock.cpp - Implement BasicBlock related methods -------------===//
9 // This file implements the BasicBlock class for the IR library.
13 #include "llvm/IR/BasicBlock.h"
52 DbgMarker *BasicBlock::createMarker(Instruction *I) {
63 DbgMarker *BasicBlock::createMarker(InstListType::iterator It) {
76 void BasicBlock::convertToNewDbgValues() {
115 void BasicBlock::convertFromNewDbgValues() {
141 void BasicBlock::dumpDbgValues() const {
152 void BasicBlock::setIsNewDbgInfoFormat(bool NewFlag) {
158 void BasicBlock::setNewDbgInfoFormatFlag(bool NewFlag) {
162 ValueSymbolTable *BasicBlock::getValueSymbolTable() {
168 LLVMContext &BasicBlock::getContext() const {
172 template <> void llvm::invalidateParentIListOrdering(BasicBlock *BB) {
179 Instruction, ilist_iterator_bits<true>, ilist_parent<BasicBlock>>;
181 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent,
182 BasicBlock *InsertBefore)
198 void BasicBlock::insertInto(Function *NewParent, BasicBlock *InsertBefore) {
210 BasicBlock::~BasicBlock() {
231 assert(getParent() == nullptr && "BasicBlock still linked into the program!");
241 void BasicBlock::setParent(Function *parent) {
246 iterator_range<filter_iterator<BasicBlock::const_iterator,
248 BasicBlock::instructionsWithoutDebug(bool SkipPseudoOp) const {
257 filter_iterator<BasicBlock::iterator, std::function<bool(Instruction &)>>>
258 BasicBlock::instructionsWithoutDebug(bool SkipPseudoOp) {
266 filter_iterator<BasicBlock::const_iterator,
268 BasicBlock::sizeWithoutDebug() const {
273 void BasicBlock::removeFromParent() {
277 iplist<BasicBlock>::iterator BasicBlock::eraseFromParent() {
281 void BasicBlock::moveBefore(SymbolTableList<BasicBlock>::iterator MovePos) {
285 void BasicBlock::moveAfter(BasicBlock *MovePos) {
290 const Module *BasicBlock::getModule() const {
294 const DataLayout &BasicBlock::getDataLayout() const {
298 const CallInst *BasicBlock::getTerminatingMustTailCall() const {
329 const CallInst *BasicBlock::getTerminatingDeoptimizeCall() const {
344 const CallInst *BasicBlock::getPostdominatingDeoptimizeCall() const {
345 const BasicBlock* BB = this;
346 SmallPtrSet<const BasicBlock *, 8> Visited;
356 const Instruction *BasicBlock::getFirstMayFaultInst() const {
365 const Instruction* BasicBlock::getFirstNonPHI() const {
372 BasicBlock::const_iterator BasicBlock::getFirstNonPHIIt() const {
376 BasicBlock::const_iterator It = I->getIterator();
384 const Instruction *BasicBlock::getFirstNonPHIOrDbg(bool SkipPseudoOp) const {
398 BasicBlock::getFirstNonPHIOrDbgOrLifetime(bool SkipPseudoOp) const {
414 BasicBlock::const_iterator BasicBlock::getFirstInsertionPt() const {
428 BasicBlock::const_iterator BasicBlock::getFirstNonPHIOrDbgOrAlloca() const {
452 void BasicBlock::dropAllReferences() {
457 const BasicBlock *BasicBlock::getSinglePredecessor() const {
460 const BasicBlock *ThePred = *PI;
465 const BasicBlock *BasicBlock::getUniquePredecessor() const {
468 const BasicBlock *PredBB = *PI;
479 bool BasicBlock::hasNPredecessors(unsigned N) const {
483 bool BasicBlock::hasNPredecessorsOrMore(unsigned N) const {
487 const BasicBlock *BasicBlock::getSingleSuccessor() const {
490 const BasicBlock *TheSucc = *SI;
495 const BasicBlock *BasicBlock::getUniqueSuccessor() const {
498 const BasicBlock *SuccBB = *SI;
509 iterator_range<BasicBlock::phi_iterator> BasicBlock::phis() {
514 void BasicBlock::removePredecessor(BasicBlock *Pred,
543 bool BasicBlock::canSplitPredecessors() const {
555 bool BasicBlock::isLegalToHoistInto() const {
569 bool BasicBlock::isEntryBlock() const {
575 BasicBlock *BasicBlock::splitBasicBlock(iterator I, const Twine &BBName,
584 BasicBlock *New = BasicBlock::Create(getContext(), BBName, getParent(),
606 BasicBlock *BasicBlock::splitBasicBlockBefore(iterator I, const Twine &BBName) {
615 BasicBlock *New = BasicBlock::Create(getContext(), BBName, getParent(), this);
629 SmallVector<BasicBlock *, 4> Predecessors;
630 for (BasicBlock *Pred : predecessors(this))
632 for (BasicBlock *Pred : Predecessors) {
644 BasicBlock::iterator BasicBlock::erase(BasicBlock::iterator FromIt,
645 BasicBlock::iterator ToIt) {
651 void BasicBlock::replacePhiUsesWith(BasicBlock *Old, BasicBlock *New) {
652 // N.B. This might not be a complete BasicBlock, so don't assume
662 void BasicBlock::replaceSuccessorsPhiUsesWith(BasicBlock *Old,
663 BasicBlock *New) {
666 // Cope with being called on a BasicBlock that doesn't have a terminator
669 for (BasicBlock *Succ : successors(TI))
673 void BasicBlock::replaceSuccessorsPhiUsesWith(BasicBlock *New) {
677 bool BasicBlock::isLandingPad() const {
681 const LandingPadInst *BasicBlock::getLandingPadInst() const {
685 std::optional<uint64_t> BasicBlock::getIrrLoopHeaderWeight() const {
698 BasicBlock::iterator llvm::skipDebugIntrinsics(BasicBlock::iterator It) {
704 void BasicBlock::renumberInstructions() {
717 void BasicBlock::flushTerminatorDbgRecords() {
748 void BasicBlock::spliceDebugInfoEmptyBlock(BasicBlock::iterator Dest,
749 BasicBlock *Src,
750 BasicBlock::iterator First,
751 BasicBlock::iterator Last) {
805 void BasicBlock::spliceDebugInfo(BasicBlock::iterator Dest, BasicBlock *Src,
806 BasicBlock::iterator First,
807 BasicBlock::iterator Last) {
887 void BasicBlock::spliceDebugInfoImpl(BasicBlock::iterator Dest, BasicBlock *Src,
888 BasicBlock::iterator First,
889 BasicBlock::iterator Last) {
1031 void BasicBlock::splice(iterator Dest, BasicBlock *Src, iterator First,
1059 void BasicBlock::insertDbgRecordAfter(DbgRecord *DR, Instruction *I) {
1068 void BasicBlock::insertDbgRecordBefore(DbgRecord *DR,
1076 DbgMarker *BasicBlock::getNextMarker(Instruction *I) {
1080 DbgMarker *BasicBlock::getMarker(InstListType::iterator It) {
1088 void BasicBlock::reinsertInstInDbgRecords(
1144 /// is defined as a no-op inline function in BasicBlock.h.
1145 void BasicBlock::validateInstrOrdering() const {
1157 void BasicBlock::setTrailingDbgRecords(DbgMarker *foo) {
1161 DbgMarker *BasicBlock::getTrailingDbgRecords() {
1165 void BasicBlock::deleteTrailingDbgRecords() {