6 #ifndef JLM_LLVM_IR_RVSDGMODULE_HPP
7 #define JLM_LLVM_IR_RVSDGMODULE_HPP
26 std::shared_ptr<const rvsdg::Type> valueType,
27 std::shared_ptr<const rvsdg::Type> importedType,
32 const size_t alignment)
33 :
GraphImport(graph, importedType, std::move(name)),
79 [[nodiscard]]
const std::shared_ptr<const jlm::rvsdg::Type> &
93 [[nodiscard]]
const std::shared_ptr<const jlm::rvsdg::Type> &
111 std::shared_ptr<const rvsdg::Type> valueType,
112 std::shared_ptr<const rvsdg::Type> importedType,
117 const size_t alignment)
121 std::move(valueType),
122 std::move(importedType),
145 std::shared_ptr<const rvsdg::Type> valueType,
146 std::shared_ptr<const rvsdg::Type> importedType,
150 const size_t alignment)
154 std::move(valueType),
155 std::move(importedType),
174 std::shared_ptr<const rvsdg::FunctionType> functionType,
207 LlvmRvsdgModule(util::FilePath sourceFileName, std::
string targetTriple, std::
string dataLayout)
215 std::string targetTriple,
216 std::string dataLayout,
217 std::unique_ptr<rvsdg::Graph> rvsdg)
218 :
RvsdgModule(std::move(sourceFileName), std::move(rvsdg)),
233 std::unique_ptr<RvsdgModule>
234 copy()
const override;
242 [[nodiscard]]
const std::string &
248 [[nodiscard]]
const std::string &
254 static std::unique_ptr<LlvmRvsdgModule>
257 const std::string & targetTriple,
258 const std::string & dataLayout)
260 return std::make_unique<LlvmRvsdgModule>(sourceFileName, targetTriple, dataLayout);
static LlvmGraphImport & createGlobalImport(rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, const bool isConstant, const size_t alignment)
const std::shared_ptr< const jlm::rvsdg::Type > & ImportedType() const noexcept
LlvmGraphImport(rvsdg::Graph &graph, std::shared_ptr< const rvsdg::Type > valueType, std::shared_ptr< const rvsdg::Type > importedType, std::string name, Linkage linkage, CallingConvention callingConvention, const bool isConstant, const size_t alignment)
const std::shared_ptr< const jlm::rvsdg::Type > & ValueType() const noexcept
bool isConstant() const noexcept
static LlvmGraphImport & createFunctionImport(rvsdg::Graph &graph, std::shared_ptr< const rvsdg::FunctionType > functionType, std::string name, Linkage linkage, CallingConvention callingConvention)
CallingConvention callingConvention_
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, CallingConvention callingConvention, const bool isConstant, const size_t alignment)
std::shared_ptr< const rvsdg::Type > ValueType_
const Linkage & linkage() const noexcept
const CallingConvention & callingConvention() const noexcept
std::shared_ptr< const rvsdg::Type > ImportedType_
size_t getAlignment() const noexcept
LlvmGraphImport & Copy(rvsdg::Region ®ion, rvsdg::StructuralInput *input) const override
const util::FilePath & SourceFileName() const noexcept
const std::string & TargetTriple() const noexcept
~LlvmRvsdgModule() noexcept override=default
LlvmRvsdgModule & operator=(const LlvmRvsdgModule &)=delete
static std::unique_ptr< LlvmRvsdgModule > Create(const util::FilePath &sourceFileName, const std::string &targetTriple, const std::string &dataLayout)
LlvmRvsdgModule(LlvmRvsdgModule &&)=delete
LlvmRvsdgModule & operator=(LlvmRvsdgModule &&)=delete
std::string TargetTriple_
LlvmRvsdgModule(const LlvmRvsdgModule &)=delete
std::unique_ptr< RvsdgModule > copy() const override
const std::string & DataLayout() const noexcept
LlvmRvsdgModule(util::FilePath sourceFileName, std::string targetTriple, std::string dataLayout, std::unique_ptr< rvsdg::Graph > rvsdg)
GraphImport(Graph &graph, std::shared_ptr< const rvsdg::Type > type, std::string name)
Region & GetRootRegion() const noexcept
rvsdg::Region * region() const noexcept
StructuralInput * input() const noexcept
Represent acyclic RVSDG subgraphs.
RegionArgument & addArgument(std::unique_ptr< RegionArgument > argument)
const std::optional< util::FilePath > & SourceFilePath() const noexcept
Global memory state passed between functions.