LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
llvm::IntrinsicLowering Class Reference

#include <IntrinsicLowering.h>

Public Member Functions

 IntrinsicLowering (const DataLayout &td)
 
void AddPrototypes (Module &M)
 
void LowerIntrinsicCall (CallInst *CI)
 

Static Public Member Functions

static bool LowerToByteSwap (CallInst *CI)
 

Detailed Description

Definition at line 26 of file IntrinsicLowering.h.

Constructor & Destructor Documentation

llvm::IntrinsicLowering::IntrinsicLowering ( const DataLayout td)
inlineexplicit

Definition at line 32 of file IntrinsicLowering.h.

Member Function Documentation

void IntrinsicLowering::AddPrototypes ( Module M)
void IntrinsicLowering::LowerIntrinsicCall ( CallInst CI)

LowerIntrinsicCall - This method replaces a call with the LLVM function which should be used to implement the specified intrinsic function call. If an intrinsic function must be implemented by the code generator (such as va_start), this function should print a message and abort.

Otherwise, if an intrinsic function call can be lowered, the code to implement it (often a call to a non-intrinsic function) is inserted after the call instruction and the call is deleted. The caller must be capable of handling this kind of change.

Definition at line 340 of file IntrinsicLowering.cpp.

References llvm::Intrinsic::annotation, llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_end(), llvm::Intrinsic::bswap, llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd(), llvm::Intrinsic::ctlz, llvm::Intrinsic::ctpop, llvm::Intrinsic::cttz, llvm::Intrinsic::dbg_declare, llvm::Intrinsic::eh_typeid_for, llvm::Instruction::eraseFromParent(), llvm::errs(), llvm::Intrinsic::exp, llvm::Intrinsic::exp2, llvm::Intrinsic::expect, llvm::Intrinsic::flt_rounds, llvm::Intrinsic::frameaddress, llvm::ConstantInt::get(), llvm::ConstantPointerNull::get(), llvm::UndefValue::get(), llvm::CallInst::getArgOperand(), llvm::CallInst::getCalledFunction(), llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::DataLayout::getIntPtrType(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::Type::getVoidTy(), llvm::Intrinsic::invariant_end, llvm::Intrinsic::invariant_start, llvm::Type::isVoidTy(), llvm::Intrinsic::lifetime_end, llvm::Intrinsic::lifetime_start, llvm::Intrinsic::log, llvm::Intrinsic::log10, llvm::Intrinsic::log2, llvm::Intrinsic::longjmp, LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), llvm::Intrinsic::memcpy, llvm::Intrinsic::memmove, llvm::Intrinsic::memset, llvm::Intrinsic::not_intrinsic, llvm::Intrinsic::pcmarker, llvm::Intrinsic::pow, llvm::Intrinsic::prefetch, llvm::Intrinsic::ptr_annotation, llvm::Intrinsic::readcyclecounter, llvm::Value::replaceAllUsesWith(), ReplaceCallWith(), ReplaceFPIntrinsicWithCall(), llvm::report_fatal_error(), llvm::Intrinsic::returnaddress, llvm::Intrinsic::setjmp, llvm::Value::setName(), llvm::Intrinsic::siglongjmp, llvm::Intrinsic::sigsetjmp, llvm::Intrinsic::sqrt, llvm::Intrinsic::stackrestore, llvm::Intrinsic::stacksave, llvm::Value::use_empty(), and llvm::Intrinsic::var_annotation.

Referenced by llvm::Interpreter::visitCallSite().

bool IntrinsicLowering::LowerToByteSwap ( CallInst CI)
static

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