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

IndirectCallTest1 class. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

const rvsdg::SimpleNode & CallIndcall () const noexcept
 
const rvsdg::SimpleNode & CallThree () const noexcept
 
const rvsdg::SimpleNode & CallFour () const noexcept
 
const jlm::rvsdg::LambdaNode & GetLambdaThree () const noexcept
 
const jlm::rvsdg::LambdaNode & GetLambdaFour () const noexcept
 
const jlm::rvsdg::LambdaNode & GetLambdaIndcall () const noexcept
 
const jlm::rvsdg::LambdaNode & GetLambdaTest () 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< jlm::llvm::LlvmRvsdgModule > SetupRvsdg () override
 Create RVSDG for this test.
 

Private Attributes

rvsdg::SimpleNode * CallIndcall_ {}
 
rvsdg::SimpleNode * CallThree_ {}
 
rvsdg::SimpleNode * CallFour_ {}
 
jlm::rvsdg::LambdaNode * LambdaThree_ {}
 
jlm::rvsdg::LambdaNode * LambdaFour_ {}
 
jlm::rvsdg::LambdaNode * LambdaIndcall_ {}
 
jlm::rvsdg::LambdaNode * LambdaTest_ {}
 

Detailed Description

IndirectCallTest1 class.

This function sets up an RVSDG representing the following function:

static uint32_t
four()
{
return 4;
}
static uint32_t
three()
{
return 3;
}
static uint32_t
indcall(uint32_t (*f)())
{
return (*f)();
}
uint32_t
test()
{
return indcall(&four) + indcall(&three);
}

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

Definition at line 565 of file TestRvsdgs.hpp.

Member Function Documentation

◆ CallFour()

const rvsdg::SimpleNode & jlm::llvm::IndirectCallTest1::CallFour ( ) const
inlinenoexcept

Definition at line 581 of file TestRvsdgs.hpp.

◆ CallIndcall()

const rvsdg::SimpleNode & jlm::llvm::IndirectCallTest1::CallIndcall ( ) const
inlinenoexcept

Definition at line 569 of file TestRvsdgs.hpp.

◆ CallThree()

const rvsdg::SimpleNode & jlm::llvm::IndirectCallTest1::CallThree ( ) const
inlinenoexcept

Definition at line 575 of file TestRvsdgs.hpp.

◆ GetLambdaFour()

const jlm::rvsdg::LambdaNode & jlm::llvm::IndirectCallTest1::GetLambdaFour ( ) const
inlinenoexcept

Definition at line 593 of file TestRvsdgs.hpp.

◆ GetLambdaIndcall()

const jlm::rvsdg::LambdaNode & jlm::llvm::IndirectCallTest1::GetLambdaIndcall ( ) const
inlinenoexcept

Definition at line 599 of file TestRvsdgs.hpp.

◆ GetLambdaTest()

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

Definition at line 605 of file TestRvsdgs.hpp.

◆ GetLambdaThree()

const jlm::rvsdg::LambdaNode & jlm::llvm::IndirectCallTest1::GetLambdaThree ( ) const
inlinenoexcept

Definition at line 587 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 787 of file TestRvsdgs.cpp.

Member Data Documentation

◆ CallFour_

rvsdg::SimpleNode* jlm::llvm::IndirectCallTest1::CallFour_ {}
private

Definition at line 616 of file TestRvsdgs.hpp.

◆ CallIndcall_

rvsdg::SimpleNode* jlm::llvm::IndirectCallTest1::CallIndcall_ {}
private

Definition at line 614 of file TestRvsdgs.hpp.

◆ CallThree_

rvsdg::SimpleNode* jlm::llvm::IndirectCallTest1::CallThree_ {}
private

Definition at line 615 of file TestRvsdgs.hpp.

◆ LambdaFour_

jlm::rvsdg::LambdaNode* jlm::llvm::IndirectCallTest1::LambdaFour_ {}
private

Definition at line 619 of file TestRvsdgs.hpp.

◆ LambdaIndcall_

jlm::rvsdg::LambdaNode* jlm::llvm::IndirectCallTest1::LambdaIndcall_ {}
private

Definition at line 620 of file TestRvsdgs.hpp.

◆ LambdaTest_

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

Definition at line 621 of file TestRvsdgs.hpp.

◆ LambdaThree_

jlm::rvsdg::LambdaNode* jlm::llvm::IndirectCallTest1::LambdaThree_ {}
private

Definition at line 618 of file TestRvsdgs.hpp.


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