Jlm
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::llvm::GammaTest2 Class Referencefinal

GammaTest2 class. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

rvsdg::LambdaNode & GetLambdaF () const noexcept
 
rvsdg::LambdaNode & GetLambdaG () const noexcept
 
rvsdg::LambdaNode & GetLambdaH () const noexcept
 
rvsdg::GammaNode & GetGamma () const noexcept
 
rvsdg::SimpleNode & GetCallFromG () const noexcept
 
rvsdg::SimpleNode & GetCallFromH () const noexcept
 
rvsdg::Node & GetAllocaXFromG () const noexcept
 
rvsdg::Node & GetAllocaYFromG () const noexcept
 
rvsdg::Node & GetAllocaXFromH () const noexcept
 
rvsdg::Node & GetAllocaYFromH () const noexcept
 
rvsdg::Node & GetAllocaZ () const noexcept
 
- Public Member Functions inherited from jlm::llvm::RvsdgTest
virtual ~RvsdgTest ()=default
 
jlm::llvm::LlvmRvsdgModule & module ()
 
const rvsdg::Graph & graph ()
 
void InitializeTest ()
 

Private Member Functions

std::unique_ptr< llvm::LlvmRvsdgModule > SetupRvsdg () override
 Create RVSDG for this test.
 

Private Attributes

rvsdg::LambdaNode * LambdaF_ {}
 
rvsdg::LambdaNode * LambdaG_ {}
 
rvsdg::LambdaNode * LambdaH_ {}
 
rvsdg::GammaNode * Gamma_ {}
 
rvsdg::SimpleNode * CallFromG_ {}
 
rvsdg::SimpleNode * CallFromH_ {}
 
rvsdg::Node * AllocaXFromG_ {}
 
rvsdg::Node * AllocaYFromG_ {}
 
rvsdg::Node * AllocaXFromH_ {}
 
rvsdg::Node * AllocaYFromH_ {}
 
rvsdg::Node * AllocaZ_ {}
 

Detailed Description

GammaTest2 class.

This class sets up an RVSDG representing the following code:

static uint32_t
f(uint32_t c, uint32_t* x, uint32_t* y)
{
uint32_t a;
uint32_t* z = NULL;
if (c == 0)
{
a = *x;
*z = 1;
}
else
{
a = *y;
*z = 2;
}
return a + *z;
}
uint32_t
g()
{
uint32_t x = 1;
uint32_t y = 2;
return f(0, &x, &y);
}
uint32_t
h()
{
uint32_t x = 3;
uint32_t y = 4;
return f(1, &x, &y);
}

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

Definition at line 1018 of file TestRvsdgs.hpp.

Member Function Documentation

◆ GetAllocaXFromG()

rvsdg::Node & jlm::llvm::GammaTest2::GetAllocaXFromG ( ) const
inlinenoexcept

Definition at line 1058 of file TestRvsdgs.hpp.

◆ GetAllocaXFromH()

rvsdg::Node & jlm::llvm::GammaTest2::GetAllocaXFromH ( ) const
inlinenoexcept

Definition at line 1070 of file TestRvsdgs.hpp.

◆ GetAllocaYFromG()

rvsdg::Node & jlm::llvm::GammaTest2::GetAllocaYFromG ( ) const
inlinenoexcept

Definition at line 1064 of file TestRvsdgs.hpp.

◆ GetAllocaYFromH()

rvsdg::Node & jlm::llvm::GammaTest2::GetAllocaYFromH ( ) const
inlinenoexcept

Definition at line 1076 of file TestRvsdgs.hpp.

◆ GetAllocaZ()

rvsdg::Node & jlm::llvm::GammaTest2::GetAllocaZ ( ) const
inlinenoexcept

Definition at line 1082 of file TestRvsdgs.hpp.

◆ GetCallFromG()

rvsdg::SimpleNode & jlm::llvm::GammaTest2::GetCallFromG ( ) const
inlinenoexcept

Definition at line 1046 of file TestRvsdgs.hpp.

◆ GetCallFromH()

rvsdg::SimpleNode & jlm::llvm::GammaTest2::GetCallFromH ( ) const
inlinenoexcept

Definition at line 1052 of file TestRvsdgs.hpp.

◆ GetGamma()

rvsdg::GammaNode & jlm::llvm::GammaTest2::GetGamma ( ) const
inlinenoexcept

Definition at line 1040 of file TestRvsdgs.hpp.

◆ GetLambdaF()

rvsdg::LambdaNode & jlm::llvm::GammaTest2::GetLambdaF ( ) const
inlinenoexcept

Definition at line 1022 of file TestRvsdgs.hpp.

◆ GetLambdaG()

rvsdg::LambdaNode & jlm::llvm::GammaTest2::GetLambdaG ( ) const
inlinenoexcept

Definition at line 1028 of file TestRvsdgs.hpp.

◆ GetLambdaH()

rvsdg::LambdaNode & jlm::llvm::GammaTest2::GetLambdaH ( ) const
inlinenoexcept

Definition at line 1034 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 1455 of file TestRvsdgs.cpp.

Member Data Documentation

◆ AllocaXFromG_

rvsdg::Node* jlm::llvm::GammaTest2::AllocaXFromG_ {}
private

Definition at line 1100 of file TestRvsdgs.hpp.

◆ AllocaXFromH_

rvsdg::Node* jlm::llvm::GammaTest2::AllocaXFromH_ {}
private

Definition at line 1102 of file TestRvsdgs.hpp.

◆ AllocaYFromG_

rvsdg::Node* jlm::llvm::GammaTest2::AllocaYFromG_ {}
private

Definition at line 1101 of file TestRvsdgs.hpp.

◆ AllocaYFromH_

rvsdg::Node* jlm::llvm::GammaTest2::AllocaYFromH_ {}
private

Definition at line 1103 of file TestRvsdgs.hpp.

◆ AllocaZ_

rvsdg::Node* jlm::llvm::GammaTest2::AllocaZ_ {}
private

Definition at line 1104 of file TestRvsdgs.hpp.

◆ CallFromG_

rvsdg::SimpleNode* jlm::llvm::GammaTest2::CallFromG_ {}
private

Definition at line 1097 of file TestRvsdgs.hpp.

◆ CallFromH_

rvsdg::SimpleNode* jlm::llvm::GammaTest2::CallFromH_ {}
private

Definition at line 1098 of file TestRvsdgs.hpp.

◆ Gamma_

rvsdg::GammaNode* jlm::llvm::GammaTest2::Gamma_ {}
private

Definition at line 1095 of file TestRvsdgs.hpp.

◆ LambdaF_

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

Definition at line 1091 of file TestRvsdgs.hpp.

◆ LambdaG_

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

Definition at line 1092 of file TestRvsdgs.hpp.

◆ LambdaH_

rvsdg::LambdaNode* jlm::llvm::GammaTest2::LambdaH_ {}
private

Definition at line 1093 of file TestRvsdgs.hpp.


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