6 #ifndef JLM_LLVM_FRONTEND_LLVMCONVERSIONCONTEXT_HPP
7 #define JLM_LLVM_FRONTEND_LLVMCONVERSIONCONTEXT_HPP
14 #include <llvm/IR/DerivedTypes.h>
16 #include <unordered_map>
28 class ControlFlowGraph;
29 class ControlFlowGraphNode;
30 class InterProceduralGraphModule;
82 has(const ::llvm::BasicBlock * bb)
const noexcept
94 get(const ::llvm::BasicBlock * bb)
const noexcept
99 inline const ::llvm::BasicBlock *
108 bbmap_ = std::move(bbmap);
121 return vmap_.find(value)->second;
128 vmap_[value] = variable;
162 std::unordered_map<const ::llvm::Value *, const llvm::Variable *>
vmap_;
const ::llvm::BasicBlock * get(BasicBlock *bb) const noexcept
Context(InterProceduralGraphModule &im)
const llvm::Variable * lookup_value(const ::llvm::Value *value) const noexcept
llvm::Variable * memory_state() const noexcept
const llvm::Variable * result() const noexcept
bool has_value(const ::llvm::Value *value) const noexcept
llvm::Variable * iostate() const noexcept
const llvm::Variable * result_
void set_memory_state(llvm::Variable *state)
InterProceduralGraphModule & module() const noexcept
void set_iostate(llvm::Variable *state)
void set_result(const llvm::Variable *result)
TypeConverter TypeConverter_
void set_basic_block_map(BasicBlockMap bbmap)
BasicBlock * get(const ::llvm::BasicBlock *bb) const noexcept
InterProceduralGraphNode * node() const noexcept
void set_node(InterProceduralGraphNode *node) noexcept
llvm::Variable * memory_state_
bool has(BasicBlock *bb) const noexcept
std::unordered_map< const ::llvm::Value *, const llvm::Variable * > vmap_
llvm::Variable * iostate_
void insert_value(const ::llvm::Value *value, const llvm::Variable *variable)
TypeConverter & GetTypeConverter() noexcept
bool has(const ::llvm::BasicBlock *bb) const noexcept
InterProceduralGraphNode * node_
InterProceduralGraphModule & module_
const V & LookupKey(const K &key) const
const K & LookupValue(const V &value) const
bool HasKey(const K &key) const noexcept
bool HasValue(const V &value) const noexcept
Global memory state passed between functions.
@ Value
Designate a value type.