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< CodeExtractor > createCodeExtractor (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.
Function * getFunction () const
 Return the function that contains the region to be outlined.

Public Attributes

PostOutlineCBTy PostOutlineCB
BasicBlock * EntryBB
BasicBlock * ExitBB
BasicBlock * OuterAllocBB
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 2670 of file OMPIRBuilder.h.

Member Typedef Documentation

◆ PostOutlineCBTy

Definition at line 2671 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 12341 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 2696 of file OMPIRBuilder.h.

References EntryBB.

Member Data Documentation

◆ EntryBB

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

Definition at line 2673 of file OMPIRBuilder.h.

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

◆ ExcludeArgsFromAggregate

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

Definition at line 2675 of file OMPIRBuilder.h.

◆ ExitBB

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

Definition at line 2673 of file OMPIRBuilder.h.

Referenced by collectBlocks(), and workshareLoopTargetCallback().

◆ FixUpNonEntryAllocas

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

Definition at line 2678 of file OMPIRBuilder.h.

◆ Inputs

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

Definition at line 2676 of file OMPIRBuilder.h.

◆ OuterAllocBB

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

Definition at line 2673 of file OMPIRBuilder.h.

Referenced by createCodeExtractor().

◆ OuterDeallocBBs

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

Definition at line 2674 of file OMPIRBuilder.h.

◆ Outputs

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

Definition at line 2676 of file OMPIRBuilder.h.

◆ PostOutlineCB

PostOutlineCBTy llvm::OpenMPIRBuilder::OutlineInfo::PostOutlineCB

Definition at line 2672 of file OMPIRBuilder.h.


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