25 for (
size_t n = 0; n < structnode->nsubregions(); n++)
31 && jlm::rvsdg::is<rvsdg::BitType>(node->output(0)->Type())
32 && !jlm::rvsdg::is<llvm::UndefValueOperation>(node))
34 auto out = node->output(0);
35 std::vector<jlm::rvsdg::Input *> old_users;
36 for (
auto & user : out->Users())
37 old_users.push_back(&user);
39 for (
auto user : old_users)
41 user->divert_to(new_out);
50 auto & graph = rm.
Rvsdg();
58 auto & graph = rm.
Rvsdg();
76 const std::shared_ptr<const rvsdg::FunctionType> & functionType)
82 for (
size_t n = 0; n < structnode->nsubregions(); n++)
87 else if (
auto po =
dynamic_cast<const PrintOperation *
>(&(node->GetOperation())))
95 auto bt = std::dynamic_pointer_cast<const rvsdg::BitType>(val->
Type());
100 node->output(0)->divert_users(node->input(0)->origin());
static std::vector< jlm::rvsdg::Output * > create(jlm::rvsdg::Output &value)
static std::vector< rvsdg::Output * > Create(rvsdg::Output *function, std::shared_ptr< const rvsdg::FunctionType > functionType, const std::vector< rvsdg::Output * > &arguments)
static rvsdg::Node & Create(rvsdg::Region ®ion, IntegerValueRepresentation representation)
static LlvmGraphImport & createFunctionImport(rvsdg::Graph &graph, std::shared_ptr< const rvsdg::FunctionType > functionType, std::string name, Linkage linkage, CallingConvention callingConvention)
static rvsdg::Output & Create(rvsdg::Output &operand, const std::shared_ptr< const rvsdg::Type > &resultType)
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)
Region & GetRootRegion() const noexcept
size_t noutputs() const noexcept
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
Represent acyclic RVSDG subgraphs.
void convert_prints(llvm::LlvmRvsdgModule &rm)
void add_prints(rvsdg::Region *region)
static void remove(Node *node)
Output & RouteToRegion(Output &output, Region ®ion)