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

#include <TypeConverter.hpp>

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

Public Member Functions

 TypeConverter ()=default
 
 TypeConverter (const TypeConverter &)=delete
 
 TypeConverter (const TypeConverter &&)=delete
 
TypeConverteroperator= (const TypeConverter &)=delete
 
TypeConverteroperator= (const TypeConverter &&)=delete
 
::llvm::FunctionType * ConvertFunctionType (const rvsdg::FunctionType &functionType, ::llvm::LLVMContext &context)
 
::llvm::StructTypeConvertStructType (const StructType &type, ::llvm::LLVMContext &context)
 
::llvm::ArrayTypeConvertArrayType (const ArrayType &type, ::llvm::LLVMContext &context)
 
::llvm::Type * ConvertJlmType (const rvsdg::Type &type, ::llvm::LLVMContext &context)
 
std::shared_ptr< const rvsdg::FunctionTypeConvertFunctionType (const ::llvm::FunctionType &functionType)
 
std::shared_ptr< const rvsdg::TypeConvertLlvmType (::llvm::Type &type)
 

Static Public Member Functions

static fpsize ExtractFloatingPointSize (const ::llvm::Type &type)
 
::llvm::IntegerType * ConvertBitType (const rvsdg::BitType &bitType, ::llvm::LLVMContext &context)
 
::llvm::PointerTypeConvertPointerType (const PointerType &type, ::llvm::LLVMContext &context)
 
static std::shared_ptr< const PointerTypeConvertPointerType (const ::llvm::PointerType &pointerType)
 

Static Private Member Functions

::llvm::Type * ConvertFloatingPointType (const FloatingPointType &type, ::llvm::LLVMContext &context)
 

Private Attributes

util::BijectiveMap<::llvm::StructType *, std::shared_ptr< const StructType > > StructTypeMap_
 

Detailed Description

Converts Llvm to Jlm types and vice versa.

Definition at line 37 of file TypeConverter.hpp.

Constructor & Destructor Documentation

◆ TypeConverter() [1/3]

jlm::llvm::TypeConverter::TypeConverter ( )
default

◆ TypeConverter() [2/3]

jlm::llvm::TypeConverter::TypeConverter ( const TypeConverter )
delete

◆ TypeConverter() [3/3]

jlm::llvm::TypeConverter::TypeConverter ( const TypeConverter &&  )
delete

Member Function Documentation

◆ ConvertArrayType()

llvm::ArrayType * jlm::llvm::TypeConverter::ConvertArrayType ( const ArrayType type,
::llvm::LLVMContext &  context 
)

Definition at line 113 of file TypeConverter.cpp.

◆ ConvertBitType()

llvm::IntegerType * jlm::llvm::TypeConverter::ConvertBitType ( const rvsdg::BitType bitType,
::llvm::LLVMContext &  context 
)
static

Definition at line 39 of file TypeConverter.cpp.

◆ ConvertFloatingPointType()

llvm::Type * jlm::llvm::TypeConverter::ConvertFloatingPointType ( const FloatingPointType type,
::llvm::LLVMContext &  context 
)
staticprivate

Definition at line 119 of file TypeConverter.cpp.

◆ ConvertFunctionType() [1/2]

std::shared_ptr< const rvsdg::FunctionType > jlm::llvm::TypeConverter::ConvertFunctionType ( const ::llvm::FunctionType &  functionType)

Definition at line 77 of file TypeConverter.cpp.

◆ ConvertFunctionType() [2/2]

llvm::FunctionType * jlm::llvm::TypeConverter::ConvertFunctionType ( const rvsdg::FunctionType functionType,
::llvm::LLVMContext &  context 
)

Definition at line 45 of file TypeConverter.cpp.

◆ ConvertJlmType()

llvm::Type * jlm::llvm::TypeConverter::ConvertJlmType ( const rvsdg::Type type,
::llvm::LLVMContext &  context 
)

Definition at line 168 of file TypeConverter.cpp.

◆ ConvertLlvmType()

std::shared_ptr< const rvsdg::Type > jlm::llvm::TypeConverter::ConvertLlvmType ( ::llvm::Type &  type)

Definition at line 226 of file TypeConverter.cpp.

◆ ConvertPointerType() [1/2]

std::shared_ptr< const PointerType > jlm::llvm::TypeConverter::ConvertPointerType ( const ::llvm::PointerType pointerType)
static

Definition at line 106 of file TypeConverter.cpp.

◆ ConvertPointerType() [2/2]

llvm::PointerType * jlm::llvm::TypeConverter::ConvertPointerType ( const PointerType type,
::llvm::LLVMContext &  context 
)
static

Definition at line 99 of file TypeConverter.cpp.

◆ ConvertStructType()

llvm::StructType * jlm::llvm::TypeConverter::ConvertStructType ( const StructType type,
::llvm::LLVMContext &  context 
)

Definition at line 141 of file TypeConverter.cpp.

◆ ExtractFloatingPointSize()

fpsize jlm::llvm::TypeConverter::ExtractFloatingPointSize ( const ::llvm::Type &  type)
static

Definition at line 17 of file TypeConverter.cpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ StructTypeMap_

util::BijectiveMap<::llvm::StructType *, std::shared_ptr<const StructType> > jlm::llvm::TypeConverter::StructTypeMap_
private

Definition at line 86 of file TypeConverter.hpp.


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