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

#include <TestRvsdgs.hpp>

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

Public Member Functions

const jlm::rvsdg::LambdaNodeLambdaF () const noexcept
 
const jlm::rvsdg::LambdaNodeLambdaG () const noexcept
 
const rvsdg::SimpleNodeCallG () const noexcept
 
const rvsdg::NodeMemcpy () 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_ = {}
 
rvsdg::SimpleNodeCallG_ = {}
 
rvsdg::NodeMemcpy_ = {}
 

Detailed Description

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

#include <string.h>
typedef struct structB
{
int * array[32];
} structB;
typedef struct structA
{
int x;
structB * b;
} structA;
static void
g(structB * s1, structB * s2)
{
memcpy(*s2->array, *s1->array, sizeof(int) * 32);
}
void
f(structA * s1, structA * s2)
{
g(s1->b, s2->b);
}

Definition at line 1941 of file TestRvsdgs.hpp.

Member Function Documentation

◆ CallG()

const rvsdg::SimpleNode& jlm::llvm::MemcpyTest2::CallG ( ) const
inlinenoexcept

Definition at line 1959 of file TestRvsdgs.hpp.

◆ LambdaF()

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

Definition at line 1945 of file TestRvsdgs.hpp.

◆ LambdaG()

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

Definition at line 1952 of file TestRvsdgs.hpp.

◆ Memcpy()

const rvsdg::Node& jlm::llvm::MemcpyTest2::Memcpy ( ) const
inlinenoexcept

Definition at line 1966 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 3340 of file TestRvsdgs.cpp.

Member Data Documentation

◆ CallG_

rvsdg::SimpleNode* jlm::llvm::MemcpyTest2::CallG_ = {}
private

Definition at line 1979 of file TestRvsdgs.hpp.

◆ LambdaF_

jlm::rvsdg::LambdaNode* jlm::llvm::MemcpyTest2::LambdaF_ = {}
private

Definition at line 1976 of file TestRvsdgs.hpp.

◆ LambdaG_

jlm::rvsdg::LambdaNode* jlm::llvm::MemcpyTest2::LambdaG_ = {}
private

Definition at line 1977 of file TestRvsdgs.hpp.

◆ Memcpy_

rvsdg::Node* jlm::llvm::MemcpyTest2::Memcpy_ = {}
private

Definition at line 1981 of file TestRvsdgs.hpp.


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