18TEST(ThetaConversionTests, TestUnknownBoundaries)
30 rm.Rvsdg().GetRootRegion(),
31 LlvmLambdaOperation::Create(ft,
"f", Linkage::externalLinkage));
34 auto idv = theta->AddLoopVar(lambda->GetFunctionArguments()[0]);
35 auto lvs = theta->AddLoopVar(lambda->GetFunctionArguments()[1]);
36 auto lve = theta->AddLoopVar(lambda->GetFunctionArguments()[2]);
42 idv.post->divert_to(arm);
43 theta->set_predicate(matchNode.output(0));
45 auto f = lambda->finalize({ theta->output(0), theta->output(1), theta->output(2) });
56 auto lambdaRegion = lambda->subregion();
57 EXPECT_TRUE(jlm::rvsdg::Region::containsNodeType<LoopNode>(*lambdaRegion,
true));
58 EXPECT_TRUE(jlm::rvsdg::Region::containsOperation<PredicateBufferOperation>(*lambdaRegion,
true));
60 jlm::rvsdg::Region::containsOperation<jlm::hls::BranchOperation>(*lambdaRegion,
true));
61 EXPECT_TRUE(jlm::rvsdg::Region::containsOperation<MuxOperation>(*lambdaRegion,
true));
64 jlm::rvsdg::Region::containsOperation<LoopConstantBufferOperation>(*lambdaRegion,
true));
65 EXPECT_EQ(lambdaRegion->argument(0)->nusers(), 1u);
70 loopNode.subregion()->argument(3)->SingleUser()));
74 loopNode.subregion()->argument(4)->SingleUser()));