Jlm
rvsdg2rhls.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2021 David Metz <david.c.metz@ntnu.no>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_HLS_BACKEND_RVSDG2RHLS_RVSDG2RHLS_HPP
7 #define JLM_HLS_BACKEND_RVSDG2RHLS_RVSDG2RHLS_HPP
8 
12 #include <jlm/rvsdg/node.hpp>
14 #include <jlm/util/Statistics.hpp>
15 
16 namespace jlm::hls
17 {
18 
19 static inline bool
20 is_constant(const rvsdg::Node * node)
21 {
22  return jlm::rvsdg::is<llvm::IntegerConstantOperation>(node)
23  || jlm::rvsdg::is<llvm::UndefValueOperation>(node) || jlm::rvsdg::is<llvm::ConstantFP>(node)
24  || jlm::rvsdg::is<rvsdg::ControlConstantOperation>(node);
25 }
26 
27 std::unique_ptr<rvsdg::TransformationSequence>
28 createTransformationSequence(rvsdg::DotWriter & dotWriter, bool dumpRvsdgDotGraphs);
29 
30 void
31 rvsdg2ref(llvm::LlvmRvsdgModule & rm, const util::FilePath & function_name);
32 
33 void
34 dump_ref(llvm::LlvmRvsdgModule & rhls, const util::FilePath & function_name);
35 
36 const jlm::rvsdg::Output *
38 
39 std::unique_ptr<llvm::LlvmRvsdgModule>
40 split_hls_function(llvm::LlvmRvsdgModule & rm, const std::string & function_name);
41 
42 }
43 
44 #endif // JLM_HLS_BACKEND_RVSDG2RHLS_RVSDG2RHLS_HPP
static bool is_constant(const rvsdg::Node *node)
Definition: rvsdg2rhls.hpp:20
void dump_ref(llvm::LlvmRvsdgModule &rhls, const util::FilePath &path)
Definition: rvsdg2rhls.cpp:527
std::unique_ptr< rvsdg::TransformationSequence > createTransformationSequence(rvsdg::DotWriter &dotWriter, const bool dumpRvsdgDotGraphs)
Definition: rvsdg2rhls.cpp:446
std::unique_ptr< jlm::llvm::LlvmRvsdgModule > split_hls_function(llvm::LlvmRvsdgModule &rm, const std::string &function_name)
Definition: rvsdg2rhls.cpp:344
const jlm::rvsdg::Output * trace_call(jlm::rvsdg::Input *input)
Definition: rvsdg2rhls.cpp:118
void rvsdg2ref(llvm::LlvmRvsdgModule &rhls, const util::FilePath &path)
Definition: rvsdg2rhls.cpp:440