Jlm
Loading...
Searching...
No Matches
Typedefs | Functions
RegionAwareModRefSummarizerTests.cpp File Reference
#include <gtest/gtest.h>
#include <jlm/llvm/DotWriter.hpp>
#include <jlm/llvm/ir/CallingConvention.hpp>
#include <jlm/llvm/ir/operators/alloca.hpp>
#include <jlm/llvm/ir/operators/IntegerOperations.hpp>
#include <jlm/llvm/ir/operators/Load.hpp>
#include <jlm/llvm/ir/operators/operators.hpp>
#include <jlm/llvm/ir/operators/Store.hpp>
#include <jlm/llvm/opt/alias-analyses/Andersen.hpp>
#include <jlm/llvm/opt/alias-analyses/ModRefSummary.hpp>
#include <jlm/llvm/opt/alias-analyses/RegionAwareModRefSummarizer.hpp>
#include <jlm/llvm/TestRvsdgs.hpp>
#include <jlm/rvsdg/simple-node.hpp>
#include <jlm/rvsdg/UnitType.hpp>
#include <jlm/rvsdg/view.hpp>
#include <jlm/util/common.hpp>
#include <jlm/util/Statistics.hpp>
#include <unordered_map>
Include dependency graph for RegionAwareModRefSummarizerTests.cpp:

Go to the source code of this file.

Typedefs

using NodeIndex = jlm::llvm::aa::PointsToGraph::NodeIndex
 

Functions

static std::unique_ptr< jlm::llvm::aa::PointsToGraphRunAndersen (jlm::llvm::LlvmRvsdgModule &rvsdgModule)
 
static const char * effectToString (ModRefEffect effect)
 
static std::unordered_map< NodeIndex, ModRefEffect > allWithEffect (const jlm::util::HashSet< NodeIndex > &memoryNodes, ModRefEffect effect)
 
static bool assertSetContains (const jlm::llvm::aa::ModRefSet &receivedMemoryNodes, std::unordered_map< NodeIndex, ModRefEffect > expectedEffects)
 
 TEST (RegionAwareModRefSummarizerTests, TestStore1)
 
 TEST (RegionAwareModRefSummarizerTests, TestStore2)
 
 TEST (RegionAwareModRefSummarizerTests, TestLoad1)
 
 TEST (RegionAwareModRefSummarizerTests, TestLoad2)
 
 TEST (RegionAwareModRefSummarizerTests, TestLoadFromUndef)
 
 TEST (RegionAwareModRefSummarizerTests, TestCall1)
 
 TEST (RegionAwareModRefSummarizerTests, TestCall2)
 
 TEST (RegionAwareModRefSummarizerTests, TestIndirectCall)
 
 TEST (RegionAwareModRefSummarizerTests, TestIndirectCall2)
 
 TEST (RegionAwareModRefSummarizerTests, TestGamma)
 
 TEST (RegionAwareModRefSummarizerTests, TestTheta)
 
 TEST (RegionAwareModRefSummarizerTests, TestDelta1)
 
 TEST (RegionAwareModRefSummarizerTests, TestDelta2)
 
 TEST (RegionAwareModRefSummarizerTests, TestImports)
 
 TEST (RegionAwareModRefSummarizerTests, TestPhi1)
 
 TEST (RegionAwareModRefSummarizerTests, TestPhi2)
 
 TEST (RegionAwareModRefSummarizerTests, TestPhiWithDelta)
 
 TEST (RegionAwareModRefSummarizerTests, TestMemcpy)
 
 TEST (RegionAwareModRefSummarizerTests, TestEscapedMemory1)
 
 TEST (RegionAwareModRefSummarizerTests, TestEscapedMemory2)
 
 TEST (RegionAwareModRefSummarizerTests, TestEscapedMemory3)
 
 TEST (RegionAwareModRefSummarizerTests, testSetjmpHandling)
 
 TEST (RegionAwareModRefSummarizerTests, TestEscapedFunction)
 
 TEST (RegionAwareModRefSummarizerTests, TestStatistics)
 

Typedef Documentation

◆ NodeIndex

Definition at line 28 of file RegionAwareModRefSummarizerTests.cpp.

Function Documentation

◆ allWithEffect()

static std::unordered_map< NodeIndex, ModRefEffect > allWithEffect ( const jlm::util::HashSet< NodeIndex > &  memoryNodes,
ModRefEffect  effect 
)
static

Definition at line 57 of file RegionAwareModRefSummarizerTests.cpp.

◆ assertSetContains()

static bool assertSetContains ( const jlm::llvm::aa::ModRefSet receivedMemoryNodes,
std::unordered_map< NodeIndex, ModRefEffect >  expectedEffects 
)
static

Definition at line 67 of file RegionAwareModRefSummarizerTests.cpp.

◆ effectToString()

static const char * effectToString ( ModRefEffect  effect)
static

Definition at line 38 of file RegionAwareModRefSummarizerTests.cpp.

◆ RunAndersen()

static std::unique_ptr< jlm::llvm::aa::PointsToGraph > RunAndersen ( jlm::llvm::LlvmRvsdgModule rvsdgModule)
static

Definition at line 31 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [1/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestCall1   
)

Definition at line 312 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [2/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestCall2   
)

Definition at line 394 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [3/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestDelta1   
)

Definition at line 780 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [4/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestDelta2   
)

Definition at line 836 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [5/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestEscapedFunction   
)

Creates the RVSDG equivalent of the program

void opaque(); static int global;

void f() { global = global + 1; opaque(); return global; }

The ModRefSet for the call to opaque() should contain the global variable "global", since f() can be called from external functions.

Definition at line 1683 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [6/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestEscapedMemory1   
)

Definition at line 1255 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [7/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestEscapedMemory2   
)

Definition at line 1299 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [8/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestEscapedMemory3   
)

Definition at line 1395 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [9/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestGamma   
)

Definition at line 694 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [10/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestImports   
)

Definition at line 896 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [11/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestIndirectCall   
)

Definition at line 483 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [12/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestIndirectCall2   
)

Definition at line 564 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [13/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestLoad1   
)

Definition at line 195 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [14/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestLoad2   
)

Definition at line 245 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [15/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestLoadFromUndef   
)

Definition at line 278 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [16/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestMemcpy   
)

Definition at line 1190 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [17/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestPhi1   
)

Definition at line 956 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [18/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestPhi2   
)

Definition at line 1021 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [19/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestPhiWithDelta   
)

Definition at line 1172 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [20/24]

TEST ( RegionAwareModRefSummarizerTests  ,
testSetjmpHandling   
)

Definition at line 1442 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [21/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestStatistics   
)

Definition at line 1782 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [22/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestStore1   
)

Definition at line 105 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [23/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestStore2   
)

Definition at line 149 of file RegionAwareModRefSummarizerTests.cpp.

◆ TEST() [24/24]

TEST ( RegionAwareModRefSummarizerTests  ,
TestTheta   
)

Definition at line 738 of file RegionAwareModRefSummarizerTests.cpp.