Jlm
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::llvm::LlvmGraphImport Class Referencefinal

#include <RvsdgModule.hpp>

Inheritance diagram for jlm::llvm::LlvmGraphImport:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::LlvmGraphImport:
Collaboration graph
[legend]

Public Member Functions

const Linkagelinkage () const noexcept
 
bool isConstant () const noexcept
 
const std::shared_ptr< const jlm::rvsdg::Type > & ValueType () const noexcept
 
const std::shared_ptr< const jlm::rvsdg::Type > & ImportedType () const noexcept
 
LlvmGraphImportCopy (rvsdg::Region &region, rvsdg::StructuralInput *input) const override
 
- Public Member Functions inherited from jlm::rvsdg::GraphImport
 GraphImport (Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
 
const std::string & Name () const noexcept
 
std::string debug_string () const override
 
GraphImportCopy (Region &region, StructuralInput *input) const override
 
- Public Member Functions inherited from jlm::rvsdg::RegionArgument
 ~RegionArgument () noexcept override
 
 RegionArgument (rvsdg::Region *region, StructuralInput *input, std::shared_ptr< const rvsdg::Type > type)
 
 RegionArgument (const RegionArgument &)=delete
 
 RegionArgument (RegionArgument &&)=delete
 
RegionArgumentoperator= (const RegionArgument &)=delete
 
RegionArgumentoperator= (RegionArgument &&)=delete
 
std::string debug_string () const override
 
StructuralInputinput () const noexcept
 
- Public Member Functions inherited from jlm::rvsdg::Output
virtual ~Output () noexcept
 
 Output (const Output &)=delete
 
 Output (Output &&)=delete
 
Outputoperator= (const Output &)=delete
 
Outputoperator= (Output &&)=delete
 
size_t index () const noexcept
 
size_t nusers () const noexcept
 
bool IsDead () const noexcept
 
void divert_users (jlm::rvsdg::Output *new_origin)
 
template<typename F >
size_t divertUsersWhere (Output &newOrigin, const F &match)
 
rvsdg::InputSingleUser () noexcept
 
UsersRange Users ()
 
UsersConstRange Users () const
 
const std::shared_ptr< const rvsdg::Type > & Type () const noexcept
 
rvsdg::Regionregion () const noexcept
 
std::variant< Node *, Region * > GetOwner () const noexcept
 

Static Public Member Functions

static LlvmGraphImportCreate (rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, bool isConstant=false)
 
- Static Public Member Functions inherited from jlm::rvsdg::GraphImport
static GraphImportCreate (Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
 
- Static Public Member Functions inherited from jlm::rvsdg::RegionArgument
static RegionArgumentCreate (rvsdg::Region &region, StructuralInput *input, std::shared_ptr< const rvsdg::Type > type)
 Creates region entry argument. More...
 

Private Member Functions

 LlvmGraphImport (rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, bool isConstant)
 

Private Attributes

std::shared_ptr< const rvsdg::TypeValueType_
 
std::shared_ptr< const rvsdg::TypeImportedType_
 
llvm::Linkage Linkage_
 
bool isConstant_
 

Additional Inherited Members

- Public Types inherited from jlm::rvsdg::RegionArgument
typedef util::IntrusiveListAccessor< RegionArgument, &RegionArgument::structural_input_anchor_structural_input_accessor
 
- Public Types inherited from jlm::rvsdg::Output
using UsersList = Input::UsersList
 
using UsersRange = jlm::util::IteratorRange< UsersList::Iterator >
 
using UsersConstRange = jlm::util::IteratorRange< UsersList::ConstIterator >
 
- Protected Member Functions inherited from jlm::rvsdg::Output
 Output (Node &owner, std::shared_ptr< const rvsdg::Type > type)
 
 Output (Region *owner, std::shared_ptr< const rvsdg::Type > type)
 

Detailed Description

Represents an import into the RVSDG of an external entity. It is used to model LLVM module declarations.

Definition at line 21 of file RvsdgModule.hpp.

Constructor & Destructor Documentation

◆ LlvmGraphImport()

jlm::llvm::LlvmGraphImport::LlvmGraphImport ( rvsdg::Graph graph,
std::shared_ptr< const rvsdg::Type valueType,
std::shared_ptr< const rvsdg::Type importedType,
std::string  name,
Linkage  linkage,
bool  isConstant 
)
inlineprivate

Definition at line 23 of file RvsdgModule.hpp.

Member Function Documentation

◆ Copy()

LlvmGraphImport & jlm::llvm::LlvmGraphImport::Copy ( rvsdg::Region region,
rvsdg::StructuralInput input 
) const
overridevirtual

Creates a copy of the argument in region with the structural_input input.

Parameters
regionThe region where the copy of the argument is created in.
inputThe structural_input to the argument, if any.
Returns
A reference to the copied argument.

Reimplemented from jlm::rvsdg::RegionArgument.

Definition at line 12 of file RvsdgModule.cpp.

◆ Create()

static LlvmGraphImport& jlm::llvm::LlvmGraphImport::Create ( rvsdg::Graph graph,
std::shared_ptr< const rvsdg::Type valueType,
std::shared_ptr< const rvsdg::Type importedType,
std::string  name,
Linkage  linkage,
bool  isConstant = false 
)
inlinestatic

Definition at line 81 of file RvsdgModule.hpp.

◆ ImportedType()

const std::shared_ptr<const jlm::rvsdg::Type>& jlm::llvm::LlvmGraphImport::ImportedType ( ) const
inlinenoexcept

Symbols are imported as references to an underlying function or global variable. The imported type is the type of this reference, e.g., a pointer or function type. The imported type is the actual type of the RVSDG region argument.

Returns
the type used to reference the imported symbol.
See also
ValueType

Definition at line 72 of file RvsdgModule.hpp.

◆ isConstant()

bool jlm::llvm::LlvmGraphImport::isConstant ( ) const
inlinenoexcept

Definition at line 45 of file RvsdgModule.hpp.

◆ linkage()

const Linkage& jlm::llvm::LlvmGraphImport::linkage ( ) const
inlinenoexcept

Definition at line 39 of file RvsdgModule.hpp.

◆ ValueType()

const std::shared_ptr<const jlm::rvsdg::Type>& jlm::llvm::LlvmGraphImport::ValueType ( ) const
inlinenoexcept

Symbols are imported as references to an underlying function or global variable. The value type is the type of this underlying target.

Returns
the underlying type of the imported symbol
See also
ImportedType

Definition at line 58 of file RvsdgModule.hpp.

Member Data Documentation

◆ ImportedType_

std::shared_ptr<const rvsdg::Type> jlm::llvm::LlvmGraphImport::ImportedType_
private

Definition at line 102 of file RvsdgModule.hpp.

◆ isConstant_

bool jlm::llvm::LlvmGraphImport::isConstant_
private

Definition at line 104 of file RvsdgModule.hpp.

◆ Linkage_

llvm::Linkage jlm::llvm::LlvmGraphImport::Linkage_
private

Definition at line 103 of file RvsdgModule.hpp.

◆ ValueType_

std::shared_ptr<const rvsdg::Type> jlm::llvm::LlvmGraphImport::ValueType_
private

Definition at line 101 of file RvsdgModule.hpp.


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