Jlm
Functions
AndersenTests.cpp File Reference
#include <gtest/gtest.h>
#include <jlm/llvm/opt/alias-analyses/Andersen.hpp>
#include <jlm/llvm/opt/alias-analyses/PointsToGraph.hpp>
#include <jlm/llvm/TestRvsdgs.hpp>
#include <jlm/util/Statistics.hpp>
#include <cassert>
Include dependency graph for AndersenTests.cpp:

Go to the source code of this file.

Functions

static std::unique_ptr< jlm::llvm::aa::PointsToGraphRunAndersen (jlm::llvm::LlvmRvsdgModule &module)
 
static bool TargetsExactly (const jlm::llvm::aa::PointsToGraph &pointsToGraph, const jlm::llvm::aa::PointsToGraph::NodeIndex ptgNode, const std::unordered_set< jlm::llvm::aa::PointsToGraph::NodeIndex > &expectedTargets)
 Checks that the given PointsToGraph node points to exactly the given set of target nodes. More...
 
static bool EscapedIsExactly (const jlm::llvm::aa::PointsToGraph &pointsToGraph, const std::unordered_set< jlm::llvm::aa::PointsToGraph::NodeIndex > &nodes)
 Checks that the set of Memory Nodes escaping the PointsToGraph is exactly equal to the given set of nodes. The external node is included implicitly if omitted. More...
 
 TEST (AndersenTests, TestStore1)
 
 TEST (AndersenTests, TestStore2)
 
 TEST (AndersenTests, TestLoad1)
 
 TEST (AndersenTests, TestLoad2)
 
 TEST (AndersenTests, TestLoadFromUndef)
 
 TEST (AndersenTests, TestGetElementPtr)
 
 TEST (AndersenTests, TestBitCast)
 
 TEST (AndersenTests, TestConstantPointerNull)
 
 TEST (AndersenTests, TestBits2Ptr)
 
 TEST (AndersenTests, TestCall1)
 
 TEST (AndersenTests, TestCall2)
 
 TEST (AndersenTests, TestIndirectCall1)
 
 TEST (AndersenTests, TestIndirectCall2)
 
 TEST (AndersenTests, TestExternalCall1)
 
 TEST (AndersenTests, TestGamma)
 
 TEST (AndersenTests, TestTheta)
 
 TEST (AndersenTests, TestDelta1)
 
 TEST (AndersenTests, TestDelta2)
 
 TEST (AndersenTests, TestImports)
 
 TEST (AndersenTests, TestPhi1)
 
 TEST (AndersenTests, TestExternalMemory)
 
 TEST (AndersenTests, TestEscapedMemory1)
 
 TEST (AndersenTests, TestEscapedMemory2)
 
 TEST (AndersenTests, TestEscapedMemory3)
 
 TEST (AndersenTests, TestMemcpy)
 
 TEST (AndersenTests, TestLinkedList)
 
 TEST (AndersenTests, TestStatistics)
 
 TEST (AndersenTests, TestConfiguration)
 
 TEST (AndersenTests, TestConstructPointsToGraph)
 

Function Documentation

◆ EscapedIsExactly()

static bool EscapedIsExactly ( const jlm::llvm::aa::PointsToGraph pointsToGraph,
const std::unordered_set< jlm::llvm::aa::PointsToGraph::NodeIndex > &  nodes 
)
static

Checks that the set of Memory Nodes escaping the PointsToGraph is exactly equal to the given set of nodes. The external node is included implicitly if omitted.

Parameters
pointsToGraphthe PointsToGraph
nodesthe complete set of nodes that should have escaped
Returns
true if the pointsToGraph's escaped set is identical to nodes, false otherwise.

Definition at line 59 of file AndersenTests.cpp.

◆ RunAndersen()

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

Definition at line 16 of file AndersenTests.cpp.

◆ TargetsExactly()

static bool TargetsExactly ( const jlm::llvm::aa::PointsToGraph pointsToGraph,
const jlm::llvm::aa::PointsToGraph::NodeIndex  ptgNode,
const std::unordered_set< jlm::llvm::aa::PointsToGraph::NodeIndex > &  expectedTargets 
)
static

Checks that the given PointsToGraph node points to exactly the given set of target nodes.

Parameters
pointsToGraph
ptgNodethe source node
expectedTargetsa set of nodes that node should point to.
Returns
false if the check fails, true otherwise

Definition at line 32 of file AndersenTests.cpp.

◆ TEST() [1/29]

