Call node classifier.
More...
#include <call.hpp>
Call node classifier.
The CallTypeClassifier class provides information about the call type of a call node.
Definition at line 23 of file call.hpp.
◆ CallType
| Enumerator |
|---|
| NonRecursiveDirectCall | A call to a statically visible function within the module that is not part of a mutual recursive call chain.
|
| RecursiveDirectCall | A call to a statically visible function within the module that is part of a mutual recursive call chain.
|
| ExternalCall | A direct call to an imported function, i.e., a function from outside the current module.
|
| IndirectCall | A call to a statically not visible function.
|
Definition at line 26 of file call.hpp.
◆ CallTypeClassifier()
◆ CreateExternalCallClassifier()
Classify callee as external.
- Parameters
-
| argument | Output representing the function called (must be graph argument). |
- Precondition
- The given output must be an argument to the root region of the graph.
Definition at line 222 of file call.hpp.
◆ CreateIndirectCallClassifier()
Classify callee as inderict.
- Parameters
-
| output | Output representing the function called (supposed to be pointer). |
Definition at line 235 of file call.hpp.
◆ CreateNonRecursiveDirectCallClassifier()
Classify callee as non-recursive.
- Parameters
-
| output | Output representing the function called (must be a lambda). |
- Precondition
- The given output must belong to a lambda node.
Definition at line 191 of file call.hpp.
◆ CreateRecursiveDirectCallClassifier()
Classify callee as recursive.
- Parameters
-
| output | Output representing the function called (must be phi argument). |
- Precondition
- The given output must belong to a phi node.
Definition at line 207 of file call.hpp.
◆ GetCallType()
| CallType jlm::llvm::CallTypeClassifier::GetCallType |
( |
| ) |
const |
|
inlinenoexcept |
Return call type.
Definition at line 60 of file call.hpp.
◆ GetFunctionOrigin()
Return origin of a call node's function input.
GetFunctionOrigin() returns the last output returned by CallNode::TraceFunctionInput().
- Returns
- Traced origin of a call node's function input.
- See also
- CallNode::TraceFunctionInput(), CallNode::GetFunctionInput()
Definition at line 162 of file call.hpp.
◆ GetImport()
Returns the imported function.
GetImport() only returns a valid result if the call is an external call.
- Returns
- The imported function.
Definition at line 147 of file call.hpp.
◆ GetLambdaOutput()
| rvsdg::Output& jlm::llvm::CallTypeClassifier::GetLambdaOutput |
( |
| ) |
const |
|
inlinenoexcept |
Returns the called function.
GetLambdaOutput() only returns a valid result if the call node is a (non-)recursive direct call.
- Returns
- The called function.
Definition at line 123 of file call.hpp.
◆ IsDirectCall()
| bool jlm::llvm::CallTypeClassifier::IsDirectCall |
( |
| ) |
const |
|
inlinenoexcept |
- Returns
- True if call is a (non-)recursive direct call, otherwise false.
Definition at line 89 of file call.hpp.
◆ IsExternalCall()
| bool jlm::llvm::CallTypeClassifier::IsExternalCall |
( |
| ) |
const |
|
inlinenoexcept |
Determines whether call is an external call.
- Returns
- True if call is an external call, otherwise false.
Definition at line 100 of file call.hpp.
◆ IsIndirectCall()
| bool jlm::llvm::CallTypeClassifier::IsIndirectCall |
( |
| ) |
const |
|
inlinenoexcept |
Determines whether call is an indirect call.
- Returns
- True if call is an indirect call, otherwise false.
Definition at line 110 of file call.hpp.
◆ IsNonRecursiveDirectCall()
| bool jlm::llvm::CallTypeClassifier::IsNonRecursiveDirectCall |
( |
| ) |
const |
|
inlinenoexcept |
Determines whether call is a non-recursive direct call.
- Returns
- True if call is a non-recursive direct call, otherwise false.
Definition at line 70 of file call.hpp.
◆ IsRecursiveDirectCall()
| bool jlm::llvm::CallTypeClassifier::IsRecursiveDirectCall |
( |
| ) |
const |
|
inlinenoexcept |
Determines whether call is a recursive direct call.
- Returns
- True if call is a recursive direct call, otherwise false.
Definition at line 80 of file call.hpp.
◆ isSetjmpCall()
| bool jlm::llvm::CallTypeClassifier::isSetjmpCall |
( |
| ) |
|
Calling setjmp has special semantics that affect the calling function.
- Returns
- true if the call is a direct call to the imported setjmp function, otherwise false
Definition at line 77 of file call.cpp.
◆ isVaStartCall()
| bool jlm::llvm::CallTypeClassifier::isVaStartCall |
( |
| ) |
|
Calling the va_start intrinsic has special semantics that affect the calling function.
- Returns
- true if the call is a direct call to the va_start instrinsic, otherwise false
Definition at line 92 of file call.cpp.
◆ CallType_
| CallType jlm::llvm::CallTypeClassifier::CallType_ |
|
private |
◆ Output_
The documentation for this class was generated from the following files: