LLVM API Documentation
#include "llvm/IR/Constants.h"
#include "ConstantFold.h"
#include "LLVMContextImpl.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cstdarg>
Go to the source code of this file.
Functions | |
static bool | canTrapImpl (const Constant *C, SmallPtrSetImpl< const ConstantExpr * > &NonTrappingOps) |
static bool | ConstHasGlobalValuePredicate (const Constant *C, bool(*Predicate)(const GlobalValue *)) |
Check if C contains a GlobalValue for which Predicate is true. | |
static bool | removeDeadUsersOfConstant (const Constant *C) |
static const fltSemantics * | TypeToFloatSemantics (Type *Ty) |
template<typename ItTy , typename EltTy > | |
static bool | rangeOnlyContains (ItTy Start, ItTy End, EltTy Elt) |
static Constant * | getFoldedCast (Instruction::CastOps opc, Constant *C, Type *Ty, bool OnlyIfReduced=false) |
static bool | isAllZeros (StringRef Arr) |
isAllZeros - return true if the array is empty or all zeros. |
static bool canTrapImpl | ( | const Constant * | C, |
SmallPtrSetImpl< const ConstantExpr * > & | NonTrappingOps | ||
) | [static] |
Definition at line 308 of file Constants.cpp.
References llvm::CallingConv::C, llvm::WinEH::CE, llvm::dyn_cast(), llvm::User::getNumOperands(), llvm::Value::getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Type::isFirstClassType().
Referenced by llvm::Constant::canTrap().
static bool ConstHasGlobalValuePredicate | ( | const Constant * | C, |
bool(*)(const GlobalValue *) | Predicate | ||
) | [static] |
Check if C contains a GlobalValue for which Predicate is true.
Definition at line 350 of file Constants.cpp.
References llvm::dyn_cast(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::User::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by llvm::Constant::isDLLImportDependent(), and llvm::Constant::isThreadDependent().
static Constant* getFoldedCast | ( | Instruction::CastOps | opc, |
Constant * | C, | ||
Type * | Ty, | ||
bool | OnlyIfReduced = false |
||
) | [static] |
This is a utility function to handle folding of casts and lookup of the cast in the ExprConstants map. It is used by the various get* methods below.
Definition at line 1533 of file Constants.cpp.
References llvm::ConstantFoldCastInstruction(), llvm::LLVMContextImpl::ExprConstants, R600_InstFlag::FC, llvm::Type::getContext(), llvm::ConstantUniqueMap< ConstantClass >::getOrCreate(), llvm::Type::isFirstClassType(), and llvm::LLVMContext::pImpl.
Referenced by llvm::ConstantExpr::getAddrSpaceCast(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getFPExtend(), llvm::ConstantExpr::getFPToSI(), llvm::ConstantExpr::getFPToUI(), llvm::ConstantExpr::getFPTrunc(), llvm::ConstantExpr::getIntToPtr(), llvm::ConstantExpr::getPtrToInt(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSIToFP(), llvm::ConstantExpr::getTrunc(), llvm::ConstantExpr::getUIToFP(), and llvm::ConstantExpr::getZExt().
static bool isAllZeros | ( | StringRef | Arr | ) | [static] |
isAllZeros - return true if the array is empty or all zeros.
Definition at line 2420 of file Constants.cpp.
References llvm::StringRef::begin(), llvm::StringRef::end(), and I.
Referenced by llvm::ConstantDataSequential::getImpl(), and llvm::ConstantStruct::replaceUsesOfWithOnConstant().
static bool rangeOnlyContains | ( | ItTy | Start, |
ItTy | End, | ||
EltTy | Elt | ||
) | [static] |
Definition at line 809 of file Constants.cpp.
static bool removeDeadUsersOfConstant | ( | const Constant * | C | ) | [static] |
removeDeadUsersOfConstant - If the specified constantexpr is dead, remove it. This involves recursively eliminating any dead users of the constantexpr.
Definition at line 457 of file Constants.cpp.
References llvm::CallingConv::C, llvm::dyn_cast(), llvm::Value::use_empty(), and llvm::Value::user_back().
Referenced by llvm::Constant::removeDeadConstantUsers().
static const fltSemantics* TypeToFloatSemantics | ( | Type * | Ty | ) | [static] |
Definition at line 617 of file Constants.cpp.
References llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEhalf, llvm::APFloat::IEEEquad, llvm::APFloat::IEEEsingle, llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isFP128Ty(), llvm::Type::isHalfTy(), llvm::Type::isPPC_FP128Ty(), llvm::Type::isX86_FP80Ty(), llvm::APFloat::PPCDoubleDouble, and llvm::APFloat::x87DoubleExtended.
Referenced by llvm::ConstantFP::ConstantFP(), llvm::ConstantFP::get(), llvm::ConstantFP::getInfinity(), and llvm::ConstantFP::getNegativeZero().