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

RVSDG module with a static function escaping through another function. More...

#include <TestRvsdgs.hpp>

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

Public Member Functions

const jlm::rvsdg::DeltaNodeGetGlobal () const noexcept
 
const jlm::rvsdg::LambdaNodeGetLocalFunction () const noexcept
 
const jlm::rvsdg::OutputGetLocalFunctionRegister () const noexcept
 
const jlm::rvsdg::OutputGetLocalFunctionParam () const noexcept
 
const rvsdg::NodeGetLocalFunctionParamAllocaNode () const noexcept
 
const jlm::rvsdg::LambdaNodeGetExportedFunction () 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::DeltaNodeGlobal_ = {}
 
jlm::rvsdg::LambdaNodeLocalFunc_ = {}
 
jlm::rvsdg::OutputLocalFuncParam_ = {}
 
jlm::rvsdg::OutputLocalFuncRegister_ = {}
 
rvsdg::NodeLocalFuncParamAllocaNode_ = {}
 
jlm::rvsdg::LambdaNodeExportedFunc_ = {}
 

Detailed Description

RVSDG module with a static function escaping through another function.

The class sets up an RVSDG module corresponding to the code:

static uint32_t global;
static uint32_t* localFunc(uint32_t* param)
{
return &global;
}
typedef uint32_t* localFuncSignature(uint32_t*);
localFuncSignature* exportedFunc()
{
return localFunc;
}

It provides getters for the alloca nodes themselves, and for their outputs.

Definition at line 2274 of file TestRvsdgs.hpp.

Member Function Documentation

◆ GetExportedFunction()

const jlm::rvsdg::LambdaNode& jlm::llvm::EscapingLocalFunctionTest::GetExportedFunction ( ) const
inlinenoexcept

Definition at line 2313 of file TestRvsdgs.hpp.

◆ GetGlobal()

const jlm::rvsdg::DeltaNode& jlm::llvm::EscapingLocalFunctionTest::GetGlobal ( ) const
inlinenoexcept

Definition at line 2278 of file TestRvsdgs.hpp.

◆ GetLocalFunction()

const jlm::rvsdg::LambdaNode& jlm::llvm::EscapingLocalFunctionTest::GetLocalFunction ( ) const
inlinenoexcept

Definition at line 2285 of file TestRvsdgs.hpp.

◆ GetLocalFunctionParam()

const jlm::rvsdg::Output& jlm::llvm::EscapingLocalFunctionTest::GetLocalFunctionParam ( ) const
inlinenoexcept

Definition at line 2299 of file TestRvsdgs.hpp.

◆ GetLocalFunctionParamAllocaNode()

const rvsdg::Node& jlm::llvm::EscapingLocalFunctionTest::GetLocalFunctionParamAllocaNode ( ) const
inlinenoexcept

Definition at line 2306 of file TestRvsdgs.hpp.

◆ GetLocalFunctionRegister()

const jlm::rvsdg::Output& jlm::llvm::EscapingLocalFunctionTest::GetLocalFunctionRegister ( ) const
inlinenoexcept

Definition at line 2292 of file TestRvsdgs.hpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 3729 of file TestRvsdgs.cpp.

Member Data Documentation

◆ ExportedFunc_

jlm::rvsdg::LambdaNode* jlm::llvm::EscapingLocalFunctionTest::ExportedFunc_ = {}
private

Definition at line 2328 of file TestRvsdgs.hpp.

◆ Global_

jlm::rvsdg::DeltaNode* jlm::llvm::EscapingLocalFunctionTest::Global_ = {}
private

Definition at line 2323 of file TestRvsdgs.hpp.

◆ LocalFunc_

jlm::rvsdg::LambdaNode* jlm::llvm::EscapingLocalFunctionTest::LocalFunc_ = {}
private

Definition at line 2324 of file TestRvsdgs.hpp.

◆ LocalFuncParam_

jlm::rvsdg::Output* jlm::llvm::EscapingLocalFunctionTest::LocalFuncParam_ = {}
private

Definition at line 2325 of file TestRvsdgs.hpp.

◆ LocalFuncParamAllocaNode_

rvsdg::Node* jlm::llvm::EscapingLocalFunctionTest::LocalFuncParamAllocaNode_ = {}
private

Definition at line 2327 of file TestRvsdgs.hpp.

◆ LocalFuncRegister_

jlm::rvsdg::Output* jlm::llvm::EscapingLocalFunctionTest::LocalFuncRegister_ = {}
private

Definition at line 2326 of file TestRvsdgs.hpp.


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