Jlm
Namespaces | Functions
LlvmInstructionConversion.cpp File Reference
#include <jlm/llvm/frontend/LlvmConversionContext.hpp>
#include <jlm/llvm/frontend/LlvmInstructionConversion.hpp>
#include <jlm/llvm/ir/operators.hpp>
#include <jlm/llvm/ir/operators/IntegerOperations.hpp>
#include <jlm/llvm/ir/operators/IOBarrier.hpp>
#include <jlm/llvm/ir/operators/SpecializedArithmeticIntrinsicOperations.hpp>
#include <llvm/ADT/StringExtras.h>
#include <llvm/IR/Constants.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/IntrinsicInst.h>
Include dependency graph for LlvmInstructionConversion.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::llvm
 Global memory state passed between functions.
 

Functions

const Variable * jlm::llvm::ConvertValueOrFunction (::llvm::Value *v, tacsvector_t &tacs, Context &ctx)
 
const Variable * jlm::llvm::ConvertValue (::llvm::Value *v, tacsvector_t &tacs, Context &ctx)
 
const Variable * jlm::llvm::ConvertConstant (::llvm::Constant *, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &, Context &)
 
static rvsdg::BitValueRepresentation jlm::llvm::convert_apint (const ::llvm::APInt &value)
 
static const Variable * jlm::llvm::convert_int_constant (::llvm::Constant *c, std::vector< std::unique_ptr< ThreeAddressCode >> &tacs, Context &)
 
static const Variable * jlm::llvm::convert_undefvalue (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantExpr (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantFP (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_globalVariable (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantPointerNull (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_blockAddress (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &, Context &)
 
static const Variable * jlm::llvm::convert_constantAggregateZero (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantArray (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantDataArray (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantDataVector (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::ConvertConstantStruct (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_constantVector (::llvm::Constant *c, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_globalAlias (::llvm::Constant *constant, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &, Context &)
 
static const Variable * jlm::llvm::convert_function (::llvm::Constant *c, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::ConvertConstant (::llvm::PoisonValue *poisonValue, tacsvector_t &threeAddressCodeVector, Context &context)
 
template<class T >
static const Variable * jlm::llvm::ConvertConstant (::llvm::Constant *constant, tacsvector_t &threeAddressCodeVector, Context &context)
 
std::vector< std::unique_ptr< llvm::ThreeAddressCode > > jlm::llvm::ConvertConstant (::llvm::Constant *c, Context &ctx)
 
static const Variable * jlm::llvm::convert_return_instruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::ConvertBranchInstruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::ConvertSwitchInstruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_unreachable_instruction (::llvm::Instruction *i, tacsvector_t &, Context &ctx)
 
static std::unique_ptr< rvsdg::BinaryOperation > jlm::llvm::ConvertIntegerIcmpPredicate (const ::llvm::CmpInst::Predicate predicate, const std::size_t numBits)
 
static std::unique_ptr< rvsdg::BinaryOperation > jlm::llvm::ConvertPointerIcmpPredicate (const ::llvm::CmpInst::Predicate predicate)
 
static const Variable * jlm::llvm::convert (const ::llvm::ICmpInst *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_fcmp_instruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::AddIOBarrier (tacsvector_t &tacs, const Variable *operand, const Context &ctx)
 
static const Variable * jlm::llvm::convert_load_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_store_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::ConvertPhiInstruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_getelementptr_instruction (::llvm::Instruction *inst, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_malloc_call (const ::llvm::CallInst *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_free_call (const ::llvm::CallInst *i, tacsvector_t &tacs, Context &ctx)
 
static bool jlm::llvm::IsVolatile (const ::llvm::Value &value)
 
static const Variable * jlm::llvm::convert_memcpy_call (const ::llvm::CallInst *instruction, tacsvector_t &tacs, Context &ctx)
 
static bool jlm::llvm::IsFMulAddIntrinsic (const ::llvm::Instruction &instruction)
 
static const Variable * jlm::llvm::ConvertFMulAddIntrinsic (const ::llvm::CallInst &instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_call_instruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_select_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static std::unique_ptr< rvsdg::BinaryOperation > jlm::llvm::ConvertIntegerBinaryOperation (const ::llvm::Instruction::BinaryOps binaryOperation, std::size_t numBits)
 
static std::unique_ptr< rvsdg::BinaryOperation > jlm::llvm::ConvertFloatingPointBinaryOperation (const ::llvm::Instruction::BinaryOps binaryOperation, fpsize floatingPointSize)
 
static const Variable * jlm::llvm::convert (const ::llvm::BinaryOperator *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_alloca_instruction (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_extractvalue (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_extractelement_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert (::llvm::ShuffleVectorInst *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert_insertelement_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
static const Variable * jlm::llvm::convert (::llvm::UnaryOperator *unaryOperator, tacsvector_t &threeAddressCodeVector, Context &ctx)
 
template<class OP >
static std::unique_ptr< rvsdg::SimpleOperation > jlm::llvm::create_unop (std::shared_ptr< const rvsdg::Type > st, std::shared_ptr< const rvsdg::Type > dt)
 
static const Variable * jlm::llvm::convert_cast_instruction (::llvm::Instruction *i, tacsvector_t &tacs, Context &ctx)
 
template<class INSTRUCTIONTYPE >
static const Variable * jlm::llvm::convert (::llvm::Instruction *instruction, tacsvector_t &tacs, Context &ctx)
 
const Variable * jlm::llvm::ConvertInstruction (::llvm::Instruction *i, std::vector< std::unique_ptr< llvm::ThreeAddressCode >> &tacs, Context &ctx)