|
Jlm
|
Call operation class. More...
#include <call.hpp>


Public Member Functions | |
| ~CallOperation () override | |
| CallOperation (std::shared_ptr< const rvsdg::FunctionType > functionType) | |
| bool | operator== (const Operation &other) const noexcept override |
| std::string | debug_string () const override |
| const std::shared_ptr< const rvsdg::FunctionType > & | GetFunctionType () const noexcept |
| std::unique_ptr< Operation > | copy () const override |
Public Member Functions inherited from jlm::rvsdg::SimpleOperation | |
| ~SimpleOperation () noexcept override | |
| SimpleOperation (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> results) | |
| size_t | narguments () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | argument (size_t index) const noexcept |
| size_t | nresults () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | result (size_t index) const noexcept |
Public Member Functions inherited from jlm::rvsdg::Operation | |
| virtual | ~Operation () noexcept |
| virtual bool | operator== (const Operation &other) const noexcept=0 |
| bool | operator!= (const Operation &other) const noexcept |
Static Public Member Functions | |
| static size_t | NumArguments (const rvsdg::Node &node) noexcept |
| static rvsdg::Input * | Argument (const rvsdg::Node &node, const size_t n) |
| static rvsdg::Input & | GetFunctionInput (const rvsdg::Node &node) noexcept |
| static rvsdg::Input & | GetIOStateInput (const rvsdg::Node &node) noexcept |
| static rvsdg::Output & | GetIOStateOutput (const rvsdg::Node &node) noexcept |
| static rvsdg::Input & | GetMemoryStateInput (const rvsdg::Node &node) noexcept |
| static rvsdg::Output & | GetMemoryStateOutput (const rvsdg::Node &node) noexcept |
| static rvsdg::SimpleNode * | tryGetMemoryStateEntryMerge (const rvsdg::Node &callNode) noexcept |
| static rvsdg::SimpleNode * | tryGetMemoryStateExitSplit (const rvsdg::Node &callNode) noexcept |
| static rvsdg::Output & | TraceFunctionInput (const rvsdg::SimpleNode &callNode) |
| Traces function input of call node. More... | |
| static std::unique_ptr< CallTypeClassifier > | ClassifyCall (const rvsdg::SimpleNode &callNode) |
| Classifies a call node. More... | |
| static std::unique_ptr< ThreeAddressCode > | create (const Variable *function, std::shared_ptr< const rvsdg::FunctionType > functionType, const std::vector< const Variable * > &arguments) |
| static std::vector< rvsdg::Output * > | Create (rvsdg::Output *function, std::shared_ptr< const rvsdg::FunctionType > functionType, const std::vector< rvsdg::Output * > &arguments) |
| static std::vector< rvsdg::Output * > | Create (rvsdg::Region ®ion, std::unique_ptr< CallOperation > callOperation, const std::vector< rvsdg::Output * > &operands) |
| static rvsdg::SimpleNode & | CreateNode (rvsdg::Region ®ion, std::unique_ptr< CallOperation > callOperation, const std::vector< rvsdg::Output * > &operands) |
| static rvsdg::SimpleNode & | CreateNode (rvsdg::Output *function, std::shared_ptr< const rvsdg::FunctionType > functionType, const std::vector< rvsdg::Output * > &arguments) |
Static Private Member Functions | |
| static std::vector< std::shared_ptr< const rvsdg::Type > > | create_srctypes (const std::shared_ptr< const rvsdg::FunctionType > &functionType) |
| static void | CheckFunctionInputType (const jlm::rvsdg::Type &type) |
| static void | CheckFunctionType (const rvsdg::FunctionType &functionType) |
Private Attributes | |
| std::shared_ptr< const rvsdg::FunctionType > | FunctionType_ |
|
overridedefault |
|
inlineexplicit |
|
inlinestatic |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
static |
Classifies a call node.
Classifies a call node according to its call type.
| callNode | A call node. |
|
overridevirtual |
Implements jlm::rvsdg::Operation.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestaticprivate |
|
inlinestatic |
|
inlinestatic |
|
overridevirtual |
Implements jlm::rvsdg::Operation.
|
inlinestaticnoexcept |
|
inlinenoexcept |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
overridenoexcept |
|
static |
Traces function input of call node.
Traces the function input of a call node upwards, trying to find the corresponding lambda output. The function can handle invariant gamma exit variables and invariant theta loop variables.
| callNode | A call node. |
|
inlinestaticnoexcept |
| callNode | The call node for which to retrieve the CallEntryMemoryStateMergeOperation node. |
|
inlinestaticnoexcept |
| callNode | The call node for which to retrieve the CallExitMemoryStateSplitOperation node. |
|
private |