18 if ((
'A' <= c && c <=
'Z') || (
'a' <= c && c <=
'z') || (
'0' <= c && c <=
'9') ||
'_' == c)
35 std::string append =
"";
41 append.append(std::to_string(inPorts));
43 append.append(std::to_string(
JlmSize(node->
input(inPorts - 1)->
Type().get())));
47 append.append(
"_OUT");
48 append.append(std::to_string(outPorts));
56 name = std::regex_replace(name, std::regex(
"_+"),
"_");
75 throw std::logic_error(
port->debug_string() +
" not implemented!");
86 throw std::logic_error(
"nullptr!");
103 throw std::logic_error(
port->debug_string() +
" not implemented!");
118 for (
auto & node :
r->Nodes())
124 else if (
auto oln =
dynamic_cast<LoopNode *
>(&node))
138 auto region = &
rm.Rvsdg().GetRootRegion();
140 if (region->numNodes() == 1 &&
ln)
146 throw util::Error(
"Root should have only one lambda node now");
std::unordered_map< const rvsdg::Node *, std::string > node_map
static std::string get_port_name(jlm::rvsdg::Input *port)
void create_node_names(rvsdg::Region *r)
static int JlmSize(const jlm::rvsdg::Type *type)
const rvsdg::LambdaNode * get_hls_lambda(llvm::LlvmRvsdgModule &rm)
std::string get_node_name(const rvsdg::Node *node)
static std::string get_base_file_name(const llvm::LlvmRvsdgModule &rm)
NodeInput * input(size_t index) const noexcept
NodeOutput * output(size_t index) const noexcept
virtual std::string DebugString() const =0
size_t ninputs() const noexcept
size_t noutputs() const noexcept
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
Represents the argument of a region.
Represent acyclic RVSDG subgraphs.
int JlmSize(const jlm::rvsdg::Type *type)
bool isForbiddenChar(char c)
Region * TryGetOwnerRegion(const rvsdg::Input &input) noexcept
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.
static std::string strfmt(Args... args)