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

PhiTest2 class. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

jlm::rvsdg::LambdaNodeGetLambdaEight () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaI () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaA () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaB () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaC () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaD () const noexcept
 
jlm::rvsdg::LambdaNodeGetLambdaTest () const noexcept
 
rvsdg::SimpleNodeGetCallAFromTest () const noexcept
 
rvsdg::SimpleNodeGetCallAFromC () const noexcept
 
rvsdg::SimpleNodeGetCallAFromD () const noexcept
 
rvsdg::SimpleNodeGetCallB () const noexcept
 
rvsdg::SimpleNodeGetCallC () const noexcept
 
rvsdg::SimpleNodeGetCallD () const noexcept
 
rvsdg::SimpleNodeGetCallI () const noexcept
 
rvsdg::SimpleNodeGetIndirectCall () const noexcept
 
jlm::rvsdg::SimpleNodeGetPTestAlloca () const noexcept
 
jlm::rvsdg::SimpleNodeGetPaAlloca () const noexcept
 
jlm::rvsdg::SimpleNodeGetPbAlloca () const noexcept
 
jlm::rvsdg::SimpleNodeGetPcAlloca () const noexcept
 
jlm::rvsdg::SimpleNodeGetPdAlloca () 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::LambdaNodeLambdaEight_ {}
 
jlm::rvsdg::LambdaNodeLambdaI_ {}
 
jlm::rvsdg::LambdaNodeLambdaA_ {}
 
jlm::rvsdg::LambdaNodeLambdaB_ {}
 
jlm::rvsdg::LambdaNodeLambdaC_ {}
 
jlm::rvsdg::LambdaNodeLambdaD_ {}
 
jlm::rvsdg::LambdaNodeLambdaTest_ {}
 
rvsdg::SimpleNodeCallAFromTest_ {}
 
rvsdg::SimpleNodeCallAFromC_ {}
 
rvsdg::SimpleNodeCallAFromD_ {}
 
rvsdg::SimpleNodeCallB_ {}
 
rvsdg::SimpleNodeCallC_ {}
 
rvsdg::SimpleNodeCallD_ {}
 
rvsdg::SimpleNodeCallI_ {}
 
rvsdg::SimpleNodeIndirectCall_ {}
 
jlm::rvsdg::SimpleNodePTestAlloca_ {}
 
jlm::rvsdg::SimpleNodePaAlloca_ {}
 
jlm::rvsdg::SimpleNodePbAlloca_ {}
 
jlm::rvsdg::SimpleNodePcAlloca_ {}
 
jlm::rvsdg::SimpleNodePdAlloca_ {}
 

Detailed Description

PhiTest2 class.

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

static int32_t
a(int32_t*);
static int32_t
b(int32_t*);
static int32_t
c(int32_t*);
static int32_t
d(int32_t*);
static int32_t
eight()
{
return 8;
}
static int32_t
i(int32_t(*f)())
{
return f();
}
static int32_t
a(int32_t * x)
{
*x = 1;
int32_t pa;
return b(&pa) + d(&pa);
}
static int32_t
b(int32_t * x)
{
*x = 2;
int32_t pb;
return i(&eight) + c(&pb);
}
static int32_t
c(int32_t * x)
{
*x = 3;
int32_t pc;
return a(&pc) + *x;
}
static int32_t
d(int32_t * x)
{
*x = 4;
int32_t pd;
return a(&pd);
}
int32_t
test()
{
int32_t pTest;
return a(&pTest);
}

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

Definition at line 1492 of file TestRvsdgs.hpp.

Member Function Documentation

◆ GetCallAFromC()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallAFromC ( ) const
inlinenoexcept

Definition at line 1544 of file TestRvsdgs.hpp.

◆ GetCallAFromD()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallAFromD ( ) const
inlinenoexcept

Definition at line 1550 of file TestRvsdgs.hpp.

◆ GetCallAFromTest()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallAFromTest ( ) const
inlinenoexcept

Definition at line 1538 of file TestRvsdgs.hpp.

◆ GetCallB()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallB ( ) const
inlinenoexcept

Definition at line 1556 of file TestRvsdgs.hpp.

◆ GetCallC()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallC ( ) const
inlinenoexcept

Definition at line 1562 of file TestRvsdgs.hpp.

◆ GetCallD()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallD ( ) const
inlinenoexcept

Definition at line 1568 of file TestRvsdgs.hpp.

◆ GetCallI()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetCallI ( ) const
inlinenoexcept

Definition at line 1574 of file TestRvsdgs.hpp.

◆ GetIndirectCall()

rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetIndirectCall ( ) const
inlinenoexcept

Definition at line 1580 of file TestRvsdgs.hpp.

◆ GetLambdaA()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaA ( ) const
inlinenoexcept

