24 for (
size_t n = 0; n < structnode->nsubregions(); n++)
30 && jlm::rvsdg::is<rvsdg::BitType>(node->output(0)->Type())
31 && !jlm::rvsdg::is<llvm::UndefValueOperation>(node))
33 auto out = node->output(0);
34 std::vector<jlm::rvsdg::Input *> old_users;
35 for (
auto & user : out->Users())
36 old_users.push_back(&user);
38 for (
auto user : old_users)
40 user->divert_to(new_out);
49 auto & graph = rm.
Rvsdg();
57 auto & graph = rm.
Rvsdg();
71 const std::shared_ptr<const rvsdg::FunctionType> & functionType)
77 for (
size_t n = 0; n < structnode->nsubregions(); n++)
82 else if (
auto po =
dynamic_cast<const PrintOperation *
>(&(node->GetOperation())))
90 auto bt = std::dynamic_pointer_cast<const rvsdg::BitType>(val->
Type());
95 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 & Create(rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, bool isConstant=false)
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)