|
Jlm
|
#include <CallSummary.hpp>

Public Member Functions | |
| CallSummary (rvsdg::GraphExport *rvsdgExport, std::vector< rvsdg::SimpleNode * > directCalls, std::vector< rvsdg::Input * > otherUsers) | |
| bool | IsDead () const noexcept |
| bool | IsExported () const noexcept |
| bool | IsOnlyExported () const noexcept |
| bool | HasOnlyDirectCalls () const noexcept |
| bool | HasNoOtherUsages () const noexcept |
| bool | HasOnlyOtherUsages () const noexcept |
| size_t | NumDirectCalls () const noexcept |
| size_t | NumOtherUsers () const noexcept |
| rvsdg::GraphExport * | GetRvsdgExport () const noexcept |
| DirectCallsConstRange | DirectCalls () const noexcept |
| OtherUsersConstRange | OtherUsers () const noexcept |
Static Public Member Functions | |
| static std::unique_ptr< CallSummary > | Create (rvsdg::GraphExport *rvsdgExport, std::vector< rvsdg::SimpleNode * > directCalls, std::vector< rvsdg::Input * > otherUsers) |
Private Types | |
| using | DirectCallsConstRange = util::IteratorRange< std::vector< rvsdg::SimpleNode * >::const_iterator > |
| using | OtherUsersConstRange = util::IteratorRange< std::vector< rvsdg::Input * >::const_iterator > |
Private Attributes | |
| rvsdg::GraphExport * | RvsdgExport_ |
| std::vector< rvsdg::SimpleNode * > | DirectCalls_ |
| std::vector< rvsdg::Input * > | OtherUsers_ |
The CallSummary of a lambda summarizes all call usages of the lambda. It distinguishes between three call usages:
Definition at line 25 of file CallSummary.hpp.
|
private |
Definition at line 27 of file CallSummary.hpp.
|
private |
Definition at line 29 of file CallSummary.hpp.
|
inline |
Definition at line 32 of file CallSummary.hpp.
|
inlinestatic |
Creates a new CallSummary.
| rvsdgExport | The lambda export. |
| directCalls | The direct call sites of a lambda. |
| otherUsers | All other usages of a lambda. |
Definition at line 175 of file CallSummary.hpp.
|
inlinenoexcept |
Returns an util::IteratorRange for iterating through all direct call sites.
Definition at line 147 of file CallSummary.hpp.
|
inlinenoexcept |
Returns the export of the lambda.
Definition at line 136 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda has no other usages, i.e., it can only be exported and/or have direct calls.
Definition at line 92 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda has only direct calls.
Definition at line 80 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda has only(!) other usages.
Definition at line 103 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda is dead.
Definition at line 47 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda is exported from the RVSDG
Definition at line 58 of file CallSummary.hpp.
|
inlinenoexcept |
Determines whether the lambda is only(!) exported from the RVSDG.
Definition at line 69 of file CallSummary.hpp.
|
inlinenoexcept |
Returns the number of direct call sites invoking the lambda.
Definition at line 114 of file CallSummary.hpp.
|
inlinenoexcept |
Returns the number of all other users that are not direct calls.
Definition at line 125 of file CallSummary.hpp.
|
inlinenoexcept |
Returns an util::IteratorRange for iterating through all other usages.
Definition at line 158 of file CallSummary.hpp.
|
private |
Definition at line 188 of file CallSummary.hpp.
|
private |
Definition at line 189 of file CallSummary.hpp.
|
private |
Definition at line 187 of file CallSummary.hpp.