LLVM 23.0.0git
llvm::OpenMPIRBuilder::OutlineInfo Struct Reference

Helper that contains information about regions we need to outline during finalization. More...

#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"

Public Types

using PostOutlineCBTy = std::function<void(Function &)>

Public Member Functions

virtual LLVM_ABI ~OutlineInfo ()=default
LLVM_ABI void collectBlocks (SmallPtrSetImpl< BasicBlock * > &BlockSet, SmallVectorImpl< BasicBlock * > &BlockVector)
 Collect all blocks in between EntryBB and ExitBB in both the given vector and set.
virtual LLVM_ABI std::unique_ptr< CodeExtractorcreateCodeExtractor (ArrayRef< BasicBlock * > Blocks, bool ArgsInZeroAddressSpace, Twine Suffix=Twine(""))
 Create a CodeExtractor instance based on the information stored in this structure, the list of collected blocks from a previous call to collectBlocks and a flag stating whether arguments must be passed in address space 0.
FunctiongetFunction () const
 Return the function that contains the region to be outlined.

Public Attributes

PostOutlineCBTy PostOutlineCB
BasicBlockEntryBB
BasicBlockExitBB
BasicBlockOuterAllocBB
SmallVector< BasicBlock * > OuterDeallocBBs
SmallVector< Value *, 2 > ExcludeArgsFromAggregate
SetVector< Value * > Inputs
SetVector< Value * > Outputs
bool FixUpNonEntryAllocas = false

Detailed Description

Helper that contains information about regions we need to outline during finalization.

Definition at line 2563 of file OMPIRBuilder.h.

Member Typedef Documentation

◆ PostOutlineCBTy

Definition at line 2564 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ ~OutlineInfo()

virtual LLVM_ABI llvm::OpenMPIRBuilder::OutlineInfo::~OutlineInfo ( )
virtualdefault

References LLVM_ABI.

Member Function Documentation

◆ collectBlocks()

void OpenMPIRBuilder::OutlineInfo::collectBlocks ( SmallPtrSetImpl< BasicBlock * > & BlockSet,
SmallVectorImpl< BasicBlock * > & BlockVector )

Collect all blocks in between EntryBB and ExitBB in both the given vector and set.

Definition at line 11519 of file OMPIRBuilder.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::empty(), EntryBB, ExitBB, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::successors().

Referenced by workshareLoopTargetCallback().

◆ createCodeExtractor()

std::unique_ptr< CodeExtractor > OpenMPIRBuilder::OutlineInfo::createCodeExtractor ( ArrayRef< BasicBlock * > Blocks,
bool ArgsInZeroAddressSpace,
Twine Suffix = Twine("") )
virtual

Create a CodeExtractor instance based on the information stored in this structure, the list of collected blocks from a previous call to collectBlocks and a flag stating whether arguments must be passed in address space 0.

Definition at line 11537 of file OMPIRBuilder.cpp.

References OuterAllocBB, and llvm::Twine::str().

◆ getFunction()

Function * llvm::OpenMPIRBuilder::OutlineInfo::getFunction ( ) const
inline

Return the function that contains the region to be outlined.

Definition at line 2589 of file OMPIRBuilder.h.

References EntryBB.

Member Data Documentation

◆ EntryBB

BasicBlock* llvm::OpenMPIRBuilder::OutlineInfo::EntryBB

Definition at line 2566 of file OMPIRBuilder.h.

Referenced by collectBlocks(), getFunction(), and workshareLoopTargetCallback().

◆ ExcludeArgsFromAggregate

SmallVector<Value *, 2> llvm::OpenMPIRBuilder::OutlineInfo::ExcludeArgsFromAggregate

Definition at line 2568 of file OMPIRBuilder.h.

◆ ExitBB

BasicBlock * llvm::OpenMPIRBuilder::OutlineInfo::ExitBB

Definition at line 2566 of file OMPIRBuilder.h.

Referenced by collectBlocks(), and workshareLoopTargetCallback().

◆ FixUpNonEntryAllocas

bool llvm::OpenMPIRBuilder::OutlineInfo::FixUpNonEntryAllocas = false

Definition at line 2571 of file OMPIRBuilder.h.

◆ Inputs

SetVector<Value *> llvm::OpenMPIRBuilder::OutlineInfo::Inputs

Definition at line 2569 of file OMPIRBuilder.h.

◆ OuterAllocBB

BasicBlock * llvm::OpenMPIRBuilder::OutlineInfo::OuterAllocBB

Definition at line 2566 of file OMPIRBuilder.h.

Referenced by createCodeExtractor().

◆ OuterDeallocBBs

SmallVector<BasicBlock *> llvm::OpenMPIRBuilder::OutlineInfo::OuterDeallocBBs

Definition at line 2567 of file OMPIRBuilder.h.

◆ Outputs

SetVector<Value *> llvm::OpenMPIRBuilder::OutlineInfo::Outputs

Definition at line 2569 of file OMPIRBuilder.h.

◆ PostOutlineCB

PostOutlineCBTy llvm::OpenMPIRBuilder::OutlineInfo::PostOutlineCB

Definition at line 2565 of file OMPIRBuilder.h.


The documentation for this struct was generated from the following files: