6 #include <gtest/gtest.h>
15 TEST(MemoryStateSplitConversionTests, SplitConversion)
26 auto & rvsdg = rvsdgModule.
Rvsdg();
32 const auto inputVar = structuralNode->addInputWithArguments(importX);
34 auto & entrySplitNode =
37 const auto outputVar0 = structuralNode->addOutputWithResults({ entrySplitNode.output(0) });
38 const auto outputVar1 = structuralNode->addOutputWithResults({ entrySplitNode.output(1) });
39 const auto outputVar2 = structuralNode->addOutputWithResults({ entrySplitNode.output(2) });
58 EXPECT_EQ(rvsdg.GetRootRegion().numNodes(), 2);
59 EXPECT_EQ(structuralNode->subregion(0)->numNodes(), 1);
64 EXPECT_EQ(outputVar0.output->nusers(), 1);
65 EXPECT_TRUE(IsOwnerNodeOperation<ForkOperation>(*inputVar.argument[0]->Users().begin()));
71 EXPECT_TRUE(IsOwnerNodeOperation<ForkOperation>(*importY.Users().begin()));
static jlm::util::StatisticsCollector statisticsCollector
TEST(MemoryStateSplitConversionTests, SplitConversion)
static void CreateAndRun(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector)
static rvsdg::SimpleNode & CreateNode(rvsdg::Output &operand, std::vector< MemoryNodeId > memoryNodeIds)
static std::vector< rvsdg::Output * > Create(rvsdg::Output &operand, const size_t numResults)
static std::shared_ptr< const MemoryStateType > Create()
static GraphExport & Create(Output &origin, std::string name)
static GraphImport & Create(Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
static TestStructuralNode * create(Region *parent, const size_t numSubregions)
Global memory state passed between functions.
std::string view(const rvsdg::Region *region)