LLVM API Documentation

Public Member Functions | Static Public Member Functions
llvm::IntrinsicLowering Class Reference

#include <IntrinsicLowering.h>

List of all members.

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) [inline, explicit]

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::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_end(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd(), llvm::Instruction::eraseFromParent(), llvm::errs(), llvm::LibFunc::exp, llvm::LibFunc::exp2, 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::Type::isVoidTy(), llvm::LibFunc::log, llvm::LibFunc::log10, llvm::LibFunc::log2, LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), llvm::LibFunc::memcpy, llvm::LibFunc::memmove, llvm::LibFunc::memset, llvm::Intrinsic::not_intrinsic, llvm::LibFunc::pow, llvm::Value::replaceAllUsesWith(), ReplaceCallWith(), ReplaceFPIntrinsicWithCall(), llvm::report_fatal_error(), llvm::Value::setName(), llvm::LibFunc::sqrt, and llvm::Value::use_empty().

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

bool IntrinsicLowering::LowerToByteSwap ( CallInst CI) [static]

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