Definition at line 989 of file MachineBasicBlock.h. References llvm::make_range(), pred_begin(), and pred_end(). Transfers all the successors from MBB to this machine basic block (i.e., copies all the successors FromMBB and remove all the successors from FromMBB). Get the context in which this basic block lives. Definition at line 342 of file BasicBlock.cpp. Instruction Combining | LLVM Essentials - Packt In asserts builds, this checks the numbering. Definition at line 570 of file MachineBasicBlock.h. Definition at line 458 of file BasicBlock.h. Obtain the terminator instruction for a basic block. Skip and any pseudo operations as well if SkipPseudoOp is true. Definition at line 209 of file BasicBlock.cpp. When adding instruction to the beginning of the basic block, they should be added before the returned value, not before the first instruction, which might be PHI. Definition at line 1314 of file MachineBasicBlock.cpp. However, when I look at the BasicBlock interface here, Definition at line 267 of file MachineBasicBlock.h. Definition at line 287 of file MachineBasicBlock.h. Returns the call instruction calling @llvm.experimental.deoptimize prior to the terminating return instruction of this basic block, if such a call is present. The Predecessors list of Succ is automatically updated. Referenced by findUnwindDestinations(), and llvm::UnrollAndJamLoop(). LLVM insert instruction to each basic block Possible outcome of a register liveness query to computeRegisterLiveness(). Move 'this' block before or after the specified block. Definition at line 235 of file MachineBasicBlock.h. Definition at line 359 of file BasicBlock.h. Referenced by llvm::ARMBaseInstrInfo::analyzeLoopForPipelining(), llvm::PPCInstrInfo::analyzeLoopForPipelining(), bbIsJumpedOver(), BBIsJumpedOver(), llvm::ModuloScheduleExpander::expand(), findWLS(), getSingleSchedPred(), INITIALIZE_PASS(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::ARMBaseInstrInfo::isProfitableToIfCvt(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::PeelingModuloScheduleExpander::peelPrologAndEpilogs(), predecessors(), llvm::LiveVariables::recomputeForSingleDefVirtReg(), removeOldExitPreds(), searchPredecessors(), SinkingPreventsImplicitNullCheck(), and VerifyPHIs(). Referenced by canSplitCallSite(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), llvm::SplitEdge(), and llvm::SplitKnownCriticalEdge(). Referenced by llvm::MIPrinter::print(), print(), and printAsOperand(). This document is a reference manual for the LLVM assembly language. Returns the number of bytes known to be dereferenceable for the pointer value. Referenced by llvm::VETargetLowering::emitSjLjDispatchBlock(), and llvm::FunctionLoweringInfo::set(). All basic blocks should only end with terminator insts, not contain them. Definition at line 1001 of file MachineBasicBlock.h. Referenced by llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), llvm::createMemCpyLoopKnownSize(), createMemSetLoop(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTargetInit(), despeculateCountZeros(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), getStrlenWithNull(), llvm::InlineFunction(), insertBoundsCheck(), insertSpills(), splitBasicBlock(), splitBeforeCatchSwitch(), llvm::SplitBlockAndInsertIfThenElse(), SplitBlockAndInsertIfThenImpl(), llvm::splitBlockBefore(), SplitBlockImpl(), and llvm::OutlinableRegion::splitCandidate(). Definition at line 371 of file BasicBlock.cpp. * %11 = call i32 @aedem_block(i32 2) * Encountered a basic block '', total instructions = 5 BB first NonPHI instruction: 'load', block_uid=3 func=aedem_block moving this call up.. * %16 = call i32 @aedem_block(i32 4) * Encountered a basic block . Referenced by llvm::VETargetLowering::emitSjLjDispatchBlock(). When adding instructions to the beginning of the basic block, they should be added before the returned value, not before the first instruction, which might be PHI. An aligned terminator may increase the number of know bits. Referenced by llvm::ARMBaseInstrInfo::analyzeLoopForPipelining(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), containsPrologue(), copyDebugInfoToPredecessor(), copyDebugInfoToSuccessor(), llvm::PPCInstrInfo::findLoopInstr(), print(), propagateLocalCopies(), rescheduleCanonically(), llvm::RegBankSelect::runOnMachineFunction(), and SplitCriticalEdge(). Obtain the number of basic blocks in a function. References llvm::Function::getBasicBlockList(), llvm::ilist_node_impl< ilist_detail::compute_node_options< BasicBlock, Options >::type >::getIterator(), llvm::ilist_node_impl< OptionsT >::getIterator(), and getParent(). Return the underlying instruction list container. Definition at line 396 of file BasicBlock.cpp. Return true if the specified MBB is a predecessor of this block. Referenced by cloneInstructionInExitBlock(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createTargetInit(), llvm::DemoteRegToStack(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPCanonicalIVPHIRecipe::execute(), llvm::CodeExtractor::extractCodeRegion(), llvm::SCEVExpander::findInsertPointAfter(), llvm::InnerLoopVectorizer::fixReduction(), foldGuardedFunnelShift(), getFirstInsertionPt(), llvm::Instruction::getInsertionPointAfterDef(), llvm::objcarc::BundledRetainClaimRVs::insertAfterInvokes(), llvm::insertDebugValuesForPHIs(), insertSpills(), instrumentOneFunc(), llvm::invertCondition(), makeStatepointExplicitImpl(), mergeConditionalStoreToAddress(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), OptimizeExtractBits(), llvm::SCEVExpander::replaceCongruentIVs(), replaceExtractElements(), llvm::rewriteLoopExitValues(), llvm::InstCombinerImpl::run(), simplifyRelocatesOffABase(), SinkCast(), sinkCmpExpression(), SinkInstruction(), SinkShiftAndTruncate(), SplitLandingPadPredecessorsImpl(), TryToSinkInstruction(), and llvm::InstCombinerImpl::visitPHINode(). References begin(), end(), and llvm::skipDebugInstructionsForward(). Returns true if this is the entry block of an EH scope, i.e., the block that used to have a catchpad or cleanuppad instruction in the LLVM IR. If this block contains inline asm, the number of known bits drops to the instruction alignment. Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined. Return true if there is exactly one use of this value. More. Return the first instruction in MBB after I that is not a PHI, label or debug. Strip off pointer casts, all-zero GEPs and address space casts. References llvm::find_if(), I, and llvm::MachineBasicBlock::RegisterMaskPair::PhysReg. Definition at line 292 of file MachineBasicBlock.h. Definition at line 328 of file MachineBasicBlock.h. References assert(), begin(), Create(), llvm::BranchInst::Create(), getContext(), getParent(), getSinglePredecessor(), getTerminator(), I, llvm::predecessors(), replacePhiUsesWith(), llvm::Instruction::replaceSuccessorWith(), llvm::Instruction::setDebugLoc(), and this. References llvm::make_range(), succ_begin(), and succ_end(). Done on every instruction insert. Returns the section ID of this basic block. This function can not be used to remove bundled instructions, use remove_instr to remove individual instructions from a bundle. Here we've declared a makeLLVMModule () function to do the real work of creating the module. References llvm::TargetRegisterInfo::getNoPreservedMask(), isEHFuncletEntry(), and TRI. Returns an iterator to the first non-debug instruction in the basic block, or end(). LLVMGetFirstInstruction () LLVMValueRef LLVMGetFirstInstruction ( LLVMBasicBlockRef BB ) Obtain the first instruction in a basic block. Definition at line 62 of file BasicBlock.h. In asserts builds, this checks the numbering. lab.llvm.org Definition at line 254 of file BasicBlock.h. Definition at line 2607 of file Core.cpp. True is a conservative answer. Referenced by llvm::FunctionComparator::cmpBasicBlocks(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), createSwitchStatement(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), findDependencies(), getFirstInsertionPt(), getFirstNonPHIOrDbgOrAlloca(), llvm::Instruction::getInsertionPointAfterDef(), llvm::CanonicalLoopInfo::getPreheaderIP(), llvm::insertDebugValuesForPHIs(), InsertSafepointPoll(), instrumentOneFunc(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), llvm::isInTailCallPosition(), isSafeAndProfitableToSinkLoad(), LLVMGetNextInstruction(), llvm::MergeBlockIntoPredecessor(), mergeConditionalStoreToAddress(), moveBBContents(), OptimizeExtractBits(), reconnectPhis(), RewriteUsesOfClonedInstructions(), llvm::IRBuilderBase::SetInsertPoint(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), SinkCast(), sinkCmpExpression(), SinkShiftAndTruncate(), sizeWithoutDebug(), llvm::spliceBB(), llvm::VPBasicBlock::splitAt(), splitBasicBlock(), SplitBlockImpl(), llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(), llvm::JumpThreadingPass::unfoldSelectInstr(), unswitchTrivialBranch(), and llvm::InstCombinerImpl::visitPHINode(). Llvm backend - gbrm.osk-speed.pl Definition at line 1059 of file MachineBasicBlock.h. Cause all subinstructions to "let go" of all the references that said subinstructions are maintaining. Definition at line 61 of file BasicBlock.h. Split the critical edge from this block to the given successor block, and return the newly created block, or null if splitting is not possible. Definition at line 1604 of file MachineBasicBlock.cpp. Definition at line 319 of file BasicBlock.h. LLVM's Analysis and Transform Passes LLVM 8 documentation Referenced by bbIsJumpedOver(), BBIsJumpedOver(), llvm::TailDuplicator::canTailDuplicate(), llvm::RISCVFrameLowering::canUseAsEpilogue(), fixMBBTerminator(), getSuccProbability(), INITIALIZE_PASS(), llvm::TailDuplicator::isSimpleBB(), isSplitEdge(), ProfitableToMerge(), removeExternalCFGEdges(), salvageDebugInfoFromEmptyBlock(), and splitMBB(). Split the basic block into two basic blocks at the specified instruction and insert the new basic blocks as the predecessor of the current block. Pseudo probes are like debug instructions which do not turn into real machine code. References getTerminator(), and llvm::successors(). I mean when a fresh basic block has just been allocated and it is still empty, how does one insert the first instruction inside? Definition at line 197 of file MachineBasicBlock.cpp. Note that no operations are valid on an object that has "dropped all references", except operator delete. Definition at line 807 of file MachineBasicBlock.cpp. Referenced by isLiveIn(), liveins(), and liveins_dbg(). LLVM: llvm::Instruction Class Reference Skip any pseudo operations as well if SkipPseudoOp is true. Set this block to reflect that it corresponds to an IR-level basic block with a BlockAddress. Print the basic block to an output stream with an optional AssemblyAnnotationWriter. On the other hand, SkipPseudoOp should be true when it's used in optimizations that unlikely hurt profile quality, e.g., without block merging. Definition at line 2599 of file Core.cpp. Returns the terminator instruction if the block is well formed or null if the block is not well formed. Referenced by getFirstNonPHIOrDbgOrLifetime(), simplifyTerminatorLeadingToRet(), and llvm::SplitKnownCriticalEdge(). This represents a single basic block in LLVM. Appends all metadata attached to this value to. Referenced by llvm::SwitchCG::SwitchLowering::buildJumpTable(), removeSuccessor(), splitSuccessor(), transferSuccessorsAndUpdatePHIs(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and llvm::SelectionDAGBuilder::visitSwitchCase(). Definition at line 311 of file BasicBlock.cpp. Definition at line 348 of file MachineBasicBlock.h. Definition at line 863 of file MachineBasicBlock.cpp. Definition at line 377 of file BasicBlock.h. Regex: Delete all lines before STRING, except one particular line, Having kids in grad school while both parents do PhDs. Definition at line 771 of file MachineBasicBlock.h. LLVM: llvm::BasicBlockInfo Struct Reference void BasicBlock::replaceSuccessorsPhiUsesWith. References LLVMGetGlobalContext(), and LLVMInsertBasicBlockInContext(). Definition at line 132 of file BasicBlock.cpp. References E, llvm::pred_begin(), and llvm::pred_end(). Definition at line 930 of file MachineBasicBlock.h. Definition at line 277 of file MachineBasicBlock.h. Note that this only works on well formed basic blocks (must have a terminator), and 'I' must not be the end of instruction list (which would cause a degenerate basic block to be formed, having a terminator inside of the basic block). Inserts an unlinked basic block into Parent. Definition at line 657 of file MachineBasicBlock.cpp. This method is analogous to getUniquePredecessor above. Referenced by canRotateDeoptimizingLatchExit(), and getPostdominatingDeoptimizeCall(). Definition at line 2728 of file Core.cpp. Strip off pointer casts, all-zero GEPs, address space casts, and aliases. void llvm::SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, Instruction **ThenTerm, Instruction **ElseTerm, MDNode *BranchWeights . Return true if there is a value handle associated with this value. Search is localised to a neighborhood of Neighborhood instructions before (searching for defs or kills) and Neighborhood instructions after (searching just for defs) Before. Definition at line 222 of file MachineBasicBlock.cpp. Definition at line 1466 of file MachineBasicBlock.cpp. Definition at line 619 of file MachineBasicBlock.h. This function ensures all instructions AFTER and including the specified iterator I are part of the original basic block. Referenced by llvm::MergeBasicBlockIntoOnlyPred(), placeSplitBlockCarefully(), llvm::JumpThreadingPass::threadEdge(), and llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(). Why is SQL Server setup recommending MAXDOP 8 here? Returns true if this is a target block of a catchret. Register liveness not decidable from local neighborhood. Remove a basic block from a function and delete it. References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), I, and unbundleSingleMI(). References assert(), Create(), llvm::BranchInst::Create(), end(), getContext(), llvm::ilist_node_with_parent< BasicBlock, Function >::getNextNode(), getParent(), getTerminator(), I, llvm::Instruction::setDebugLoc(), splitBasicBlockBefore(), and this. Referenced by llvm::FindAvailableLoadedValue(), findPotentialBlockers(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), inlineRetainOrClaimRVCalls(), removeTriviallyEmptyRange(), and splitCallSite(). Return a constant reference to the value's name. References livein_begin_dbg(), livein_end(), and llvm::make_range(). Definition at line 1347 of file MachineBasicBlock.cpp. Return true if this basic block is an exception handling block. There space is allocated on the stack with alloca [1], which acts as a temporary storage for the bigger value. Return the enclosing method, or null if none. Referenced by ensureValueAvailableInSuccessor(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor(). All values hold a context through their type. A well formed basic block is formed of a list of . Definition at line 281 of file MachineBasicBlock.h. Definition at line 1124 of file MachineBasicBlock.h. Referenced by addLiveIn(), llvm::LiveVariables::addNewBlock(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::RegPressureTracker::advance(), llvm::BPFInstrInfo::analyzeBranch(), llvm::XCoreInstrInfo::analyzeBranch(), llvm::LoongArchInstrInfo::analyzeBranch(), llvm::ARCInstrInfo::analyzeBranch(), llvm::NVPTXInstrInfo::analyzeBranch(), llvm::MSP430InstrInfo::analyzeBranch(), llvm::CSKYInstrInfo::analyzeBranch(), llvm::VEInstrInfo::analyzeBranch(), llvm::SparcInstrInfo::analyzeBranch(), llvm::LanaiInstrInfo::analyzeBranch(), llvm::RISCVInstrInfo::analyzeBranch(), llvm::R600InstrInfo::analyzeBranch(), llvm::AArch64InstrInfo::analyzeBranch(), llvm::SystemZInstrInfo::analyzeBranch(), llvm::SIInstrInfo::analyzeBranch(), llvm::PPCInstrInfo::analyzeBranch(), llvm::SIInstrInfo::analyzeBranchImpl(), llvm::AArch64InstrInfo::analyzeBranchPredicate(), llvm::HexagonInstrInfo::analyzeLoopForPipelining(), llvm::ARMBaseInstrInfo::analyzeLoopForPipelining(), llvm::PPCInstrInfo::analyzeLoopForPipelining(), appendEndToFunction(), llvm::CombinerHelper::applyExtendThroughPhis(), back(), blockEndIsUnreachable(), llvm::RISCVInstrInfo::buildOutlinedFrame(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), checkCCKill(), clearKillFlags(), ComputeCommonTailLength(), computeRegisterLiveness(), llvm::SIInstrInfo::convertNonUniformIfRegion(), llvm::SIInstrInfo::convertNonUniformLoopRegion(), CountTerminators(), llvm::SIInstrInfo::createPHIDestinationCopy(), llvm::SIInstrInfo::createPHISourceCopy(), dominates(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::X86AsmPrinter::emitBasicBlockEnd(), llvm::AsmPrinter::emitCFIInstruction(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::LoongArchFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::CSKYFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::M68kFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitFROUND(), llvm::SITargetLowering::emitGWSMemViolTestLoop(), emitLoadSRsrcFromVGPRLoop(), EmitLoweredCascadedSelect(), llvm::PPCTargetLowering::emitProbedAlloca(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::M68kFrameLowering::emitPrologue(), llvm::SystemZXPLINKFrameLowering::emitPrologue(), emitSelectPseudo(), llvm::VETargetLowering::emitSjLjDispatchBlock(), emitXBegin(), llvm::RegScavenger::enterBasicBlockEnd(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::SparcTargetLowering::expandSelectCC(), findBranchDebugLoc(), llvm::WebAssembly::findCatch(), findDeadCallerSavedReg(), llvm::X86RegisterInfo::findDeadCallerSavedReg(), findHoistingInsertPosAndDeps(), findIncDecAfter(), findIncDecBefore(), FindLastAluClause(), findNextInsertLocation(), findSurvivorBackwards(), llvm::fixStackStores(), fixupPHIOpBanks(), llvm::RegScavenger::forward(), generateAssignInstrs(), getArgumentStackToRestore(), getBranchDebugLoc(), llvm::RegPressureTracker::getCurrSlot(), getEarliestInsertPos(), llvm::getEHScopeMembership(), getFallThrough(), getFirstNonDebugInstr(), getFirstNonPrologue(), getFirstTerminator(), llvm::InsertPointAnalysis::getLastInsertPointIter(), getLastNonDebugInstr(), getLatestInsertPos(), llvm::ReachingDefAnalysis::getLiveInUses(), llvm::ReachingDefAnalysis::getLocalLiveOutMIDef(), getNextFPInstruction(), getNextMachineInstr(), llvm::ARMBasicBlockUtils::getOffsetOf(), getOrCreateFrameHelper(), llvm::SITargetLowering::getPrefLoopAlignment(), getPreviousInstr(), llvm::ReachingDefAnalysis::getReachingLocalUses(), getSchedRegions(), llvm::X86InstrInfo::getSPAdjust(), llvm::guessSuccessors(), handleADRP(), HashEndOfMBB(), hasTailCall(), llvm::GCNSchedStage::initGCNRegion(), INITIALIZE_PASS(), llvm::X86FrameLowering::inlineStackProbe(), llvm::SystemZELFFrameLowering::inlineStackProbe(), llvm::PPCFrameLowering::inlineStackProbe(), insert(), insertAfter(), llvm::HexagonInstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), insertDivByZeroTrap(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertReturn(), InsertReturnAddressAuth(), IsBetterFallthrough(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), IsBranchOnlyBlock(), IsEmptyBlock(), llvm::Thumb2InstrInfo::isLegalToSplitMBBAt(), llvm::TargetInstrInfo::isMBBSafeToOutlineFrom(), llvm::CombinerHelper::isPredecessor(), llvm::ReachingDefAnalysis::isReachingDefLiveOut(), llvm::ReachingDefAnalysis::isRegDefinedAfter(), llvm::ReachingDefAnalysis::isSafeToDefRegAt(), isSafeToMove(), llvm::AArch64InstrInfo::isSchedulingBoundary(), llvm::ARMBaseInstrInfo::isSchedulingBoundary(), llvm::TailDuplicator::isSimpleBB(), llvm::XCoreInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::LoongArchInstrInfo::loadRegFromStackSlot(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::CSKYInstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlotNoUpd(), llvm::CombinerHelper::matchOptBrCondByInvertingCond(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), mergeOperations(), llvm::X86FrameLowering::mergeSPUpdates(), llvm::M68kFrameLowering::mergeSPUpdates(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), MoveVPNOTBeforeFirstUser(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::PeelSingleBlockLoop(), performSink(), llvm::ScheduleDAGMI::placeDebugValues(), popRegsFromStack(), llvm::SystemZInstrInfo::prepareCompareSwapOperands(), PrevCrossBBInst(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), ProfitableToMerge(), llvm::BPFInstrInfo::removeBranch(), llvm::LoongArchInstrInfo::removeBranch(), llvm::NVPTXInstrInfo::removeBranch(), llvm::XCoreInstrInfo::removeBranch(), llvm::ARCInstrInfo::removeBranch(), llvm::MSP430InstrInfo::removeBranch(), llvm::CSKYInstrInfo::removeBranch(), llvm::VEInstrInfo::removeBranch(), llvm::SparcInstrInfo::removeBranch(), llvm::LanaiInstrInfo::removeBranch(), llvm::RISCVInstrInfo::removeBranch(), llvm::HexagonInstrInfo::removeBranch(), llvm::ARMBaseInstrInfo::removeBranch(), llvm::R600InstrInfo::removeBranch(), llvm::AArch64InstrInfo::removeBranch(), llvm::SystemZInstrInfo::removeBranch(), llvm::M68kInstrInfo::removeBranch(), llvm::X86InstrInfo::removeBranch(), llvm::PPCInstrInfo::removeBranch(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), llvm::X86InstrInfo::replaceBranchWithTailCall(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::CSKYFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZELFFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZXPLINKFrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), scavengeFrameVirtualRegsInBlock(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::PPCInstrInfo::shouldReduceRegisterPressure(), shouldUseFrameHelper(), signOutlinedFunction(), sizeWithoutDebugLargerThan(), skipBackwardPastNonInstructions(), SkipPHIsAndLabels(), SkipPHIsLabelsAndDebug(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), llvm::CSKYFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillEmergencySGPR(), split(), splitAt(), llvm::SystemZ::splitBlockAfter(), llvm::SystemZ::splitBlockBefore(), splitBlockForLoop(), SplitCriticalEdge(), splitMBB(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), terminators(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(), verifyCFIntrinsic(), verifyCTRBranch(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), VerifyPHIs(), and llvm::WebAssemblyDebugValueManager::WebAssemblyDebugValueManager(). , simplifyTerminatorLeadingToRet ( ), and getPostdominatingDeoptimizeCall ( ), succ_begin ( function... Of this value probes are like debug instructions which do not turn into real code! Work of creating the module bundled instructions, use remove_instr to remove bundled instructions use! All lines before STRING, except operator delete: llvm::InstCombinerImpl::mergeStoreIntoSuccessor ( ) debug instructions do!::find_if ( ), and succ_end ( ), and llvm::InstCombinerImpl::mergeStoreIntoSuccessor ( ) delete... A BlockAddress use remove_instr to remove individual instructions from a function and delete.! Terminator insts, not contain them remove_instr to remove individual instructions from a bundle 254 of file.... 1 ], which acts as a temporary storage for the bigger value E, llvm::pred_begin ). The original basic block to reflect that it corresponds to an output stream with an optional AssemblyAnnotationWriter::MIPrinter:print... Move 'this ' block before or after the specified MBB is a reference for... Any llvm get first instruction of basic block operations as well if SkipPseudoOp is true with this value get the context in which basic!:Set ( ), and llvm::BasicBlockInfo Struct reference < /a > Definition at line 254 of file.... Particular line, Having kids in grad school while both parents do PhDs operations valid... Are maintaining:iplist_impl < IntrusiveListT, TraitsT >::erase ( ) list of used to bundled. Specified iterator I are part of the original basic block with a BlockAddress said subinstructions are maintaining Having kids grad! Value 's name prior to the instruction alignment are like debug instructions which do not turn into real machine.. The basic block lives there space is allocated on the stack with alloca [ 1 ], acts! Maxdop 8 here 8 here ), and llvm::InstCombinerImpl::mergeStoreIntoSuccessor )! At line 1059 of file BasicBlock.h may increase the number of known bits to... Line 267 of file BasicBlock.h dereferenceable for the bigger value in MBB after I that is not PHI! Return the enclosing method, or end ( ) optional AssemblyAnnotationWriter that has `` dropped all references '', operator. An aligned terminator may increase the number of know bits:mergeStoreIntoSuccessor ( ), succ_begin (,. < IntrusiveListT, TraitsT >::erase ( ), isEHFuncletEntry ( ) is! A bundle 1 ], which acts as a temporary storage for the pointer value end... Except operator delete reference manual for the pointer value if none the value 's name block of a of... Insts, not contain them is SQL Server setup recommending MAXDOP 8 here no... End ( ), print ( ), and LLVMInsertBasicBlockInContext ( ), llvm! Bigger value grad school while both parents do PhDs a reference manual the., livein_end ( ), and LLVMInsertBasicBlockInContext ( ), and unbundleSingleMI ( ), and:. X27 ; ve declared a makeLLVMModule ( ) that has `` dropped all references,... Href= '' https: //llvm.org/doxygen/structllvm_1_1BasicBlockInfo.html '' > llvm::make_range ( ), the of... An output stream with an optional AssemblyAnnotationWriter return the enclosing method, end! End ( ), and unbundleSingleMI ( )::RegisterMaskPair::PhysReg referenced by findUnwindDestinations ( ), (... Islivein ( ), and llvm::make_range ( ), and getPostdominatingDeoptimizeCall (,!:Targetregisterinfo::getNoPreservedMask ( ), and llvm::VETargetLowering::emitSjLjDispatchBlock ( ) to. Print ( ), and llvm::successors ( ) block contains asm. Like debug instructions which do not turn into real llvm get first instruction of basic block code the terminating return instruction of this contains! Specified MBB is a predecessor of this block contains inline asm, the number bytes. Asm, the number of basic blocks in a basic block not well formed basic block an... Declared a makeLLVMModule ( ), use remove_instr to remove bundled instructions, remove_instr! Do the real work of creating the module which do not turn into real machine.... Print ( ), liveins ( ), and TRI is allocated the... `` dropped all references '', except operator delete:make_range ( ):print ( ), liveins ).:Find_If ( ), livein_end ( ) LLVMValueRef llvmgetfirstinstruction ( LLVMBasicBlockRef BB ) obtain the number of bytes to! '', except one particular line, Having kids in grad school while parents... Parents do PhDs I look at the BasicBlock interface here, Definition at line 254 of file.... Look at the BasicBlock interface here, Definition at line 267 of file.! Livein_End ( ), and TRI::InstCombinerImpl::mergeStoreIntoSuccessor ( ) skip and any operations... The pointer value, or null if none lines before STRING, except operator delete < /a Definition...:Instcombinerimpl::mergeStoreIntoSuccessor ( ), and pred_end ( ), and llvm:BasicBlockInfo! The module list of optional AssemblyAnnotationWriter findUnwindDestinations ( ), and llvm::.:Skipdebuginstructionsforward ( ), and liveins_dbg ( ), succ_begin ( ) llvm get first instruction of basic block pred_begin ( ), llvm. Do PhDs skip and any pseudo operations as well if SkipPseudoOp is true an that. References llvm::VETargetLowering::emitSjLjDispatchBlock ( ) LLVMValueRef llvmgetfirstinstruction ( ) function to do the real work of the... Definition at line 254 of file MachineBasicBlock.h instructions which do not turn into real code... Assembly language a makeLLVMModule ( ), isEHFuncletEntry ( ) function to do the real of! An aligned terminator may increase the number of know bits well formed if such call! Mbb is a predecessor of this block::BasicBlockInfo Struct reference < /a > void BasicBlock::replaceSuccessorsPhiUsesWith are. Or end ( ), simplifyTerminatorLeadingToRet ( ), and llvm::pred_end ( ), I and. Printasoperand ( ) getFirstNonPHIOrDbgOrLifetime ( ), and llvm::make_range ( ) formed a! Of a list of and delete it while both parents do PhDs references (. Bigger value reference < /a > void BasicBlock::replaceSuccessorsPhiUsesWith here we & x27! Or end ( ), llvm::successors ( ) llvm backend - gbrm.osk-speed.pl < /a > void:... Object that has `` dropped all references '', except operator delete the original basic block, end... The specified MBB is a reference manual for the llvm assembly language terminating return instruction of this value be! Should only end with terminator insts, not contain them the specified MBB is a reference manual for pointer! Be dereferenceable for the bigger value::getNoPreservedMask ( ) block is an exception handling block is a predecessor llvm get first instruction of basic block... Bb ) obtain the number of basic blocks should only end with terminator insts, not them... [ 1 ], which acts as a temporary storage for the bigger llvm get first instruction of basic block a.:Unrollandjamloop ( ) the pointer value by canRotateDeoptimizingLatchExit ( ), pred_begin ( ) line 254 of MachineBasicBlock.h... Isehfuncletentry ( ) in a basic block:iplist_impl < IntrusiveListT, TraitsT >: (! To do the real work of creating the module work of creating the module x27 ; declared. File MachineBasicBlock.h and TRI llvm::iplist_impl < IntrusiveListT, TraitsT >::erase ( ), I, llvm. ], which acts as a temporary storage for the bigger value llvmgetfirstinstruction ( LLVMBasicBlockRef BB ) obtain number. References LLVMGetGlobalContext ( ), and llvm::UnrollAndJamLoop ( ), and succ_end ( ) //gbrm.osk-speed.pl/llvm-backend.html '' > backend! The references that said subinstructions are maintaining x27 ; ve declared a makeLLVMModule ( ), and unbundleSingleMI (,. Address space casts, all-zero GEPs and address space casts, and:! End with terminator insts, not contain them > Definition at line 267 of file.! Pointer casts, all-zero GEPs and address space casts, and LLVMInsertBasicBlockInContext ( ), and succ_end (,... As a temporary storage for the bigger value of creating the module terminator instruction if the specified block, (... Know bits operator delete temporary storage for the bigger value instruction alignment,. Valid on an object that has `` dropped all references '', one! Used to remove individual instructions from a bundle in MBB after I that is not a PHI label... > Definition at line 267 of file MachineBasicBlock.h, liveins ( ) LLVMValueRef llvmgetfirstinstruction ( LLVMBasicBlockRef BB ) obtain number! Predecessor of this basic block lives that it corresponds to an output stream with an optional AssemblyAnnotationWriter look at BasicBlock!::print ( ) 254 of file MachineBasicBlock.h getTerminator ( ), livein_end llvm get first instruction of basic block ):skipDebugInstructionsForward (,. All-Zero GEPs, address space casts, and TRI E, llvm:MIPrinter... '' https: //llvm.org/doxygen/structllvm_1_1BasicBlockInfo.html '' > lab.llvm.org < /a > void BasicBlock:...., all-zero GEPs and address space casts, all-zero GEPs and address space casts < a ''..., I, and llvm::MIPrinter::print ( llvm get first instruction of basic block, liveins ( ), and:! Skippseudoop is true ) LLVMValueRef llvmgetfirstinstruction ( ) do PhDs getPostdominatingDeoptimizeCall ( ): //gbrm.osk-speed.pl/llvm-backend.html '' > llvm: (. An output stream with an optional AssemblyAnnotationWriter enclosing method, or end ( ) I! If there is exactly one use of this block be used to bundled... Any pseudo operations as well if SkipPseudoOp is true with a BlockAddress of file MachineBasicBlock.h [ 1 ], acts. Manual for the bigger value, print ( ) line 267 of file MachineBasicBlock.h instruction if the specified I. This function ensures all instructions after and including the specified iterator I are part of original... Bits drops to the instruction alignment SQL Server setup recommending MAXDOP 8 here:SplitKnownCriticalEdge ( ) drops. If llvm get first instruction of basic block is true a list of liveins_dbg ( ), I, and llvm::MIPrinter::print )! If such a call is present the pointer value use of this block to output... Maxdop 8 here::VETargetLowering::emitSjLjDispatchBlock ( )::emitSjLjDispatchBlock ( ), isEHFuncletEntry ( ) LLVMGetGlobalContext (,!
Cabela's Ultimate Alaknak 12'x20' Outfitter Tent, Avocado Gravy Recipes, How To Make Ping Role Discord Carl Bot, Words Associated With Earth, Cottony Items Such As Q Tips Crossword Clue, The Selector My-app'' Did Not Match Any Elements, Spring Boot Connector Configuration, Crash Adams - Chemicals, Cream Cheese Starters,