6 #ifndef JLM_LLVM_TESTRVSDGS_HPP
7 #define JLM_LLVM_TESTRVSDGS_HPP
61 virtual std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
64 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
module_;
91 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
129 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
163 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
202 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
238 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
281 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
305 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
362 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
387 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
427 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
522 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
611 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
798 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
863 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
928 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
963 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1088 std::unique_ptr<llvm::LlvmRvsdgModule>
1127 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1177 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1225 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1290 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1344 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1412 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1616 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1669 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1694 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1726 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1775 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1815 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1897 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
1973 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2028 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2081 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2177 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2214 [[nodiscard]]
size_t
2242 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2320 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
2375 std::unique_ptr<llvm::LlvmRvsdgModule>
2408 std::unique_ptr<llvm::LlvmRvsdgModule>
2479 std::unique_ptr<llvm::LlvmRvsdgModule>
2547 std::unique_ptr<jlm::llvm::LlvmRvsdgModule>
RVSDG module with one of each memory node type.
jlm::llvm::LlvmGraphImport * Import_
const rvsdg::SimpleNode & GetAllocaNode() const noexcept
const rvsdg::Output & GetLambdaOutput() const noexcept
rvsdg::SimpleNode * Alloca_
const jlm::rvsdg::LambdaNode & GetLambdaNode() const noexcept
const jlm::rvsdg::Output & GetAllocaOutput() const noexcept
const rvsdg::Output & GetDeltaOutput() const noexcept
const llvm::LlvmGraphImport & GetImportOutput() const noexcept
jlm::rvsdg::LambdaNode * Lambda_
rvsdg::SimpleNode * Malloc_
const rvsdg::SimpleNode & GetMallocNode() const noexcept
const jlm::rvsdg::DeltaNode & GetDeltaNode() const noexcept
const jlm::rvsdg::Output & GetMallocOutput() const noexcept
jlm::rvsdg::DeltaNode * Delta_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * lambda
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const jlm::rvsdg::LambdaNode & GetLambdaBits2Ptr() const noexcept
jlm::rvsdg::LambdaNode * LambdaTest_
rvsdg::SimpleNode * CallNode_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * BitsToPtrNode_
jlm::rvsdg::LambdaNode * LambdaBits2Ptr_
const jlm::rvsdg::LambdaNode & GetLambdaTest() const noexcept
const rvsdg::Node & GetBitsToPtrNode() const noexcept
const rvsdg::SimpleNode & GetCallNode() const noexcept
rvsdg::SimpleNode * CallF_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode * CallG_
rvsdg::SimpleNode * alloca_y
const rvsdg::SimpleNode & CallG() const noexcept
rvsdg::SimpleNode * alloca_z
jlm::rvsdg::LambdaNode * lambda_g
jlm::rvsdg::LambdaNode * lambda_f
rvsdg::SimpleNode * alloca_x
const rvsdg::SimpleNode & CallF() const noexcept
jlm::rvsdg::LambdaNode * lambda_h
jlm::rvsdg::LambdaNode * lambda_test
const rvsdg::SimpleNode & CallCreate2() const noexcept
rvsdg::SimpleNode * CallCreate1_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode * CallDestroy1_
rvsdg::SimpleNode * CallCreate2_
jlm::rvsdg::LambdaNode * lambda_create
const rvsdg::SimpleNode & CallDestroy2() const noexcept
jlm::rvsdg::LambdaNode * lambda_destroy
const rvsdg::SimpleNode & CallDestroy1() const noexcept
const rvsdg::SimpleNode & CallCreate1() const noexcept
rvsdg::SimpleNode * malloc
rvsdg::SimpleNode * CallDestroy2_
ConstantPointerNullTest class.
jlm::rvsdg::LambdaNode * lambda
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * constantPointerNullNode
jlm::rvsdg::DeltaNode * delta_f
jlm::rvsdg::LambdaNode * lambda_h
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * constantFive
rvsdg::SimpleNode * CallG_
jlm::rvsdg::LambdaNode * lambda_g
const rvsdg::SimpleNode & CallG() const noexcept
jlm::rvsdg::LambdaNode * lambda_f2
jlm::rvsdg::LambdaNode * lambda_f1
rvsdg::SimpleNode * CallF1_
const rvsdg::SimpleNode & CallF1() const noexcept
jlm::rvsdg::DeltaNode * delta_d2
jlm::rvsdg::DeltaNode * delta_d1
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const rvsdg::SimpleNode & CallF() const noexcept
const jlm::rvsdg::DeltaNode & DeltaG2() const noexcept
jlm::rvsdg::DeltaNode * DeltaG2_
jlm::rvsdg::LambdaNode * LambdaTest_
rvsdg::SimpleNode * CallF_
const jlm::rvsdg::LambdaNode & LambdaTest() const noexcept
jlm::rvsdg::DeltaNode * DeltaG1_
jlm::rvsdg::LambdaNode * LambdaF_
const jlm::rvsdg::DeltaNode & DeltaG1() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const jlm::rvsdg::LambdaNode & LambdaF() const noexcept
EscapedMemoryTest1 class.
jlm::rvsdg::DeltaNode * DeltaX
jlm::rvsdg::DeltaNode * DeltaA
jlm::rvsdg::DeltaNode * DeltaB
jlm::rvsdg::LambdaNode * LambdaTest
rvsdg::SimpleNode * LoadNode1
jlm::rvsdg::DeltaNode * DeltaY
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
EscapedMemoryTest2 class.
jlm::rvsdg::LambdaNode * CallExternalFunction2
rvsdg::SimpleNode * ExternalFunction1Call
rvsdg::SimpleNode * ReturnAddressMalloc
jlm::rvsdg::LambdaNode * CallExternalFunction1
rvsdg::SimpleNode * ExternalFunction2Call
jlm::rvsdg::LambdaNode * ReturnAddressFunction
jlm::rvsdg::GraphImport * ExternalFunction1Import
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::GraphImport * ExternalFunction2Import
rvsdg::SimpleNode * CallExternalFunction1Malloc
rvsdg::SimpleNode * LoadNode
EscapedMemoryTest3 class.
rvsdg::SimpleNode * CallExternalFunction
rvsdg::SimpleNode * LoadNode
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::GraphImport * ImportExternalFunction
jlm::rvsdg::DeltaNode * DeltaGlobal
jlm::rvsdg::LambdaNode * LambdaTest
RVSDG module with a static function escaping through another function.
jlm::rvsdg::Output * LocalFuncParam_
jlm::rvsdg::LambdaNode * ExportedFunc_
const rvsdg::Node & GetLocalFunctionParamAllocaNode() const noexcept
const jlm::rvsdg::LambdaNode & GetExportedFunction() const noexcept
const jlm::rvsdg::Output & GetLocalFunctionParam() const noexcept
rvsdg::Node * LocalFuncParamAllocaNode_
const jlm::rvsdg::DeltaNode & GetGlobal() const noexcept
jlm::rvsdg::DeltaNode * Global_
jlm::rvsdg::Output * LocalFuncRegister_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * LocalFunc_
const jlm::rvsdg::LambdaNode & GetLocalFunction() const noexcept
const jlm::rvsdg::Output & GetLocalFunctionRegister() const noexcept
const jlm::rvsdg::GraphImport & ExternalGArgument() const noexcept
jlm::rvsdg::GraphImport * ExternalGArgument_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * LambdaF_
const jlm::rvsdg::LambdaNode & LambdaF() const noexcept
rvsdg::SimpleNode * CallG_
const rvsdg::SimpleNode & CallG() const noexcept
jlm::rvsdg::LambdaNode & LambdaG()
rvsdg::SimpleNode & CallF()
jlm::rvsdg::RegionArgument & ExternalF()
jlm::rvsdg::LambdaNode * LambdaG_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::RegionArgument * ExternalFArgument_
rvsdg::SimpleNode * CallF_
ExternalMemoryTest class.
jlm::rvsdg::LambdaNode * LambdaF
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
RVSDG module with a call to free(NULL).
rvsdg::LambdaNode & LambdaMain() const noexcept
std::unique_ptr< llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::LambdaNode * LambdaMain_
rvsdg::Node & GetAllocaYFromG() const noexcept
rvsdg::LambdaNode * LambdaH_
rvsdg::Node & GetAllocaXFromH() const noexcept
rvsdg::Node * AllocaYFromH_
rvsdg::LambdaNode * LambdaG_
rvsdg::LambdaNode & GetLambdaG() const noexcept
rvsdg::GammaNode * Gamma_
rvsdg::SimpleNode & GetCallFromG() const noexcept
rvsdg::GammaNode & GetGamma() const noexcept
rvsdg::Node * AllocaXFromG_
rvsdg::LambdaNode * LambdaF_
rvsdg::Node & GetAllocaYFromH() const noexcept
rvsdg::Node * AllocaXFromH_
rvsdg::LambdaNode & GetLambdaH() const noexcept
rvsdg::Node & GetAllocaZ() const noexcept
rvsdg::LambdaNode & GetLambdaF() const noexcept
rvsdg::SimpleNode * CallFromH_
std::unique_ptr< llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * AllocaYFromG_
rvsdg::Node & GetAllocaXFromG() const noexcept
rvsdg::SimpleNode & GetCallFromH() const noexcept
rvsdg::SimpleNode * CallFromG_
jlm::rvsdg::LambdaNode * lambda
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * getElementPtrX
rvsdg::Node * getElementPtrY
jlm::rvsdg::LambdaNode * lambda
rvsdg::SimpleNode * CallF1_
jlm::rvsdg::LambdaNode * lambda_f1
jlm::rvsdg::LambdaNode * lambda_f2
jlm::rvsdg::GraphImport * import_d2
jlm::rvsdg::GraphImport * import_d1
const rvsdg::SimpleNode & CallF1() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * LambdaIndcall_
rvsdg::SimpleNode * CallFour_
const jlm::rvsdg::LambdaNode & GetLambdaTest() const noexcept
const jlm::rvsdg::LambdaNode & GetLambdaIndcall() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * LambdaFour_
const rvsdg::SimpleNode & CallThree() const noexcept
const jlm::rvsdg::LambdaNode & GetLambdaFour() const noexcept
const rvsdg::SimpleNode & CallIndcall() const noexcept
rvsdg::SimpleNode * CallIndcall_
const jlm::rvsdg::LambdaNode & GetLambdaThree() const noexcept
jlm::rvsdg::LambdaNode * LambdaTest_
const rvsdg::SimpleNode & CallFour() const noexcept
jlm::rvsdg::LambdaNode * LambdaThree_
rvsdg::SimpleNode * CallThree_
rvsdg::SimpleNode * CallIWithThree_
rvsdg::SimpleNode & GetCallY() const noexcept
rvsdg::SimpleNode * IndirectCall_
jlm::rvsdg::SimpleNode * AllocaPx_
rvsdg::SimpleNode * CallIWithFour_
rvsdg::SimpleNode & GetTest2CallX() const noexcept
jlm::rvsdg::DeltaNode * DeltaG1_
jlm::rvsdg::SimpleNode * AllocaPy_
jlm::rvsdg::LambdaNode * LambdaThree_
rvsdg::SimpleNode * TestCallX_
rvsdg::SimpleNode * CallY_
rvsdg::SimpleNode * Test2CallX_
jlm::rvsdg::LambdaNode * LambdaY_
rvsdg::SimpleNode & GetCallIWithFour() const noexcept
jlm::rvsdg::SimpleNode * AllocaPz_
jlm::rvsdg::LambdaNode * LambdaFour_
jlm::rvsdg::LambdaNode & GetLambdaI() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaFour() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode & GetLambdaTest() const noexcept
rvsdg::SimpleNode & GetCallIWithThree() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaTest2() const noexcept
jlm::rvsdg::SimpleNode & GetAllocaPy() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaX() const noexcept
rvsdg::SimpleNode & GetIndirectCall() const noexcept
jlm::rvsdg::LambdaNode * LambdaTest_
jlm::rvsdg::LambdaNode * LambdaTest2_
jlm::rvsdg::LambdaNode & GetLambdaY() const noexcept
jlm::rvsdg::SimpleNode & GetAllocaPz() const noexcept
jlm::rvsdg::LambdaNode * LambdaX_
jlm::rvsdg::DeltaNode & GetDeltaG2() const noexcept
jlm::rvsdg::LambdaNode * LambdaI_
rvsdg::SimpleNode & GetTestCallX() const noexcept
jlm::rvsdg::DeltaNode & GetDeltaG1() const noexcept
jlm::rvsdg::DeltaNode * DeltaG2_
jlm::rvsdg::LambdaNode & GetLambdaThree() const noexcept
jlm::rvsdg::SimpleNode & GetAllocaPx() const noexcept
RVSDG module containing a static function that is called with the wrong number of arguments.
rvsdg::LambdaNode * LambdaMain_
rvsdg::SimpleNode * Call_
rvsdg::LambdaNode * LambdaG_
const rvsdg::SimpleNode & GetCall() const noexcept
const rvsdg::LambdaNode & GetLambdaG() const noexcept
std::unique_ptr< llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const rvsdg::LambdaNode & GetLambdaMain() const noexcept
const jlm::rvsdg::DeltaNode & GetDeltaMyList() const noexcept
jlm::rvsdg::LambdaNode * LambdaNext_
const rvsdg::SimpleNode & GetAlloca() const noexcept
rvsdg::SimpleNode * Alloca_
const jlm::rvsdg::LambdaNode & GetLambdaNext() const noexcept
jlm::rvsdg::DeltaNode * DeltaMyList_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const jlm::rvsdg::LambdaNode & Lambda() const noexcept
rvsdg::Node * UndefValueNode_
jlm::rvsdg::LambdaNode * Lambda_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const rvsdg::Node * UndefValueNode() const noexcept
jlm::rvsdg::LambdaNode * lambda
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode * load_a
rvsdg::SimpleNode * alloca_p
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * lambda
rvsdg::SimpleNode * alloca_y
rvsdg::SimpleNode * load_x
rvsdg::SimpleNode * alloca_a
rvsdg::SimpleNode * alloca_x
rvsdg::SimpleNode * alloca_b
const rvsdg::SimpleNode & CallG() const noexcept
rvsdg::SimpleNode * CallG_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * LambdaG_
const jlm::rvsdg::LambdaNode & LambdaF() const noexcept
const jlm::rvsdg::LambdaNode & LambdaG() const noexcept
jlm::rvsdg::LambdaNode * LambdaF_
const rvsdg::Node & Memcpy() const noexcept
const jlm::rvsdg::LambdaNode & Lambda() const noexcept
const rvsdg::Node & Alloca() const noexcept
jlm::rvsdg::LambdaNode * Lambda_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const rvsdg::Node & Memcpy() const noexcept
const jlm::rvsdg::DeltaNode & LocalArray() const noexcept
const jlm::rvsdg::DeltaNode & GlobalArray() const noexcept
jlm::rvsdg::DeltaNode * GlobalArray_
jlm::rvsdg::LambdaNode * LambdaG_
const rvsdg::SimpleNode & CallF() const noexcept
jlm::rvsdg::DeltaNode * LocalArray_
const jlm::rvsdg::LambdaNode & LambdaF() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const jlm::rvsdg::LambdaNode & LambdaG() const noexcept
rvsdg::SimpleNode * Memcpy_
rvsdg::SimpleNode * CallF_
const rvsdg::SimpleNode & Memcpy() const noexcept
jlm::rvsdg::LambdaNode * LambdaF_
RVSDG module with an arbitrary amount of alloca nodes.
std::vector< const rvsdg::SimpleNode * > AllocaNodes_
size_t GetNumAllocaNodes() const noexcept
const rvsdg::SimpleNode & GetAllocaNode(size_t index) const noexcept
const jlm::rvsdg::LambdaNode & GetFunction() const noexcept
NAllocaNodesTest(size_t numAllocaNodes)
const jlm::rvsdg::Output & GetAllocaOutput(size_t index) const noexcept
jlm::rvsdg::LambdaNode * Function_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode * CallFib_
rvsdg::SimpleNode * alloca
rvsdg::SimpleNode * CallFibm2_
jlm::rvsdg::LambdaNode * lambda_test
const rvsdg::SimpleNode & CallFibm2() const noexcept
jlm::rvsdg::LambdaNode * lambda_fib
rvsdg::SimpleNode * CallFibm1_
jlm::rvsdg::PhiNode * phi
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const rvsdg::SimpleNode & CallFib() const noexcept
const rvsdg::SimpleNode & CallFibm1() const noexcept
jlm::rvsdg::SimpleNode * PTestAlloca_
jlm::rvsdg::LambdaNode & GetLambdaTest() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaA() const noexcept
jlm::rvsdg::SimpleNode & GetPdAlloca() const noexcept
jlm::rvsdg::SimpleNode * PaAlloca_
rvsdg::SimpleNode & GetCallB() const noexcept
jlm::rvsdg::LambdaNode * LambdaEight_
jlm::rvsdg::SimpleNode * PbAlloca_
jlm::rvsdg::LambdaNode * LambdaC_
jlm::rvsdg::LambdaNode & GetLambdaEight() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaD() const noexcept
rvsdg::SimpleNode & GetCallD() const noexcept
rvsdg::SimpleNode * CallAFromD_
jlm::rvsdg::SimpleNode & GetPTestAlloca() const noexcept
rvsdg::SimpleNode & GetCallAFromTest() const noexcept
jlm::rvsdg::SimpleNode & GetPcAlloca() const noexcept
rvsdg::SimpleNode * CallAFromTest_
rvsdg::SimpleNode & GetCallC() const noexcept
rvsdg::SimpleNode & GetIndirectCall() const noexcept
rvsdg::SimpleNode * CallD_
jlm::rvsdg::LambdaNode & GetLambdaI() const noexcept
rvsdg::SimpleNode & GetCallAFromD() const noexcept
rvsdg::SimpleNode * IndirectCall_
jlm::rvsdg::SimpleNode & GetPaAlloca() const noexcept
jlm::rvsdg::LambdaNode * LambdaI_
rvsdg::SimpleNode * CallI_
rvsdg::SimpleNode & GetCallI() const noexcept
jlm::rvsdg::LambdaNode & GetLambdaB() const noexcept
rvsdg::SimpleNode * CallAFromC_
rvsdg::SimpleNode * CallB_
jlm::rvsdg::LambdaNode * LambdaTest_
jlm::rvsdg::LambdaNode * LambdaB_
rvsdg::SimpleNode * CallC_
jlm::rvsdg::LambdaNode & GetLambdaC() const noexcept
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode & GetCallAFromC() const noexcept
jlm::rvsdg::SimpleNode & GetPbAlloca() const noexcept
jlm::rvsdg::SimpleNode * PcAlloca_
jlm::rvsdg::SimpleNode * PdAlloca_
jlm::rvsdg::LambdaNode * LambdaD_
jlm::rvsdg::LambdaNode * LambdaA_
jlm::rvsdg::DeltaNode * Delta_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
const jlm::rvsdg::DeltaNode & GetDelta() const noexcept
const rvsdg::Graph & graph()
jlm::llvm::LlvmRvsdgModule & module()
virtual std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg()=0
Create RVSDG for this test.
virtual ~RvsdgTest()=default
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > module_
rvsdg::SimpleNode * alloca_c
rvsdg::SimpleNode * alloca_a
rvsdg::SimpleNode * alloca_d
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::LambdaNode * lambda
rvsdg::SimpleNode * alloca_b
rvsdg::SimpleNode * alloca_p
jlm::rvsdg::LambdaNode * lambda
rvsdg::SimpleNode * alloca_y
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::SimpleNode * alloca_x
rvsdg::SimpleNode * alloca_b
rvsdg::SimpleNode * alloca_a
jlm::rvsdg::LambdaNode * lambda
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
jlm::rvsdg::ThetaNode * theta
rvsdg::Node & GetAllocaNode() const noexcept
std::unique_ptr< llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * AllocaNode_
rvsdg::SimpleNode * CallH_
rvsdg::RegionArgument & GetImportH() const noexcept
rvsdg::RegionArgument * ImportH_
rvsdg::LambdaNode * LambdaF_
rvsdg::LambdaNode * LambdaG_
rvsdg::SimpleNode & GetCallH() const noexcept
rvsdg::LambdaNode & GetLambdaG() const noexcept
rvsdg::LambdaNode & GetLambdaF() const noexcept
jlm::rvsdg::LambdaNode * LambdaFst_
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg() override
Create RVSDG for this test.
rvsdg::Node * AllocaNode_
rvsdg::Node & GetAllocaNode() const noexcept
jlm::rvsdg::LambdaNode * LambdaG_
const jlm::rvsdg::LambdaNode & GetLambdaG() const noexcept
const jlm::rvsdg::LambdaNode & GetLambdaFst() const noexcept
rvsdg::Output & output() const noexcept
Conditional operator / pattern matching.
rvsdg::Output * output() const noexcept
A phi node represents the fixpoint of mutually recursive definitions.
Represents the argument of a region.
NodeOutput * output(size_t index) const noexcept
Global memory state passed between functions.