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

CallTest1 class. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

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

Public Attributes

jlm::rvsdg::LambdaNodelambda_f
 
jlm::rvsdg::LambdaNodelambda_g
 
jlm::rvsdg::LambdaNodelambda_h
 
rvsdg::SimpleNodealloca_x
 
rvsdg::SimpleNodealloca_y
 
rvsdg::SimpleNodealloca_z
 

Private Member Functions

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

Private Attributes

rvsdg::SimpleNodeCallF_ {}
 
rvsdg::SimpleNodeCallG_ {}
 

Detailed Description

CallTest1 class.

This function sets up an RVSDG representing the following function:

static uint32_t
f(uint32_t * x, uint32_t * y)
{
return *x + *y;
}
static uint32_t
g(uint32_t * x, uint32_t * y)
{
return *x - *y;
}
uint32_t
h()
{
uint32_t x = 5, y = 6, z = 7;
return f(&x, &y) + g(&z, &z);
}

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

Definition at line 424 of file TestRvsdgs.hpp.

Member Function Documentation

◆ CallF()

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

Definition at line 432 of file TestRvsdgs.hpp.

◆ CallG()

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

Definition at line 438 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 479 of file TestRvsdgs.cpp.

Member Data Documentation

◆ alloca_x

rvsdg::SimpleNode* jlm::llvm::CallTest1::alloca_x

Definition at line 447 of file TestRvsdgs.hpp.

◆ alloca_y

rvsdg::SimpleNode* jlm::llvm::CallTest1::alloca_y

Definition at line 448 of file TestRvsdgs.hpp.

◆ alloca_z

rvsdg::SimpleNode* jlm::llvm::CallTest1::alloca_z

Definition at line 449 of file TestRvsdgs.hpp.

◆ CallF_

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

Definition at line 452 of file TestRvsdgs.hpp.

◆ CallG_

rvsdg::SimpleNode* jlm::llvm::CallTest1::CallG_ {}
private

Definition at line 453 of file TestRvsdgs.hpp.

◆ lambda_f

jlm::rvsdg::LambdaNode* jlm::llvm::CallTest1::lambda_f

Definition at line 443 of file TestRvsdgs.hpp.

◆ lambda_g

jlm::rvsdg::LambdaNode* jlm::llvm::CallTest1::lambda_g

Definition at line 444 of file TestRvsdgs.hpp.

◆ lambda_h

jlm::rvsdg::LambdaNode* jlm::llvm::CallTest1::lambda_h

Definition at line 445 of file TestRvsdgs.hpp.


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