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

void func(int1_t x, int32_t* ptr) {
int32_t alloca1
int64_t alloca2;
int32_t alloca3[2];
// Using a gamma node
int32_t* allocaUnknown;
if (x)
allocaUnknown = &alloca1;
else
allocaUnknown = (int32_t*) &alloca2;
int32_t* allocaUnknownPlus1 = allocaUnknown + 1;
int32_t* alloca3Plus1 = alloca3 + 1;
// Using a select operation
int32_t* alloca3UnknownOffset = x ? alloca3 : alloca3Plus1;
// Using a select operation that is actually a nop
int32_t* alloca3KnownOffset = x ? alloca3Plus1 : alloca3Plus1;
// All alias queries happen here
}

Definition at line 357 of file LocalAliasAnalysisTests.cpp.

Member Function Documentation

◆ GetOutputs()

const Outputs& LocalAliasAnalysisTest2::GetOutputs ( ) const
inlinenoexcept

Definition at line 376 of file LocalAliasAnalysisTests.cpp.

◆ SetupRvsdg()

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

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 383 of file LocalAliasAnalysisTests.cpp.

Member Data Documentation

◆ Outputs_

Outputs LocalAliasAnalysisTest2::Outputs_ = {}
private

Definition at line 464 of file LocalAliasAnalysisTests.cpp.


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