LLVM 24.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 ~OutlineInfo ()=default
void collectBlocks (SmallPtrSetImpl< BasicBlock * > &BlockSet, SmallVectorImpl< BasicBlock * > &BlockVector)
 Collect all blocks in between EntryBB and ExitBB in both the given vector and set.
virtual 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 2660 of file OMPIRBuilder.h.

Member Typedef Documentation

◆ PostOutlineCBTy

Definition at line 2661 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ ~OutlineInfo()

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

Member Function Documentation

◆ collectBlocks()

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

◆ 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 12202 of file OMPIRBuilder.cpp.

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

Referenced by ~OutlineInfo().

◆ getFunction()

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

Return the function that contains the region to be outlined.

Definition at line 2686 of file OMPIRBuilder.h.

References EntryBB.

Member Data Documentation

◆ EntryBB

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

Definition at line 2663 of file OMPIRBuilder.h.

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

◆ ExcludeArgsFromAggregate

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

Definition at line 2665 of file OMPIRBuilder.h.

◆ ExitBB

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

Definition at line 2663 of file OMPIRBuilder.h.

Referenced by collectBlocks(), and workshareLoopTargetCallback().

◆ FixUpNonEntryAllocas

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

Definition at line 2668 of file OMPIRBuilder.h.

◆ Inputs

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

Definition at line 2666 of file OMPIRBuilder.h.

◆ OuterAllocBB

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

Definition at line 2663 of file OMPIRBuilder.h.

Referenced by createCodeExtractor().

◆ OuterDeallocBBs

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

Definition at line 2664 of file OMPIRBuilder.h.

◆ Outputs

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

Definition at line 2666 of file OMPIRBuilder.h.

◆ PostOutlineCB

PostOutlineCBTy llvm::OpenMPIRBuilder::OutlineInfo::PostOutlineCB

Definition at line 2662 of file OMPIRBuilder.h.


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