|
Jlm
|
#include <RvsdgModule.hpp>


Public Member Functions | |
| size_t | getAlignment () const noexcept |
| const Linkage & | linkage () const noexcept |
| const CallingConvention & | callingConvention () 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 |
| LlvmGraphImport & | Copy (rvsdg::Region ®ion, 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 |
| GraphImport & | Copy (Region ®ion, 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 | |
| RegionArgument & | operator= (const RegionArgument &)=delete |
| RegionArgument & | operator= (RegionArgument &&)=delete |
| std::string | debug_string () const override |
| StructuralInput * | input () const noexcept |
Public Member Functions inherited from jlm::rvsdg::Output | |
| virtual | ~Output () noexcept |
| Output (const Output &)=delete | |
| Output (Output &&)=delete | |
| Output & | operator= (const Output &)=delete |
| Output & | operator= (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::Input & | SingleUser () noexcept |
| UsersRange | Users () |
| UsersConstRange | Users () const |
| const std::shared_ptr< const rvsdg::Type > & | Type () const noexcept |
| rvsdg::Region * | region () const noexcept |
| std::variant< Node *, Region * > | GetOwner () const noexcept |
Static Public Member Functions | |
| static LlvmGraphImport & | create (rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, CallingConvention callingConvention, const bool isConstant, const size_t alignment) |
| static LlvmGraphImport & | createGlobalImport (rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, const bool isConstant, const size_t alignment) |
| static LlvmGraphImport & | createFunctionImport (rvsdg::Graph &graph, std::shared_ptr< const rvsdg::FunctionType > functionType, std::string name, Linkage linkage, CallingConvention callingConvention) |
Static Public Member Functions inherited from jlm::rvsdg::GraphImport | |
| static GraphImport & | Create (Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name) |
Static Public Member Functions inherited from jlm::rvsdg::RegionArgument | |
| static RegionArgument & | Create (rvsdg::Region ®ion, 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, CallingConvention callingConvention, const bool isConstant, const size_t alignment) | |
Private Attributes | |
| std::shared_ptr< const rvsdg::Type > | ValueType_ |
| std::shared_ptr< const rvsdg::Type > | ImportedType_ |
| llvm::Linkage | Linkage_ |
| CallingConvention | callingConvention_ |
| bool | isConstant_ |
| size_t | alignment_ |
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) | |
Represents an import into the RVSDG of an external entity. It is used to model LLVM module declarations.
Definition at line 22 of file RvsdgModule.hpp.
|
inlineprivate |
Definition at line 24 of file RvsdgModule.hpp.
|
inlinenoexcept |
The calling convention of the imported symbol. Only applies to imported functions, not global variables.
Definition at line 61 of file RvsdgModule.hpp.
|
overridevirtual |
Makes a copy of this LlvmGraphImport in the given region.
| region | the region to create the copy in. Must be a root region. |
| input | must be nullptr |
Reimplemented from jlm::rvsdg::RegionArgument.
Definition at line 13 of file RvsdgModule.cpp.
|
inlinestatic |
Definition at line 109 of file RvsdgModule.hpp.
|
inlinestatic |
Creates a new graph import representing an imported function.
| graph | the graph whose root region will contain the import as an argument |
| functionType | the type of the function, which is also the type of the argument |
| name | the name of the function symbol |
| linkage | the linkage of the function symbol |
| callingConvention | the calling convention of the function |
Definition at line 172 of file RvsdgModule.hpp.
|
inlinestatic |
Creates a new graph import representing a global variable.
| graph | the graph whose root region will contain the import as an argument |
| valueType | the underlying type of the global variable |
| importedType | the reference type used to access the global variable (e.g. PointerType) |
| name | the name of the global variable symbol |
| linkage | the linkage of the global variable symbol |
| isConstant | true if the global variable is constant memory |
| alignment | the alignment of the global variable |
Definition at line 143 of file RvsdgModule.hpp.
|
inlinenoexcept |
Definition at line 44 of file RvsdgModule.hpp.
|
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.
Definition at line 94 of file RvsdgModule.hpp.
|
inlinenoexcept |
Definition at line 67 of file RvsdgModule.hpp.
|
inlinenoexcept |
Definition at line 50 of file RvsdgModule.hpp.
|
inlinenoexcept |
Symbols are imported as references to an underlying function or global variable. The value type is the type of this underlying target.
Definition at line 80 of file RvsdgModule.hpp.
|
private |
Definition at line 196 of file RvsdgModule.hpp.
|
private |
Definition at line 194 of file RvsdgModule.hpp.
|
private |
Definition at line 192 of file RvsdgModule.hpp.
|
private |
Definition at line 195 of file RvsdgModule.hpp.
|
private |
Definition at line 193 of file RvsdgModule.hpp.
|
private |
Definition at line 191 of file RvsdgModule.hpp.