LLVM API Documentation

Functions | Variables
SimplifyLibCalls.cpp File Reference
#include "llvm/Transforms/Utils/SimplifyLibCalls.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetLibraryInfo.h"
#include "llvm/Transforms/Utils/BuildLibCalls.h"
Include dependency graph for SimplifyLibCalls.cpp:

Go to the source code of this file.

Functions

static bool ignoreCallingConv (LibFunc::Func Func)
static bool isOnlyUsedInZeroEqualityComparison (Value *V)
static bool isOnlyUsedInEqualityComparison (Value *V, Value *With)
static bool callHasFloatingPointArgument (const CallInst *CI)
static bool hasUnaryFloatFn (const TargetLibraryInfo *TLI, Type *Ty, LibFunc::Func DoubleFn, LibFunc::Func FloatFn, LibFunc::Func LongDoubleFn)
 Check whether the overloaded unary floating point function corresponing to Ty is available.
static bool isFortifiedCallFoldable (CallInst *CI, unsigned SizeCIOp, unsigned SizeArgOp, bool isString)
static bool isTrigLibCall (CallInst *CI)
static void insertSinCosCall (IRBuilder<> &B, Function *OrigCallee, Value *Arg, bool UseFloat, Value *&Sin, Value *&Cos, Value *&SinCos)
static bool isReportingError (Function *Callee, CallInst *CI, int StreamArg)

Variables

static cl::opt< boolColdErrorCalls ("error-reporting-is-cold", cl::init(true), cl::Hidden, cl::desc("Treat error-reporting calls as cold"))

Function Documentation

static bool callHasFloatingPointArgument ( const CallInst CI) [static]

Definition at line 86 of file SimplifyLibCalls.cpp.

References llvm::User::op_begin(), and llvm::User::op_end().

static bool hasUnaryFloatFn ( const TargetLibraryInfo TLI,
Type Ty,
LibFunc::Func  DoubleFn,
LibFunc::Func  FloatFn,
LibFunc::Func  LongDoubleFn 
) [static]

Check whether the overloaded unary floating point function corresponing to Ty is available.

Definition at line 97 of file SimplifyLibCalls.cpp.

References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::getTypeID(), and llvm::TargetLibraryInfo::has().

static bool ignoreCallingConv ( LibFunc::Func  Func) [static]
void insertSinCosCall ( IRBuilder<> &  B,
Function OrigCallee,
Value Arg,
bool  UseFloat,
Value *&  Sin,
Value *&  Cos,
Value *&  SinCos 
) [static]
static bool isFortifiedCallFoldable ( CallInst CI,
unsigned  SizeCIOp,
unsigned  SizeArgOp,
bool  isString 
) [static]
static bool isOnlyUsedInEqualityComparison ( Value V,
Value With 
) [static]

isOnlyUsedInEqualityComparison - Return true if it is only used in equality comparisons with With.

Definition at line 75 of file SimplifyLibCalls.cpp.

References llvm::Value::users().

static bool isOnlyUsedInZeroEqualityComparison ( Value V) [static]

isOnlyUsedInZeroEqualityComparison - Return true if it only matters that the value is equal or not-equal to zero.

Definition at line 60 of file SimplifyLibCalls.cpp.

References llvm::CallingConv::C, and llvm::Value::users().

static bool isReportingError ( Function Callee,
CallInst CI,
int  StreamArg 
) [static]
static bool isTrigLibCall ( CallInst CI) [static]

Variable Documentation

cl::opt<bool> ColdErrorCalls("error-reporting-is-cold", cl::init(true), cl::Hidden, cl::desc("Treat error-reporting calls as cold")) [static]

Referenced by isReportingError().