Jlm
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::LambdaNodeGetLambdaF () const noexcept
 
rvsdg::LambdaNodeGetLambdaG () const noexcept
 
rvsdg::LambdaNodeGetLambdaH () const noexcept
 
rvsdg::GammaNodeGetGamma () const noexcept
 
rvsdg::SimpleNodeGetCallFromG () const noexcept
 
rvsdg::SimpleNodeGetCallFromH () const noexcept
 
rvsdg::NodeGetAllocaXFromG () const noexcept
 
rvsdg::NodeGetAllocaYFromG () const noexcept
 
rvsdg::NodeGetAllocaXFromH () const noexcept
 
rvsdg::NodeGetAllocaYFromH () const noexcept
 
rvsdg::NodeGetAllocaZ () 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< llvm::LlvmRvsdgModuleSetupRvsdg () override
 Create RVSDG for this test. More...
 

Private Attributes

rvsdg::LambdaNodeLambdaF_ {}
 
rvsdg::LambdaNodeLambdaG_ {}
 
rvsdg::LambdaNodeLambdaH_ {}
 
rvsdg::GammaNodeGamma_ {}
 
rvsdg::SimpleNodeCallFromG_ {}
 
rvsdg::SimpleNodeCallFromH_ {}
 
rvsdg::NodeAllocaXFromG_ {}
 
rvsdg::NodeAllocaYFromG_ {}
 
rvsdg::NodeAllocaXFromH_ {}
 
rvsdg::NodeAllocaYFromH_ {}
 
rvsdg::NodeAllocaZ_ {}
 

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 1456 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: