43TEST(DeadNodeEliminationTests, TestDeadLoopNodeOutput)
54 auto & rvsdg = rvsdgModule.Rvsdg();
57 rvsdg.GetRootRegion(),
63 auto p = lambdaNode->GetFunctionArguments()[0];
64 auto x = lambdaNode->GetFunctionArguments()[1];
66 auto loopNode = LoopNode::create(lambdaNode->subregion());
69 auto output0 = loopNode->AddLoopVar(p, &buffer);
70 loopNode->AddLoopVar(x);
71 loopNode->set_predicate(buffer);
73 auto lambdaOutput = lambdaNode->finalize({ output0 });
78 EliminateDeadNodes(rvsdgModule);
81 EXPECT_EQ(loopNode->noutputs(), 1u);
82 EXPECT_EQ(loopNode->ninputs(), 2u);
static std::unique_ptr< LlvmLambdaOperation > Create(std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage, jlm::llvm::CallingConvention callingConvention, jlm::llvm::AttributeSet attributes)