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

EscapedMemoryTest2 class. More...

#include <TestRvsdgs.hpp>

Inheritance diagram for jlm::llvm::EscapedMemoryTest2:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::EscapedMemoryTest2:
Collaboration graph
[legend]

Public Attributes

jlm::rvsdg::LambdaNodeReturnAddressFunction
 
jlm::rvsdg::LambdaNodeCallExternalFunction1
 
jlm::rvsdg::LambdaNodeCallExternalFunction2
 
rvsdg::SimpleNodeExternalFunction1Call
 
rvsdg::SimpleNodeExternalFunction2Call
 
rvsdg::SimpleNodeReturnAddressMalloc
 
rvsdg::SimpleNodeCallExternalFunction1Malloc
 
jlm::rvsdg::GraphImportExternalFunction1Import
 
jlm::rvsdg::GraphImportExternalFunction2Import
 
rvsdg::SimpleNodeLoadNode
 

Private Member Functions

std::unique_ptr< jlm::llvm::LlvmRvsdgModuleSetupRvsdg () override
 Create RVSDG for this test. More...
 

Additional Inherited Members

- Public Member Functions inherited from jlm::llvm::RvsdgTest
virtual ~RvsdgTest ()=default
 
jlm::llvm::LlvmRvsdgModulemodule ()
 
const rvsdg::Graphgraph ()
 
void InitializeTest ()
 

Detailed Description

EscapedMemoryTest2 class.

This class sets up an RVSDG representing the following code snippet:

#include <stdlib.h>
extern void ExternalFunction1(void*);
extern int* ExternalFunction2();
void*
ReturnAddress()
{
return malloc(8);
}
void
{
void* address = malloc(8);
ExternalFunction1(address);
}
int
{
return *ExternalFunction2();
}
jlm::rvsdg::LambdaNode * CallExternalFunction2
jlm::rvsdg::LambdaNode * CallExternalFunction1

It uses a single memory state to sequentialize the respective memory operations.

Definition at line 1772 of file TestRvsdgs.hpp.

Member Function Documentation

◆ SetupRvsdg()

std::unique_ptr< jlm::llvm::LlvmRvsdgModule > jlm::llvm::EscapedMemoryTest2::SetupRvsdg ( )
overrideprivatevirtual

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 2892 of file TestRvsdgs.cpp.

Member Data Documentation

◆ CallExternalFunction1

jlm::rvsdg::LambdaNode* jlm::llvm::EscapedMemoryTest2::CallExternalFunction1

Definition at line 1780 of file TestRvsdgs.hpp.

◆ CallExternalFunction1Malloc

rvsdg::SimpleNode* jlm::llvm::EscapedMemoryTest2::CallExternalFunction1Malloc

Definition at line 1787 of file TestRvsdgs.hpp.

◆ CallExternalFunction2

jlm::rvsdg::LambdaNode* jlm::llvm::EscapedMemoryTest2::CallExternalFunction2

Definition at line 1781 of file TestRvsdgs.hpp.

◆ ExternalFunction1Call

rvsdg::SimpleNode* jlm::llvm::EscapedMemoryTest2::ExternalFunction1Call

Definition at line 1783 of file TestRvsdgs.hpp.

◆ ExternalFunction1Import

jlm::rvsdg::GraphImport* jlm::llvm::EscapedMemoryTest2::ExternalFunction1Import

Definition at line 1789 of file TestRvsdgs.hpp.

◆ ExternalFunction2Call

rvsdg::SimpleNode* jlm::llvm::EscapedMemoryTest2::ExternalFunction2Call

Definition at line 1784 of file TestRvsdgs.hpp.

◆ ExternalFunction2Import

jlm::rvsdg::GraphImport* jlm::llvm::EscapedMemoryTest2::ExternalFunction2Import

Definition at line 1790 of file TestRvsdgs.hpp.

◆ LoadNode

rvsdg::SimpleNode* jlm::llvm::EscapedMemoryTest2::LoadNode

Definition at line 1792 of file TestRvsdgs.hpp.

◆ ReturnAddressFunction

jlm::rvsdg::LambdaNode* jlm::llvm::EscapedMemoryTest2::ReturnAddressFunction

Definition at line 1779 of file TestRvsdgs.hpp.

◆ ReturnAddressMalloc

rvsdg::SimpleNode* jlm::llvm::EscapedMemoryTest2::ReturnAddressMalloc

Definition at line 1786 of file TestRvsdgs.hpp.


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