|
Jlm
|
#include <PointerObjectSet.hpp>

Public Member Functions | |
| FunctionCallConstraint (PointerObjectIndex pointer, const rvsdg::SimpleNode &callNode) | |
| PointerObjectIndex | GetPointer () const noexcept |
| void | SetPointer (PointerObjectIndex pointer) |
| const rvsdg::SimpleNode & | GetCallNode () const noexcept |
| bool | ApplyDirectly (PointerObjectSet &set) |
Private Attributes | |
| PointerObjectIndex | Pointer_ |
| const rvsdg::SimpleNode & | CallNode_ |
A constraint making the given call site communicate with the functions it may call.
It follows the given pseudocode: for f in P(CallTarget): if f is not a lambda: continue for each function argument/input pair (a, i): make P(a) a superset of P(i) for each result/output pair (r, o): make P(o) a superset of P(r)
if CallTarget is flagged as PointsToExternal: mark all of CallNode's parameters as HasEscaped mark the CallNode's return values as PointsToExternal
Definition at line 744 of file PointerObjectSet.hpp.
|
inline |
Definition at line 757 of file PointerObjectSet.hpp.
| bool jlm::llvm::aa::FunctionCallConstraint::ApplyDirectly | ( | PointerObjectSet & | set | ) |
Apply this constraint to set once.
Definition at line 754 of file PointerObjectSet.cpp.
|
inlinenoexcept |
Definition at line 786 of file PointerObjectSet.hpp.
|
inlinenoexcept |
Definition at line 768 of file PointerObjectSet.hpp.
|
inline |
| pointer | the new PointerObject representing the function pointer being called |
Definition at line 777 of file PointerObjectSet.hpp.
|
private |
The RVSDG node representing the function call
Definition at line 754 of file PointerObjectSet.hpp.
|
private |
A PointerObject of Register kind, representing the function pointer being called
Definition at line 749 of file PointerObjectSet.hpp.