TEST ( AndersenTests  ,
TestBitCast   
)

Definition at line 245 of file AndersenTests.cpp.

◆ TEST() [2/29]

TEST ( AndersenTests  ,
TestBits2Ptr   
)

Definition at line 286 of file AndersenTests.cpp.

◆ TEST() [3/29]

TEST ( AndersenTests  ,
TestCall1   
)

Definition at line 306 of file AndersenTests.cpp.

◆ TEST() [4/29]

TEST ( AndersenTests  ,
TestCall2   
)

Definition at line 360 of file AndersenTests.cpp.

◆ TEST() [5/29]

TEST ( AndersenTests  ,
TestConfiguration   
)

Definition at line 897 of file AndersenTests.cpp.

◆ TEST() [6/29]

TEST ( AndersenTests  ,
TestConstantPointerNull   
)

Definition at line 265 of file AndersenTests.cpp.

◆ TEST() [7/29]

TEST ( AndersenTests  ,
TestConstructPointsToGraph   
)

Definition at line 946 of file AndersenTests.cpp.

◆ TEST() [8/29]

TEST ( AndersenTests  ,
TestDelta1   
)

Definition at line 555 of file AndersenTests.cpp.

◆ TEST() [9/29]

TEST ( AndersenTests  ,
TestDelta2   
)

Definition at line 589 of file AndersenTests.cpp.

◆ TEST() [10/29]

TEST ( AndersenTests  ,
TestEscapedMemory1   
)

Definition at line 726 of file AndersenTests.cpp.

◆ TEST() [11/29]

TEST ( AndersenTests  ,
TestEscapedMemory2   
)

Definition at line 759 of file AndersenTests.cpp.

◆ TEST() [12/29]

TEST ( AndersenTests  ,
TestEscapedMemory3   
)

Definition at line 804 of file AndersenTests.cpp.

◆ TEST() [13/29]

TEST ( AndersenTests  ,
TestExternalCall1   
)

Definition at line 467 of file AndersenTests.cpp.

◆ TEST() [14/29]

TEST ( AndersenTests  ,
TestExternalMemory   
)

Definition at line 708 of file AndersenTests.cpp.

◆ TEST() [15/29]

TEST ( AndersenTests  ,
TestGamma   
)

Definition at line 491 of file AndersenTests.cpp.

◆ TEST() [16/29]

TEST ( AndersenTests  ,
TestGetElementPtr   
)

Definition at line 224 of file AndersenTests.cpp.

◆ TEST() [17/29]

TEST ( AndersenTests  ,
TestImports   
)

Definition at line 628 of file AndersenTests.cpp.

◆ TEST() [18/29]

TEST ( AndersenTests  ,
TestIndirectCall1   
)

Definition at line 406 of file AndersenTests.cpp.

◆ TEST() [19/29]

TEST ( AndersenTests  ,
TestIndirectCall2   
)

Definition at line 447 of file AndersenTests.cpp.

◆ TEST() [20/29]

TEST ( AndersenTests  ,
TestLinkedList   
)

Definition at line 853 of file AndersenTests.cpp.

◆ TEST() [21/29]

TEST ( AndersenTests  ,
TestLoad1   
)

Definition at line 157 of file AndersenTests.cpp.

◆ TEST() [22/29]

TEST ( AndersenTests  ,
TestLoad2   
)

Definition at line 179 of file AndersenTests.cpp.

◆ TEST() [23/29]

TEST ( AndersenTests  ,
TestLoadFromUndef   
)

Definition at line 209 of file AndersenTests.cpp.

◆ TEST() [24/29]

TEST ( AndersenTests  ,
TestMemcpy   
)

Definition at line 829 of file AndersenTests.cpp.

◆ TEST() [25/29]

TEST ( AndersenTests  ,
TestPhi1   
)

Definition at line 667 of file AndersenTests.cpp.

◆ TEST() [26/29]

TEST ( AndersenTests  ,
TestStatistics   
)

Definition at line 875 of file AndersenTests.cpp.

◆ TEST() [27/29]

TEST ( AndersenTests  ,
TestStore1   
)

Definition at line 73 of file AndersenTests.cpp.

◆ TEST() [28/29]

TEST ( AndersenTests  ,
TestStore2   
)

Definition at line 115 of file AndersenTests.cpp.

◆ TEST() [29/29]

TEST ( AndersenTests  ,
TestTheta   
)

Definition at line 527 of file AndersenTests.cpp.