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

MemcpyTest class. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

const jlm::rvsdg::LambdaNodeLambdaF () const noexcept
 
const jlm::rvsdg::LambdaNodeLambdaG () const noexcept
 
const jlm::rvsdg::DeltaNodeLocalArray () const noexcept
 
const jlm::rvsdg::DeltaNodeGlobalArray () const noexcept
 
const rvsdg::SimpleNodeCallF () const noexcept
 
const rvsdg::SimpleNodeMemcpy () const noexcept
 
- Public Member Functions inherited from jlm::llvm::RvsdgTest
virtual ~RvsdgTest ()=default
 
jlm::llvm::LlvmRvsdgModulemodule ()
 
const rvsdg::Graphgraph ()
 
void InitializeTest ()
 

Private Member Functions

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

Private Attributes

jlm::rvsdg::LambdaNodeLambdaF_ {}
 
jlm::rvsdg::LambdaNodeLambdaG_ {}
 
jlm::rvsdg::DeltaNodeLocalArray_ {}
 
jlm::rvsdg::DeltaNodeGlobalArray_ {}
 
rvsdg::SimpleNodeCallF_ {}
 
rvsdg::SimpleNodeMemcpy_ {}
 

Detailed Description

MemcpyTest class.

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

#include <string.h>
int globalArray[5];
int
f()
{
globalArray[2] = 6;
return globalArray[2];
}
int
g()
{
int localArray[5] = {0, 1, 2, 3, 4};
memcpy(globalArray, localArray, sizeof(int)*5);
return f();
}

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

Definition at line 1857 of file TestRvsdgs.hpp.

Member Function Documentation

◆ CallF()

const rvsdg::SimpleNode& jlm::llvm::MemcpyTest::CallF ( ) const
inlinenoexcept

Definition at line 1885 of file TestRvsdgs.hpp.

◆ GlobalArray()

const jlm::rvsdg::DeltaNode& jlm::llvm::MemcpyTest::GlobalArray ( ) const
inlinenoexcept

Definition at line 1879 of file TestRvsdgs.hpp.

◆ LambdaF()

const jlm::rvsdg::LambdaNode& jlm::llvm::MemcpyTest::LambdaF ( ) const
inlinenoexcept

Definition at line 1861 of file TestRvsdgs.hpp.

◆ LambdaG()

const jlm::rvsdg::LambdaNode& jlm::llvm::MemcpyTest::LambdaG ( ) const
inlinenoexcept

Definition at line 1867 of file TestRvsdgs.hpp.

◆ LocalArray()

const jlm::rvsdg::DeltaNode& jlm::llvm::MemcpyTest::LocalArray ( ) const
inlinenoexcept

Definition at line 1873 of file TestRvsdgs.hpp.

◆ Memcpy()

const rvsdg::SimpleNode& jlm::llvm::MemcpyTest::Memcpy ( ) const
inlinenoexcept

Definition at line 1891 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 3178 of file TestRvsdgs.cpp.

Member Data Documentation

◆ CallF_

rvsdg::SimpleNode* jlm::llvm::MemcpyTest::CallF_ {}
private

Definition at line 1906 of file TestRvsdgs.hpp.

◆ GlobalArray_

jlm::rvsdg::DeltaNode* jlm::llvm::MemcpyTest::GlobalArray_ {}
private

Definition at line 1904 of file TestRvsdgs.hpp.

◆ LambdaF_

jlm::rvsdg::LambdaNode* jlm::llvm::MemcpyTest::LambdaF_ {}
private

Definition at line 1900 of file TestRvsdgs.hpp.

◆ LambdaG_

jlm::rvsdg::LambdaNode* jlm::llvm::MemcpyTest::LambdaG_ {}
private

Definition at line 1901 of file TestRvsdgs.hpp.

◆ LocalArray_

jlm::rvsdg::DeltaNode* jlm::llvm::MemcpyTest::LocalArray_ {}
private

Definition at line 1903 of file TestRvsdgs.hpp.

◆ Memcpy_

rvsdg::SimpleNode* jlm::llvm::MemcpyTest::Memcpy_ {}
private

Definition at line 1908 of file TestRvsdgs.hpp.


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