Jlm
Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | List of all members
jlm::llvm::InterProceduralGraphModule Class Referencefinal

#include <ipgraph-module.hpp>

Collaboration diagram for jlm::llvm::InterProceduralGraphModule:
Collaboration graph
[legend]

Public Member Functions

 ~InterProceduralGraphModule () noexcept=default
 
 InterProceduralGraphModule (const jlm::util::FilePath &source_filename, const std::string &target_triple, const std::string &data_layout) noexcept
 
InterProceduralGraphipgraph () noexcept
 
const InterProceduralGraphipgraph () const noexcept
 
const_iterator begin () const
 
const_iterator end () const
 
GlobalValuecreate_global_value (DataNode *node)
 
llvm::Variablecreate_variable (std::shared_ptr< const jlm::rvsdg::Type > type, const std::string &name)
 
llvm::Variablecreate_variable (std::shared_ptr< const jlm::rvsdg::Type > type)
 
llvm::Variablecreate_variable (FunctionNode *node)
 
const llvm::Variablevariable (const InterProceduralGraphNode *node) const noexcept
 
const jlm::util::FilePathsource_filename () const noexcept
 
const std::string & target_triple () const noexcept
 
const std::string & data_layout () const noexcept
 

Static Public Member Functions

static std::unique_ptr< InterProceduralGraphModulecreate (const jlm::util::FilePath &sourceFilename, const std::string &targetTriple, const std::string &dataLayout)
 

Private Types

typedef std::unordered_set< const GlobalValue * >::const_iterator const_iterator
 

Private Attributes

InterProceduralGraph clg_
 
std::string data_layout_
 
std::string target_triple_
 
const jlm::util::FilePath source_filename_
 
std::unordered_set< const GlobalValue * > globals_
 
std::unordered_set< std::unique_ptr< llvm::Variable > > variables_
 
std::unordered_map< const InterProceduralGraphNode *, const llvm::Variable * > functions_
 

Detailed Description

Definition at line 54 of file ipgraph-module.hpp.

Member Typedef Documentation

◆ const_iterator

Definition at line 56 of file ipgraph-module.hpp.

Constructor & Destructor Documentation

◆ ~InterProceduralGraphModule()

jlm::llvm::InterProceduralGraphModule::~InterProceduralGraphModule ( )
defaultnoexcept

◆ InterProceduralGraphModule()

jlm::llvm::InterProceduralGraphModule::InterProceduralGraphModule ( const jlm::util::FilePath source_filename,
const std::string &  target_triple,
const std::string &  data_layout 
)
inlinenoexcept

Definition at line 61 of file ipgraph-module.hpp.

Member Function Documentation

◆ begin()

const_iterator jlm::llvm::InterProceduralGraphModule::begin ( ) const
inline

Definition at line 83 of file ipgraph-module.hpp.

◆ create()

static std::unique_ptr<InterProceduralGraphModule> jlm::llvm::InterProceduralGraphModule::create ( const jlm::util::FilePath sourceFilename,
const std::string &  targetTriple,
const std::string &  dataLayout 
)
inlinestatic

Definition at line 162 of file ipgraph-module.hpp.

◆ create_global_value()

GlobalValue* jlm::llvm::InterProceduralGraphModule::create_global_value ( DataNode node)
inline

Definition at line 95 of file ipgraph-module.hpp.

◆ create_variable() [1/3]

llvm::Variable* jlm::llvm::InterProceduralGraphModule::create_variable ( FunctionNode node)
inline

Definition at line 125 of file ipgraph-module.hpp.

◆ create_variable() [2/3]

llvm::Variable* jlm::llvm::InterProceduralGraphModule::create_variable ( std::shared_ptr< const jlm::rvsdg::Type type)
inline

Definition at line 115 of file ipgraph-module.hpp.

◆ create_variable() [3/3]

llvm::Variable* jlm::llvm::InterProceduralGraphModule::create_variable ( std::shared_ptr< const jlm::rvsdg::Type type,
const std::string &  name 
)
inline

Definition at line 106 of file ipgraph-module.hpp.

◆ data_layout()

const std::string& jlm::llvm::InterProceduralGraphModule::data_layout ( ) const
inlinenoexcept

Definition at line 156 of file ipgraph-module.hpp.

◆ end()

const_iterator jlm::llvm::InterProceduralGraphModule::end ( ) const
inline

Definition at line 89 of file ipgraph-module.hpp.

◆ ipgraph() [1/2]

const InterProceduralGraph& jlm::llvm::InterProceduralGraphModule::ipgraph ( ) const
inlinenoexcept

Definition at line 77 of file ipgraph-module.hpp.

◆ ipgraph() [2/2]

InterProceduralGraph& jlm::llvm::InterProceduralGraphModule::ipgraph ( )
inlinenoexcept

Definition at line 71 of file ipgraph-module.hpp.

◆ source_filename()

const jlm::util::FilePath& jlm::llvm::InterProceduralGraphModule::source_filename ( ) const
inlinenoexcept

Definition at line 144 of file ipgraph-module.hpp.

◆ target_triple()

const std::string& jlm::llvm::InterProceduralGraphModule::target_triple ( ) const
inlinenoexcept

Definition at line 150 of file ipgraph-module.hpp.

◆ variable()

const llvm::Variable* jlm::llvm::InterProceduralGraphModule::variable ( const InterProceduralGraphNode node) const
inlinenoexcept

Definition at line 137 of file ipgraph-module.hpp.

Member Data Documentation

◆ clg_

InterProceduralGraph jlm::llvm::InterProceduralGraphModule::clg_
private

Definition at line 171 of file ipgraph-module.hpp.

◆ data_layout_

std::string jlm::llvm::InterProceduralGraphModule::data_layout_
private

Definition at line 172 of file ipgraph-module.hpp.

◆ functions_

std::unordered_map<const InterProceduralGraphNode *, const llvm::Variable *> jlm::llvm::InterProceduralGraphModule::functions_
private

Definition at line 177 of file ipgraph-module.hpp.

◆ globals_

std::unordered_set<const GlobalValue *> jlm::llvm::InterProceduralGraphModule::globals_
private

Definition at line 175 of file ipgraph-module.hpp.

◆ source_filename_

const jlm::util::FilePath jlm::llvm::InterProceduralGraphModule::source_filename_
private

Definition at line 174 of file ipgraph-module.hpp.

◆ target_triple_

std::string jlm::llvm::InterProceduralGraphModule::target_triple_
private

Definition at line 173 of file ipgraph-module.hpp.

◆ variables_

std::unordered_set<std::unique_ptr<llvm::Variable> > jlm::llvm::InterProceduralGraphModule::variables_
private

Definition at line 176 of file ipgraph-module.hpp.


The documentation for this class was generated from the following file: