6 #include <gtest/gtest.h>
22 TEST(NodeReductionTests, MultipleReductionsPerRegion)
28 const auto bitType = BitType::Create(32);
32 auto & graph = rvsdgModule.
Rvsdg();
46 auto sum = bitadd_op::create(32, loadResults[0], c5);
66 EXPECT_EQ(graph.GetRootRegion().numNodes(), 1u);
68 auto constantNode = TryGetOwnerNode<SimpleNode>(*sumExport.origin());
69 auto constantOperation =
71 EXPECT_EQ(constantOperation->value().to_uint(), 8u);
76 auto numIterations = nodeReductionStatistics.
GetNumIterations(graph.GetRootRegion()).value();
77 EXPECT_EQ(numIterations, 2u);
static jlm::util::StatisticsCollector statisticsCollector
TEST(NodeReductionTests, MultipleReductionsPerRegion)
static std::vector< rvsdg::Output * > create(std::shared_ptr< const rvsdg::Type > allocatedType, rvsdg::Output *count, const size_t alignment)
static std::unique_ptr< llvm::ThreeAddressCode > Create(const Variable *address, const Variable *state, std::shared_ptr< const rvsdg::Type > loadedType, size_t alignment)
static std::shared_ptr< const MemoryStateType > Create()
std::optional< size_t > GetNumIterations(const rvsdg::Region ®ion) const noexcept
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
static std::unique_ptr< llvm::ThreeAddressCode > Create(const Variable *address, const Variable *value, const Variable *state, size_t alignment)
static GraphExport & Create(Output &origin, std::string name)
static GraphImport & Create(Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
StatisticsRange CollectedStatistics() const noexcept
Global memory state passed between functions.
std::string view(const rvsdg::Region *region)