Jlm
Public Member Functions | Private Attributes | List of all members
jlm::llvm::aa::FunctionCallConstraint Class Referencefinal

#include <PointerObjectSet.hpp>

Collaboration diagram for jlm::llvm::aa::FunctionCallConstraint:
Collaboration graph
[legend]

Public Member Functions

 FunctionCallConstraint (PointerObjectIndex pointer, const rvsdg::SimpleNode &callNode)
 
PointerObjectIndex GetPointer () const noexcept
 
void SetPointer (PointerObjectIndex pointer)
 
const rvsdg::SimpleNodeGetCallNode () const noexcept
 
bool ApplyDirectly (PointerObjectSet &set)
 

Private Attributes

PointerObjectIndex Pointer_
 
const rvsdg::SimpleNodeCallNode_
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ FunctionCallConstraint()

jlm::llvm::aa::FunctionCallConstraint::FunctionCallConstraint ( PointerObjectIndex  pointer,
const rvsdg::SimpleNode callNode 
)
inline

Definition at line 757 of file PointerObjectSet.hpp.

Member Function Documentation

◆ ApplyDirectly()

bool jlm::llvm::aa::FunctionCallConstraint::ApplyDirectly ( PointerObjectSet set)

Apply this constraint to set once.

Returns
true if this operation modified any PointerObjects or points-to-sets

Definition at line 754 of file PointerObjectSet.cpp.

◆ GetCallNode()

const rvsdg::SimpleNode& jlm::llvm::aa::FunctionCallConstraint::GetCallNode ( ) const
inlinenoexcept
Returns
the RVSDG call node for the function call

Definition at line 786 of file PointerObjectSet.hpp.

◆ GetPointer()

PointerObjectIndex jlm::llvm::aa::FunctionCallConstraint::GetPointer ( ) const
inlinenoexcept
Returns
the PointerObject representing the function pointer being called

Definition at line 768 of file PointerObjectSet.hpp.

◆ SetPointer()

void jlm::llvm::aa::FunctionCallConstraint::SetPointer ( PointerObjectIndex  pointer)
inline
Parameters
pointerthe new PointerObject representing the function pointer being called

Definition at line 777 of file PointerObjectSet.hpp.

Member Data Documentation

◆ CallNode_

const rvsdg::SimpleNode& jlm::llvm::aa::FunctionCallConstraint::CallNode_
private

The RVSDG node representing the function call

Definition at line 754 of file PointerObjectSet.hpp.

◆ Pointer_

PointerObjectIndex jlm::llvm::aa::FunctionCallConstraint::Pointer_
private

A PointerObject of Register kind, representing the function pointer being called

Definition at line 749 of file PointerObjectSet.hpp.


The documentation for this class was generated from the following files: