LLVM API Documentation

llvm::IntrinsicLowering Class Reference

#include <IntrinsicLowering.h>

Collaboration diagram for llvm::IntrinsicLowering:
[legend]

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 26 of file IntrinsicLowering.h.


Constructor & Destructor Documentation

llvm::IntrinsicLowering::IntrinsicLowering ( const TargetData &  td  )  [inline, explicit]

Definition at line 29 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 654 of file IntrinsicLowering.cpp.

References llvm::Intrinsic::bswap, llvm::cerr(), llvm::BinaryOperator::CreateNot(), llvm::Intrinsic::ctlz, llvm::Intrinsic::ctpop, llvm::Intrinsic::cttz, llvm::Intrinsic::dbg_declare, llvm::Intrinsic::dbg_func_start, llvm::Intrinsic::dbg_region_end, llvm::Intrinsic::dbg_region_start, llvm::Intrinsic::dbg_stoppoint, llvm::Intrinsic::eh_exception, llvm::Intrinsic::eh_selector_i32, llvm::Intrinsic::eh_selector_i64, llvm::Intrinsic::eh_typeid_for_i32, llvm::Intrinsic::eh_typeid_for_i64, llvm::Instruction::eraseFromParent(), llvm::Intrinsic::exp, llvm::Intrinsic::exp2, llvm::Intrinsic::flt_rounds, llvm::Intrinsic::frameaddress, llvm::ConstantPointerNull::get(), llvm::ConstantInt::get(), llvm::CallInst::getCalledFunction(), llvm::TargetData::getIntPtrType(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::Type::Int32Ty, llvm::Type::Int64Ty, llvm::Intrinsic::log, llvm::Intrinsic::log10, llvm::Intrinsic::log2, llvm::Intrinsic::longjmp, LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), LowerPartSelect(), LowerPartSet(), llvm::Intrinsic::memcpy, llvm::Intrinsic::memmove, llvm::Intrinsic::memset, llvm::Intrinsic::not_intrinsic, llvm::User::op_begin(), llvm::User::op_end(), llvm::Intrinsic::part_select, llvm::Intrinsic::part_set, llvm::Intrinsic::pcmarker, llvm::Intrinsic::pow, llvm::Intrinsic::prefetch, llvm::Intrinsic::readcyclecounter, llvm::Value::replaceAllUsesWith(), ReplaceCallWith(), ReplaceFPIntrinsicWithCall(), llvm::Intrinsic::returnaddress, llvm::Intrinsic::setjmp, llvm::Intrinsic::siglongjmp, llvm::Intrinsic::sigsetjmp, llvm::Intrinsic::sqrt, Src, llvm::Intrinsic::stackrestore, llvm::Intrinsic::stacksave, llvm::Value::use_empty(), V, llvm::Intrinsic::var_annotation, and llvm::Type::VoidTy.

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


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