Jlm
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
LocalAliasAnalysisTest1 Class Referencefinal
Inheritance diagram for LocalAliasAnalysisTest1:
Inheritance graph
[legend]
Collaboration diagram for LocalAliasAnalysisTest1:
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:

char* getPtr();
extern int global;
extern short globalShort;
extern int array[10];
void func(int** p) {
int alloca1, alloca2;
// Calculate the same offset in two ways
int* q = *p + 2;
int* qPlus2 = *p + 4;
int* qAgain = qPlus2 - 2;
// Different offsets into storage instances
int* arr1 = array + 1;
int* arr2 = array + 2;
int* arr3 = array + 3;
int* arrUnknown = array + global;
// Make alloca2 "escape" the function
*p = &alloca2;
char* bytePtr = getPtr();
char* bytePtrPlus2 = bytePtr + 2;
// All alias queries happen here
}

Definition at line 78 of file LocalAliasAnalysisTests.cpp.

Member Function Documentation

◆ GetOutputs()

const Outputs& LocalAliasAnalysisTest1::GetOutputs ( ) const
inlinenoexcept

Definition at line 103 of file LocalAliasAnalysisTests.cpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 110 of file LocalAliasAnalysisTests.cpp.

Member Data Documentation

◆ Outputs_

Outputs LocalAliasAnalysisTest1::Outputs_ = {}
private

Definition at line 244 of file LocalAliasAnalysisTests.cpp.


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