7 #include <gtest/gtest.h>
14 TEST(PhiTests, TestPhiCreation)
35 auto iOStateArgument = lambda->GetFunctionArguments()[1];
36 auto memoryStateArgument = lambda->GetFunctionArguments()[2];
38 return lambda->finalize({ iOStateArgument, memoryStateArgument });
46 auto ctxVarF2 = lambda->AddContextVar(*f2).inner;
47 auto valueArgument = lambda->GetFunctionArguments()[0];
48 auto iOStateArgument = lambda->GetFunctionArguments()[1];
49 auto memoryStateArgument = lambda->GetFunctionArguments()[2];
54 { valueArgument, iOStateArgument, memoryStateArgument });
56 return lambda->finalize(callResults);
65 auto lambdaOutput0 = SetupEmptyLambda(pb.
subregion(),
"f0");
66 auto lambdaOutput1 = SetupEmptyLambda(pb.
subregion(),
"f1");
67 auto lambdaOutput2 = SetupF2(pb.
subregion(), rv3.recref);
69 rv1.result->divert_to(lambdaOutput0);
70 rv2.result->divert_to(lambdaOutput1);
71 rv3.result->divert_to(lambdaOutput2);
TEST(PhiTests, TestPhiCreation)
static std::vector< rvsdg::Output * > Create(rvsdg::Output *function, std::shared_ptr< const rvsdg::FunctionType > functionType, const std::vector< rvsdg::Output * > &arguments)
static std::shared_ptr< const IOStateType > Create()
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)
static std::shared_ptr< const MemoryStateType > Create()
static std::shared_ptr< const FunctionType > Create(std::vector< std::shared_ptr< const jlm::rvsdg::Type >> argumentTypes, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> resultTypes)
static GraphExport & Create(Output &origin, std::string name)
Region & GetRootRegion() const noexcept
static LambdaNode * Create(rvsdg::Region &parent, std::unique_ptr< LambdaOperation > operation)
rvsdg::Region * subregion() const noexcept
PhiNode::FixVar AddFixVar(std::shared_ptr< const jlm::rvsdg::Type > type)
void begin(rvsdg::Region *parent)
Represent acyclic RVSDG subgraphs.
static std::shared_ptr< const TestType > createValueType()
Global memory state passed between functions.
std::string view(const rvsdg::Region *region)