[#llvm-MachineRegion] = xref:llvm.adoc[llvm]::MachineRegion :relfileprefix: ../ :mrdocs: Single‐entry single‐exit region in a MachineFunction CFG. == Synopsis Declared in `<llvm/CodeGen/MachineRegionInfo.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class MachineRegion : public xref:llvm/RegionBase-0e.adoc[RegionBase<RegionTraits<MachineFunction>>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:llvm/RegionBase-0e.adoc[RegionBase<RegionTraits<MachineFunction>>]` | A single‐entry single‐exit region in a control‐flow graph. |=== == Types [cols="1,4"] |=== | Name| Description | xref:llvm/MachineRegion/block_iterator_wrapper.adoc[`block_iterator_wrapper`] | Depth‐first flat iterator over BasicBlocks contained in a Region. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:llvm/MachineRegion/block_iterator.adoc[`block_iterator`] | Mutable flat iterator over BasicBlocks in this Region. | xref:llvm/MachineRegion/block_range.adoc[`block_range`] | Range of mutable flat BasicBlock iterators. | xref:llvm/MachineRegion/const_block_iterator.adoc[`const_block_iterator`] | Const flat iterator over BasicBlocks in this Region. | xref:llvm/MachineRegion/const_block_range.adoc[`const_block_range`] | Range of const flat BasicBlock iterators. | xref:llvm/MachineRegion/const_element_iterator.adoc[`const_element_iterator`] | Const depth‐first iterator over direct child RegionNodes. | xref:llvm/MachineRegion/const_iterator.adoc[`const_iterator`] | Const iterator over the direct subregions of this Region. | xref:llvm/MachineRegion/element_iterator.adoc[`element_iterator`] | Depth‐first iterator over direct child RegionNodes. | xref:llvm/MachineRegion/iterator.adoc[`iterator`] | Mutable iterator over the direct subregions of this Region. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:llvm/MachineRegion/PrintStyle.adoc[`PrintStyle`] | Print style used when dumping a Region. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/MachineRegion/2constructor.adoc[`MachineRegion`] [.small]#[constructor]# | Construct a machine region from `Entry` to `Exit.` | xref:llvm/MachineRegion/2destructor.adoc[`~MachineRegion`] [.small]#[destructor]# | Destroy this machine region and its owned subregions. | xref:llvm/MachineRegion/operator_assign.adoc[`operator=`] [.small]#[deleted]# | Deleted copy assignment; RegionBase is not copyable. | xref:llvm/MachineRegion/addSubRegion.adoc[`addSubRegion`] | Add a new subregion to this Region. | xref:llvm/MachineRegion/begin-0d.adoc[`begin`] | `begin` overloads | xref:llvm/MachineRegion/block_begin-0f.adoc[`block_begin`] | `block_begin` overloads | xref:llvm/MachineRegion/block_end-0f.adoc[`block_end`] | `block_end` overloads | xref:llvm/MachineRegion/blocks-0d.adoc[`blocks`] | `blocks` overloads | xref:llvm/MachineRegion/clearNodeCache.adoc[`clearNodeCache`] | Clear the cache for BB RegionNodes. | xref:llvm/MachineRegion/contains-0d.adoc[`contains`] | `contains` overloads | xref:llvm/MachineRegion/dump.adoc[`dump`] | Print the region to stderr. | xref:llvm/MachineRegion/element_begin-0d.adoc[`element_begin`] | `element_begin` overloads | xref:llvm/MachineRegion/element_end-02.adoc[`element_end`] | `element_end` overloads | xref:llvm/MachineRegion/elements-06.adoc[`elements`] | `elements` overloads | xref:llvm/MachineRegion/end-0e.adoc[`end`] | `end` overloads | xref:llvm/MachineRegion/getBBNode.adoc[`getBBNode`] | Get the BasicBlock RegionNode for a BasicBlock | xref:llvm/MachineRegion/getDepth.adoc[`getDepth`] | Get the nesting level of this Region. | xref:llvm/MachineRegion/getEnteringBlock.adoc[`getEnteringBlock`] | Return the first block of this region's single entry edge, if existing. | xref:llvm/MachineRegion/getEntry.adoc[`getEntry`] | Get the entry BasicBlock of the Region. | xref:llvm/MachineRegion/getExit.adoc[`getExit`] | Get the exit BasicBlock of the Region. | xref:llvm/MachineRegion/getExitingBlock.adoc[`getExitingBlock`] | Return the first block of this region's single exit edge, if existing. | xref:llvm/MachineRegion/getExitingBlocks.adoc[`getExitingBlocks`] | Collect all blocks of this region's single exit edge, if existing. | xref:llvm/MachineRegion/getExpandedRegion.adoc[`getExpandedRegion`] | Return a new (non‐canonical) region, that is obtained by joining this region with its predecessors. | xref:llvm/MachineRegion/getNameStr.adoc[`getNameStr`] | Returns the name of the Region. | xref:llvm/MachineRegion/getNode-00.adoc[`getNode`] | `getNode` overloads | xref:llvm/MachineRegion/getParent.adoc[`getParent`] | Get the parent of the Region. | xref:llvm/MachineRegion/getRegionInfo.adoc[`getRegionInfo`] | Return the RegionInfo object, that belongs to this Region. | xref:llvm/MachineRegion/getSubRegionNode.adoc[`getSubRegionNode`] | Get the subregion that starts at a BasicBlock | xref:llvm/MachineRegion/isSimple.adoc[`isSimple`] | Is this a simple region? | xref:llvm/MachineRegion/isTopLevelRegion.adoc[`isTopLevelRegion`] | Check if a Region is the TopLevel region. | xref:llvm/MachineRegion/outermostLoopInRegion-0c.adoc[`outermostLoopInRegion`] | `outermostLoopInRegion` overloads | xref:llvm/MachineRegion/print.adoc[`print`] | Print the region. | xref:llvm/MachineRegion/removeSubRegion.adoc[`removeSubRegion`] | Remove a subregion from this Region. | xref:llvm/MachineRegion/replaceEntry.adoc[`replaceEntry`] | Replace the entry basic block of the region with the new basic block. | xref:llvm/MachineRegion/replaceEntryRecursive.adoc[`replaceEntryRecursive`] | Recursively replace the entry basic block of the region. | xref:llvm/MachineRegion/replaceExit.adoc[`replaceExit`] | Replace the exit basic block of the region with the new basic block. | xref:llvm/MachineRegion/replaceExitRecursive.adoc[`replaceExitRecursive`] | Recursively replace the exit basic block of the region. | xref:llvm/MachineRegion/transferChildrenTo.adoc[`transferChildrenTo`] | Move all direct child nodes of this Region to another Region. | xref:llvm/MachineRegion/verifyRegion.adoc[`verifyRegion`] | Verify if the region is a correct region. | xref:llvm/MachineRegion/operator_eq.adoc[`operator==`] | Return true if this region is the same object as region node `RN.` |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#