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

#include <IpGraphToLlvmConverter.hpp>

Classes

class  Context
 

Public Member Functions

 ~IpGraphToLlvmConverter () noexcept
 
 IpGraphToLlvmConverter ()
 
 IpGraphToLlvmConverter (const IpGraphToLlvmConverter &)=delete
 
 IpGraphToLlvmConverter (IpGraphToLlvmConverter &&)=delete
 
IpGraphToLlvmConverteroperator= (const IpGraphToLlvmConverter &)=delete
 
IpGraphToLlvmConverteroperator= (IpGraphToLlvmConverter &&)=delete
 
std::unique_ptr<::llvm::Module > ConvertModule (InterProceduralGraphModule &ipGraphModule, ::llvm::LLVMContext &llvmContext)
 
template<::llvm::Instruction::CastOps OPCODE>
::llvm::Value * convert_cast (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
template<class OP >
::llvm::Value * convert (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 

Static Public Member Functions

::llvm::Attribute::AttrKind ConvertAttributeKind (const Attribute::kind &kind)
 
static std::unique_ptr<::llvm::Module > CreateAndConvertModule (InterProceduralGraphModule &ipGraphModule, ::llvm::LLVMContext &ctx)
 

Private Member Functions

void convert_ipgraph ()
 
const ::llvm::GlobalValue::LinkageTypes & convert_linkage (const llvm::Linkage &linkage)
 
void convert_data_node (const DataNode &node)
 
void convert_function (const FunctionNode &node)
 
void convert_cfg (ControlFlowGraph &cfg, ::llvm::Function &f)
 
std::vector< ControlFlowGraphNode * > ConvertBasicBlocks (const ControlFlowGraph &controlFlowGraph, ::llvm::Function &function)
 
::llvm::AttributeList convert_attributes (const FunctionNode &f)
 
::llvm::AttributeSet convert_attributes (const AttributeSet &attributeSet)
 
::llvm::Attribute ConvertStringAttribute (const llvm::StringAttribute &attribute)
 
::llvm::Attribute ConvertTypeAttribute (const llvm::TypeAttribute &attribute)
 
::llvm::Attribute ConvertIntAttribute (const llvm::IntAttribute &attribute)
 
::llvm::Attribute ConvertEnumAttribute (const llvm::EnumAttribute &attribute)
 
void create_terminator_instruction (const llvm::ControlFlowGraphNode *node)
 
void create_switch (const ControlFlowGraphNode *node)
 
void create_conditional_branch (const ControlFlowGraphNode *node)
 
void create_unconditional_branch (const ControlFlowGraphNode *node)
 
void create_return (const ControlFlowGraphNode *node)
 
void convert_tacs (const tacsvector_t &tacs)
 
void convert_instruction (const llvm::ThreeAddressCode &tac, const llvm::ControlFlowGraphNode *node)
 
::llvm::Value * convert_operation (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &arguments, ::llvm::IRBuilder<> &builder)
 
template<class OP >
::llvm::Value * convert (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const PointerToFunctionOperation &, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const FunctionToPointerOperation &, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const CallExitMemoryStateSplitOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const CallEntryMemoryStateMergeOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const LambdaExitMemoryStateMergeOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const LambdaEntryMemoryStateSplitOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const MemoryStateSplitOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const MemoryStateMergeOperation &, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const MemCpyVolatileOperation &, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const MemCpyNonVolatileOperation &, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const FreeOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const MallocOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const ExtractValueOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
template<::llvm::Instruction::CastOps OPCODE>
::llvm::Value * convert_cast (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const VectorSelectOperation &, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_vectorbinary (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_vectorunary (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_insertelement (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const ShuffleVectorOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_extractelement (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_constantdatavector (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_constantvector (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_ctl2bits (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_select (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const ConstantPointerNullOperation &operation, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const ConstantStruct &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_valist (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_fpneg (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_fpbin (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_fpcmp (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_ptrcmp (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const ConstantAggregateZeroOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const ConstantArrayOperation &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const ConstantDataArray &op, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
template<typename T >
std::vector< T > get_fpdata (const std::vector< const Variable * > &args)
 
template<typename T >
std::vector< T > get_bitdata (const std::vector< const Variable * > &args)
 
::llvm::Value * convert_getelementptr (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_alloca (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const StoreVolatileOperation &operation, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_store (const rvsdg::SimpleOperation &operation, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
void CreateStoreInstruction (const Variable *address, const Variable *value, bool isVolatile, size_t alignment, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const LoadVolatileOperation &operation, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const LoadNonVolatileOperation &operation, const std::vector< const Variable * > &operands, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * CreateLoadInstruction (const rvsdg::Type &loadedType, const Variable *address, bool isVolatile, size_t alignment, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_phi (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_branch (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_match (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const CallOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert (const PoisonValueOperation &operation, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert_undef (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &)
 
::llvm::Value * convert (const ConstantFP &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_ctlconstant (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * ConverterIntegerConstant (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * CreateICmpInstruction (const ::llvm::CmpInst::Predicate predicate, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * CreateBinOpInstruction (const ::llvm::Instruction::BinaryOps opcode, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &builder)
 
::llvm::Value * convert_assignment (const rvsdg::SimpleOperation &op, const std::vector< const Variable * > &args, ::llvm::IRBuilder<> &)
 

Private Attributes

std::unique_ptr< ContextContext_
 

Detailed Description

Definition at line 68 of file IpGraphToLlvmConverter.hpp.

Constructor & Destructor Documentation

◆ ~IpGraphToLlvmConverter()

jlm::llvm::IpGraphToLlvmConverter::~IpGraphToLlvmConverter ( )
defaultnoexcept

◆ IpGraphToLlvmConverter() [1/3]

jlm::llvm::IpGraphToLlvmConverter::IpGraphToLlvmConverter ( )
default

◆ IpGraphToLlvmConverter() [2/3]

jlm::llvm::IpGraphToLlvmConverter::IpGraphToLlvmConverter ( const IpGraphToLlvmConverter )
delete

◆ IpGraphToLlvmConverter() [3/3]

jlm::llvm::IpGraphToLlvmConverter::IpGraphToLlvmConverter ( IpGraphToLlvmConverter &&  )
delete

Member Function Documentation

◆ convert() [1/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const CallEntryMemoryStateMergeOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 1034 of file IpGraphToLlvmConverter.cpp.

◆ convert() [2/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const CallExitMemoryStateSplitOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 1043 of file IpGraphToLlvmConverter.cpp.

◆ convert() [3/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const CallOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 248 of file IpGraphToLlvmConverter.cpp.

◆ convert() [4/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantAggregateZeroOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 574 of file IpGraphToLlvmConverter.cpp.

◆ convert() [5/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantArrayOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &   
)
private

Definition at line 552 of file IpGraphToLlvmConverter.cpp.

◆ convert() [6/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantDataArray op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 495 of file IpGraphToLlvmConverter.cpp.

◆ convert() [7/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantFP op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 206 of file IpGraphToLlvmConverter.cpp.

◆ convert() [8/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantPointerNullOperation operation,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 703 of file IpGraphToLlvmConverter.cpp.

◆ convert() [9/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ConstantStruct op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &   
)
private

Definition at line 686 of file IpGraphToLlvmConverter.cpp.

◆ convert() [10/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ExtractValueOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 916 of file IpGraphToLlvmConverter.cpp.

◆ convert() [11/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const FreeOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 943 of file IpGraphToLlvmConverter.cpp.

◆ convert() [12/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const FunctionToPointerOperation ,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &   
)
private

Definition at line 1061 of file IpGraphToLlvmConverter.cpp.

◆ convert() [13/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const LambdaEntryMemoryStateSplitOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 1016 of file IpGraphToLlvmConverter.cpp.

◆ convert() [14/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const LambdaExitMemoryStateMergeOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 1025 of file IpGraphToLlvmConverter.cpp.

◆ convert() [15/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const LoadNonVolatileOperation operation,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 367 of file IpGraphToLlvmConverter.cpp.

◆ convert() [16/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const LoadVolatileOperation operation,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 381 of file IpGraphToLlvmConverter.cpp.

◆ convert() [17/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const MallocOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 926 of file IpGraphToLlvmConverter.cpp.

◆ convert() [18/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const MemCpyNonVolatileOperation ,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 960 of file IpGraphToLlvmConverter.cpp.

◆ convert() [19/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const MemCpyVolatileOperation ,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 979 of file IpGraphToLlvmConverter.cpp.

◆ convert() [20/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const MemoryStateMergeOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 998 of file IpGraphToLlvmConverter.cpp.

◆ convert() [21/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const MemoryStateSplitOperation ,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 1007 of file IpGraphToLlvmConverter.cpp.

◆ convert() [22/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const PointerToFunctionOperation ,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &   
)
private

Definition at line 1052 of file IpGraphToLlvmConverter.cpp.

◆ convert() [23/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const PoisonValueOperation operation,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 235 of file IpGraphToLlvmConverter.cpp.

◆ convert() [24/28]

template<class OP >
::llvm::Value* jlm::llvm::IpGraphToLlvmConverter::convert ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)

Definition at line 1071 of file IpGraphToLlvmConverter.cpp.

◆ convert() [25/28]

template<class OP >
::llvm::Value* jlm::llvm::IpGraphToLlvmConverter::convert ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

◆ convert() [26/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const ShuffleVectorOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 826 of file IpGraphToLlvmConverter.cpp.

◆ convert() [27/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const StoreVolatileOperation operation,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 419 of file IpGraphToLlvmConverter.cpp.

◆ convert() [28/28]

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert ( const VectorSelectOperation ,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 873 of file IpGraphToLlvmConverter.cpp.

◆ convert_alloca()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_alloca ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 429 of file IpGraphToLlvmConverter.cpp.

◆ convert_assignment()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_assignment ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &   
)
private

Definition at line 133 of file IpGraphToLlvmConverter.cpp.

◆ convert_attributes() [1/2]

llvm::AttributeSet jlm::llvm::IpGraphToLlvmConverter::convert_attributes ( const AttributeSet attributeSet)
private

Definition at line 1765 of file IpGraphToLlvmConverter.cpp.

◆ convert_attributes() [2/2]

llvm::AttributeList jlm::llvm::IpGraphToLlvmConverter::convert_attributes ( const FunctionNode f)
private

Definition at line 1784 of file IpGraphToLlvmConverter.cpp.

◆ convert_branch()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_branch ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 321 of file IpGraphToLlvmConverter.cpp.

◆ convert_cast() [1/2]

template<::llvm::Instruction::CastOps OPCODE>
::llvm::Value* jlm::llvm::IpGraphToLlvmConverter::convert_cast ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)

Definition at line 886 of file IpGraphToLlvmConverter.cpp.

◆ convert_cast() [2/2]

template<::llvm::Instruction::CastOps OPCODE>
::llvm::Value* jlm::llvm::IpGraphToLlvmConverter::convert_cast ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

◆ convert_cfg()

void jlm::llvm::IpGraphToLlvmConverter::convert_cfg ( ControlFlowGraph cfg,
::llvm::Function &  f 
)
private

Definition at line 1833 of file IpGraphToLlvmConverter.cpp.

◆ convert_constantdatavector()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_constantdatavector ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 758 of file IpGraphToLlvmConverter.cpp.

◆ convert_constantvector()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_constantvector ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &   
)
private

Definition at line 743 of file IpGraphToLlvmConverter.cpp.

◆ convert_ctl2bits()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_ctl2bits ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &   
)
private

Definition at line 733 of file IpGraphToLlvmConverter.cpp.

◆ convert_ctlconstant()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_ctlconstant ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 192 of file IpGraphToLlvmConverter.cpp.

◆ convert_data_node()

void jlm::llvm::IpGraphToLlvmConverter::convert_data_node ( const DataNode node)
private

Definition at line 1919 of file IpGraphToLlvmConverter.cpp.

◆ convert_extractelement()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_extractelement ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 816 of file IpGraphToLlvmConverter.cpp.

◆ convert_fpbin()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_fpbin ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 643 of file IpGraphToLlvmConverter.cpp.

◆ convert_fpcmp()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_fpcmp ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 610 of file IpGraphToLlvmConverter.cpp.

◆ convert_fpneg()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_fpneg ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 665 of file IpGraphToLlvmConverter.cpp.

◆ convert_function()

void jlm::llvm::IpGraphToLlvmConverter::convert_function ( const FunctionNode node)
private

Definition at line 1904 of file IpGraphToLlvmConverter.cpp.

◆ convert_getelementptr()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_getelementptr ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 446 of file IpGraphToLlvmConverter.cpp.

◆ convert_insertelement()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_insertelement ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 837 of file IpGraphToLlvmConverter.cpp.

◆ convert_instruction()

void jlm::llvm::IpGraphToLlvmConverter::convert_instruction ( const llvm::ThreeAddressCode tac,
const llvm::ControlFlowGraphNode node 
)
private

Definition at line 1450 of file IpGraphToLlvmConverter.cpp.

◆ convert_ipgraph()

void jlm::llvm::IpGraphToLlvmConverter::convert_ipgraph ( )
private

Definition at line 1954 of file IpGraphToLlvmConverter.cpp.

◆ convert_linkage()

const ::llvm::GlobalValue::LinkageTypes & jlm::llvm::IpGraphToLlvmConverter::convert_linkage ( const llvm::Linkage linkage)
private

Definition at line 1933 of file IpGraphToLlvmConverter.cpp.

◆ convert_match()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_match ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 297 of file IpGraphToLlvmConverter.cpp.

◆ convert_operation()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_operation ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  arguments,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 1081 of file IpGraphToLlvmConverter.cpp.

◆ convert_phi()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_phi ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 331 of file IpGraphToLlvmConverter.cpp.

◆ convert_ptrcmp()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_ptrcmp ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 587 of file IpGraphToLlvmConverter.cpp.

◆ convert_select()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_select ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 716 of file IpGraphToLlvmConverter.cpp.

◆ convert_store()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_store ( const rvsdg::SimpleOperation operation,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 408 of file IpGraphToLlvmConverter.cpp.

◆ convert_tacs()

void jlm::llvm::IpGraphToLlvmConverter::convert_tacs ( const tacsvector_t tacs)
private

Definition at line 1465 of file IpGraphToLlvmConverter.cpp.

◆ convert_undef()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_undef ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 215 of file IpGraphToLlvmConverter.cpp.

◆ convert_valist()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_valist ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &   
)
private

Definition at line 676 of file IpGraphToLlvmConverter.cpp.

◆ convert_vectorbinary()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_vectorbinary ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 862 of file IpGraphToLlvmConverter.cpp.

◆ convert_vectorunary()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::convert_vectorunary ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  operands,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 851 of file IpGraphToLlvmConverter.cpp.

◆ ConvertAttributeKind()

llvm::Attribute::AttrKind jlm::llvm::IpGraphToLlvmConverter::ConvertAttributeKind ( const Attribute::kind kind)
static

Definition at line 1620 of file IpGraphToLlvmConverter.cpp.

◆ ConvertBasicBlocks()

std::vector< ControlFlowGraphNode * > jlm::llvm::IpGraphToLlvmConverter::ConvertBasicBlocks ( const ControlFlowGraph controlFlowGraph,
::llvm::Function &  function 
)
private

Definition at line 1810 of file IpGraphToLlvmConverter.cpp.

◆ ConvertEnumAttribute()

llvm::Attribute jlm::llvm::IpGraphToLlvmConverter::ConvertEnumAttribute ( const llvm::EnumAttribute attribute)
private

Definition at line 1731 of file IpGraphToLlvmConverter.cpp.

◆ ConverterIntegerConstant()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::ConverterIntegerConstant ( const rvsdg::SimpleOperation op,
const std::vector< const Variable * > &  ,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 176 of file IpGraphToLlvmConverter.cpp.

◆ ConvertIntAttribute()

llvm::Attribute jlm::llvm::IpGraphToLlvmConverter::ConvertIntAttribute ( const llvm::IntAttribute attribute)
private

Definition at line 1739 of file IpGraphToLlvmConverter.cpp.

◆ ConvertModule()

std::unique_ptr<::llvm::Module > jlm::llvm::IpGraphToLlvmConverter::ConvertModule ( InterProceduralGraphModule ipGraphModule,
::llvm::LLVMContext &  llvmContext 
)

Definition at line 2008 of file IpGraphToLlvmConverter.cpp.

◆ ConvertStringAttribute()

llvm::Attribute jlm::llvm::IpGraphToLlvmConverter::ConvertStringAttribute ( const llvm::StringAttribute attribute)
private

Definition at line 1758 of file IpGraphToLlvmConverter.cpp.

◆ ConvertTypeAttribute()

llvm::Attribute jlm::llvm::IpGraphToLlvmConverter::ConvertTypeAttribute ( const llvm::TypeAttribute attribute)
private

Definition at line 1747 of file IpGraphToLlvmConverter.cpp.

◆ create_conditional_branch()

void jlm::llvm::IpGraphToLlvmConverter::create_conditional_branch ( const ControlFlowGraphNode node)
private

Definition at line 1533 of file IpGraphToLlvmConverter.cpp.

◆ create_return()

void jlm::llvm::IpGraphToLlvmConverter::create_return ( const ControlFlowGraphNode node)
private

Definition at line 1502 of file IpGraphToLlvmConverter.cpp.

◆ create_switch()

void jlm::llvm::IpGraphToLlvmConverter::create_switch ( const ControlFlowGraphNode node)
private

Definition at line 1551 of file IpGraphToLlvmConverter.cpp.

◆ create_terminator_instruction()

void jlm::llvm::IpGraphToLlvmConverter::create_terminator_instruction ( const llvm::ControlFlowGraphNode node)
private

Definition at line 1592 of file IpGraphToLlvmConverter.cpp.

◆ create_unconditional_branch()

void jlm::llvm::IpGraphToLlvmConverter::create_unconditional_branch ( const ControlFlowGraphNode node)
private

Definition at line 1522 of file IpGraphToLlvmConverter.cpp.

◆ CreateAndConvertModule()

std::unique_ptr<::llvm::Module > jlm::llvm::IpGraphToLlvmConverter::CreateAndConvertModule ( InterProceduralGraphModule ipGraphModule,
::llvm::LLVMContext &  ctx 
)
static

Definition at line 2024 of file IpGraphToLlvmConverter.cpp.

◆ CreateBinOpInstruction()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::CreateBinOpInstruction ( const ::llvm::Instruction::BinaryOps  opcode,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 143 of file IpGraphToLlvmConverter.cpp.

◆ CreateICmpInstruction()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::CreateICmpInstruction ( const ::llvm::CmpInst::Predicate  predicate,
const std::vector< const Variable * > &  args,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 154 of file IpGraphToLlvmConverter.cpp.

◆ CreateLoadInstruction()

llvm::Value * jlm::llvm::IpGraphToLlvmConverter::CreateLoadInstruction ( const rvsdg::Type loadedType,
const Variable address,
bool  isVolatile,
size_t  alignment,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 350 of file IpGraphToLlvmConverter.cpp.

◆ CreateStoreInstruction()

void jlm::llvm::IpGraphToLlvmConverter::CreateStoreInstruction ( const Variable address,
const Variable value,
bool  isVolatile,
size_t  alignment,
::llvm::IRBuilder<> &  builder 
)
private

Definition at line 395 of file IpGraphToLlvmConverter.cpp.

◆ get_bitdata()

template<typename T >
std::vector< T > jlm::llvm::IpGraphToLlvmConverter::get_bitdata ( const std::vector< const Variable * > &  args)
private

Definition at line 466 of file IpGraphToLlvmConverter.cpp.

◆ get_fpdata()

template<typename T >
std::vector< T > jlm::llvm::IpGraphToLlvmConverter::get_fpdata ( const std::vector< const Variable * > &  args)
private

Definition at line 481 of file IpGraphToLlvmConverter.cpp.

◆ operator=() [1/2]

IpGraphToLlvmConverter& jlm::llvm::IpGraphToLlvmConverter::operator= ( const IpGraphToLlvmConverter )
delete

◆ operator=() [2/2]

IpGraphToLlvmConverter& jlm::llvm::IpGraphToLlvmConverter::operator= ( IpGraphToLlvmConverter &&  )
delete

Member Data Documentation

◆ Context_

std::unique_ptr<Context> jlm::llvm::IpGraphToLlvmConverter::Context_
private

Definition at line 506 of file IpGraphToLlvmConverter.hpp.


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