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 ~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 2564 of file OMPIRBuilder.h.

Member Typedef Documentation

◆ PostOutlineCBTy

Definition at line 2565 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 11762 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 2590 of file OMPIRBuilder.h.

References EntryBB.

Member Data Documentation

◆ EntryBB

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

Definition at line 2567 of file OMPIRBuilder.h.

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

◆ ExcludeArgsFromAggregate

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

Definition at line 2569 of file OMPIRBuilder.h.

◆ ExitBB

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

Definition at line 2567 of file OMPIRBuilder.h.

Referenced by collectBlocks(), and workshareLoopTargetCallback().

◆ FixUpNonEntryAllocas

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

Definition at line 2572 of file OMPIRBuilder.h.

◆ Inputs

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

Definition at line 2570 of file OMPIRBuilder.h.

◆ OuterAllocBB

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

Definition at line 2567 of file OMPIRBuilder.h.

Referenced by createCodeExtractor().

◆ OuterDeallocBBs

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

Definition at line 2568 of file OMPIRBuilder.h.

◆ Outputs

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

Definition at line 2570 of file OMPIRBuilder.h.

◆ PostOutlineCB

PostOutlineCBTy llvm::OpenMPIRBuilder::OutlineInfo::PostOutlineCB

Definition at line 2566 of file OMPIRBuilder.h.


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