6 #include <gtest/gtest.h>
15 TEST(StaticSingleAssignmentDestructionTests, test_two_phis)
30 bb1->add_outedge(bb2);
31 bb1->add_outedge(bb3);
32 bb2->add_outedge(bb4);
33 bb3->add_outedge(bb4);
34 bb4->add_outedge(cfg.
exit());
37 auto v1 = bb2->last()->result(0);
40 auto v3 = bb2->last()->result(0);
43 auto v2 = bb3->last()->result(0);
46 auto v4 = bb3->last()->result(0);
TEST(StaticSingleAssignmentDestructionTests, test_two_phis)
static BasicBlock * create(ControlFlowGraph &cfg)
void divert_inedges(llvm::ControlFlowGraphNode *new_successor)
static std::string ToAscii(const ControlFlowGraph &controlFlowGraph)
ExitNode * exit() const noexcept
static std::unique_ptr< llvm::ThreeAddressCode > create(const std::vector< std::pair< const Variable *, ControlFlowGraphNode * >> &arguments, std::shared_ptr< const jlm::rvsdg::Type > type)
static std::unique_ptr< llvm::ThreeAddressCode > create(std::unique_ptr< rvsdg::SimpleOperation > operation, const std::vector< const Variable * > &operands)
static std::shared_ptr< const TestType > createValueType()
Global memory state passed between functions.
void destruct_ssa(ControlFlowGraph &cfg)