Definition at line 1508 of file TestRvsdgs.hpp.

◆ GetLambdaB()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaB ( ) const
inlinenoexcept

Definition at line 1514 of file TestRvsdgs.hpp.

◆ GetLambdaC()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaC ( ) const
inlinenoexcept

Definition at line 1520 of file TestRvsdgs.hpp.

◆ GetLambdaD()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaD ( ) const
inlinenoexcept

Definition at line 1526 of file TestRvsdgs.hpp.

◆ GetLambdaEight()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaEight ( ) const
inlinenoexcept

Definition at line 1496 of file TestRvsdgs.hpp.

◆ GetLambdaI()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaI ( ) const
inlinenoexcept

Definition at line 1502 of file TestRvsdgs.hpp.

◆ GetLambdaTest()

jlm::rvsdg::LambdaNode& jlm::llvm::PhiTest2::GetLambdaTest ( ) const
inlinenoexcept

Definition at line 1532 of file TestRvsdgs.hpp.

◆ GetPaAlloca()

jlm::rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetPaAlloca ( ) const
inlinenoexcept

Definition at line 1592 of file TestRvsdgs.hpp.

◆ GetPbAlloca()

jlm::rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetPbAlloca ( ) const
inlinenoexcept

Definition at line 1598 of file TestRvsdgs.hpp.

◆ GetPcAlloca()

jlm::rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetPcAlloca ( ) const
inlinenoexcept

Definition at line 1604 of file TestRvsdgs.hpp.

◆ GetPdAlloca()

jlm::rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetPdAlloca ( ) const
inlinenoexcept

Definition at line 1610 of file TestRvsdgs.hpp.

◆ GetPTestAlloca()

jlm::rvsdg::SimpleNode& jlm::llvm::PhiTest2::GetPTestAlloca ( ) const
inlinenoexcept

Definition at line 1586 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 2310 of file TestRvsdgs.cpp.

Member Data Documentation

◆ CallAFromC_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallAFromC_ {}
private

Definition at line 1628 of file TestRvsdgs.hpp.

◆ CallAFromD_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallAFromD_ {}
private

Definition at line 1629 of file TestRvsdgs.hpp.

◆ CallAFromTest_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallAFromTest_ {}
private

Definition at line 1627 of file TestRvsdgs.hpp.

◆ CallB_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallB_ {}
private

Definition at line 1630 of file TestRvsdgs.hpp.

◆ CallC_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallC_ {}
private

Definition at line 1631 of file TestRvsdgs.hpp.

◆ CallD_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallD_ {}
private

Definition at line 1632 of file TestRvsdgs.hpp.

◆ CallI_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::CallI_ {}
private

Definition at line 1633 of file TestRvsdgs.hpp.

◆ IndirectCall_

rvsdg::SimpleNode* jlm::llvm::PhiTest2::IndirectCall_ {}
private

Definition at line 1634 of file TestRvsdgs.hpp.

◆ LambdaA_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaA_ {}
private

Definition at line 1621 of file TestRvsdgs.hpp.

◆ LambdaB_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaB_ {}
private

Definition at line 1622 of file TestRvsdgs.hpp.

◆ LambdaC_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaC_ {}
private

Definition at line 1623 of file TestRvsdgs.hpp.

◆ LambdaD_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaD_ {}
private

Definition at line 1624 of file TestRvsdgs.hpp.

◆ LambdaEight_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaEight_ {}
private

Definition at line 1619 of file TestRvsdgs.hpp.

◆ LambdaI_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaI_ {}
private

Definition at line 1620 of file TestRvsdgs.hpp.

◆ LambdaTest_

jlm::rvsdg::LambdaNode* jlm::llvm::PhiTest2::LambdaTest_ {}
private

Definition at line 1625 of file TestRvsdgs.hpp.

◆ PaAlloca_

jlm::rvsdg::SimpleNode* jlm::llvm::PhiTest2::PaAlloca_ {}
private

Definition at line 1637 of file TestRvsdgs.hpp.

◆ PbAlloca_

jlm::rvsdg::SimpleNode* jlm::llvm::PhiTest2::PbAlloca_ {}
private

Definition at line 1638 of file TestRvsdgs.hpp.

◆ PcAlloca_

jlm::rvsdg::SimpleNode* jlm::llvm::PhiTest2::PcAlloca_ {}
private

Definition at line 1639 of file TestRvsdgs.hpp.

◆ PdAlloca_

jlm::rvsdg::SimpleNode* jlm::llvm::PhiTest2::PdAlloca_ {}
private

Definition at line 1640 of file TestRvsdgs.hpp.

◆ PTestAlloca_

jlm::rvsdg::SimpleNode* jlm::llvm::PhiTest2::PTestAlloca_ {}
private

Definition at line 1636 of file TestRvsdgs.hpp.


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