6 #include <gtest/gtest.h>
20 TEST(TraceTests, testTracingIOBarrier)
45 const auto ioBarrier1 = &rvsdg::CreateOpNode<IOBarrierOperation>({ myInt, myIo }, int32Type);
46 const auto ioBarrier1Output = ioBarrier1->output(0);
48 const auto ioBarrier2 =
49 &rvsdg::CreateOpNode<IOBarrierOperation>({ ioBarrier1Output, myIo }, int32Type);
50 const auto ioBarrier2Output = ioBarrier2->output(0);
57 TEST(TraceTests, testGetConstantSignedInteger)
108 const auto bits64CtxVar = lambdaNode->AddContextVar(*bits64Output).inner;
110 const auto & integerConstantNode =
111 IntegerConstantOperation::Create(*lambdaNode->subregion(), 32, 20);
114 const auto entryVar = gammaNode.AddEntryVar(integerConstantNode.output(0));
116 const auto exitVarOutput =
117 gammaNode.AddExitVar({ entryVar.branchArgument[0], entryVar.branchArgument[1] }).output;
118 const auto lambdaOutput = lambdaNode->finalize({ exitVarOutput });
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 Output & create(Region ®ion, BitValueRepresentation value)
static std::shared_ptr< const BitType > Create(std::size_t nbits)
Creates bit type of specified width.
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 GammaNode * create(jlm::rvsdg::Output *predicate, size_t nalternatives)
static GraphImport & Create(Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
Region & GetRootRegion() const noexcept
static LambdaNode * Create(rvsdg::Region &parent, std::unique_ptr< LambdaOperation > operation)
static Output * Create(Output &predicate, const std::unordered_map< uint64_t, uint64_t > &mapping, const uint64_t defaultAlternative, const size_t numAlternatives)
TEST(TraceTests, testTracingIOBarrier)
Global memory state passed between functions.
rvsdg::Output & traceOutput(rvsdg::Output &output, const rvsdg::Region *withinRegion)
std::optional< int64_t > tryGetConstantSignedInteger(const rvsdg::Output &output)