Jlm
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
PtGAliasAnalysisTest Class Referencefinal
Inheritance diagram for PtGAliasAnalysisTest:
Inheritance graph
[legend]
Collaboration diagram for PtGAliasAnalysisTest:
Collaboration graph
[legend]

Classes

struct  Outputs
 

Public Member Functions

const OutputsGetOutputs () 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

Outputs Outputs_ = {}
 

Detailed Description

This class sets up an RVSDG representing the following code:

int* global = nullptr;
static int* local = nullptr;
extern int* imported;
int* getPtr();
void func(int** p) {
int alloca1, alloca2, alloca3, alloca4;
int* q = *p;
*p = &alloca1;
// Load global values into virtual registers
int* globalLoad = global;
int* localLoad = local;
int* importedLoad = imported;
// Store to global values
global = &alloca2;
local = &alloca3;
imported = &alloca4;
int* r = getPtr();
// All alias queries happen here
}

Definition at line 72 of file PointsToGraphAliasAnalysisTests.cpp.

Member Function Documentation

◆ GetOutputs()

const Outputs& PtGAliasAnalysisTest::GetOutputs ( ) const
inlinenoexcept

Definition at line 95 of file PointsToGraphAliasAnalysisTests.cpp.

◆ SetupRvsdg()

std::unique_ptr<jlm::llvm::LlvmRvsdgModule> PtGAliasAnalysisTest::SetupRvsdg ( )
inlineoverrideprivatevirtual

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 102 of file PointsToGraphAliasAnalysisTests.cpp.

Member Data Documentation

◆ Outputs_

Outputs PtGAliasAnalysisTest::Outputs_ = {}
private

Definition at line 251 of file PointsToGraphAliasAnalysisTests.cpp.


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