|
LLVM
4.0.0
|
#include "llvm/IR/Attributes.h"#include "llvm/IR/Function.h"#include "AttributeImpl.h"#include "LLVMContextImpl.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/StringExtras.h"#include "llvm/IR/Type.h"#include "llvm/Support/Atomic.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ManagedStatic.h"#include "llvm/Support/Mutex.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include "AttributesCompatFunc.inc"Go to the source code of this file.
Macros | |
| #define | GET_ATTR_COMPAT_FUNC |
Functions | |
| static uint64_t | packAllocSizeArgs (unsigned ElemSizeArg, const Optional< unsigned > &NumElemsArg) |
| static std::pair< unsigned, Optional< unsigned > > | unpackAllocSizeArgs (uint64_t Num) |
| template<typename AttrClass > | |
| static bool | isEqual (const Function &Caller, const Function &Callee) |
| template<typename AttrClass > | |
| static void | setAND (Function &Caller, const Function &Callee) |
| Compute the logical AND of the attributes of the caller and the callee. More... | |
| template<typename AttrClass > | |
| static void | setOR (Function &Caller, const Function &Callee) |
| Compute the logical OR of the attributes of the caller and the callee. More... | |
| static void | adjustCallerSSPLevel (Function &Caller, const Function &Callee) |
| If the inlined function had a higher stack protection level than the calling function, then bump up the caller's stack protection level. More... | |
Variables | |
| static const unsigned | AllocSizeNumElemsNotPresent = -1 |
| #define GET_ATTR_COMPAT_FUNC |
Definition at line 1505 of file Attributes.cpp.
If the inlined function had a higher stack protection level than the calling function, then bump up the caller's stack protection level.
Definition at line 1480 of file Attributes.cpp.
References llvm::AttrBuilder::addAttribute(), llvm::Function::addFnAttr(), B, llvm::AttributeSet::FunctionIndex, llvm::Function::getContext(), llvm::Function::hasFnAttribute(), and llvm::Function::removeAttributes().
|
static |
Definition at line 1449 of file Attributes.cpp.
References llvm::Function::getFnAttribute().
Referenced by llvm::ImutAVLFactory< ImutInfo >::add_internal(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::copyFrom(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::destroyAll(), llvm::EliminateDuplicatePHINodes(), llvm::ImutAVLTree< ImutInfo >::find(), llvm::DenseMapInfo< CachedHashStringRef >::getHashValue(), llvm::DenseMapInfo< CachedHashString >::getHashValue(), llvm::SmallDenseMap< llvm::AnalysisKey *, bool, 8 >::grow(), llvm::ImutAVLTree< ImutInfo >::isElementEqual(), llvm::DenseMapInfo< CachedHashStringRef >::isEqual(), llvm::DenseMapInfo< BasicBlockEdge >::isEqual(), llvm::DenseMapInfo< std::pair< T, U > >::isEqual(), llvm::DenseMapInfo< AssertingVH< T > >::isEqual(), llvm::DenseMapInfo< PointerUnion< T, U > >::isEqual(), llvm::DenseMapInfo< TargetInstrInfo::RegSubRegPair >::isEqual(), markAliveBlocks(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::moveFromOldBuckets(), llvm::ImutAVLFactory< ImutInfo >::remove_internal(), and llvm::SmallDenseMap< llvm::AnalysisKey *, bool, 8 >::swap().
|
static |
Definition at line 43 of file Attributes.cpp.
References AllocSizeNumElemsNotPresent, assert(), llvm::Optional< T >::getValueOr(), and llvm::Optional< T >::hasValue().
Referenced by llvm::AttrBuilder::addAllocSizeAttr(), and llvm::Attribute::getWithAllocSizeArgs().
|
static |
Compute the logical AND of the attributes of the caller and the callee.
This function sets the caller's attribute to false if the callee's attribute is false.
Definition at line 1460 of file Attributes.cpp.
|
static |
Compute the logical OR of the attributes of the caller and the callee.
This function sets the caller's attribute to true if the callee's attribute is true.
Definition at line 1472 of file Attributes.cpp.
Definition at line 54 of file Attributes.cpp.
References AllocSizeNumElemsNotPresent.
Referenced by llvm::Attribute::getAllocSizeArgs(), and llvm::AttrBuilder::getAllocSizeArgs().
Definition at line 41 of file Attributes.cpp.
Referenced by packAllocSizeArgs(), and unpackAllocSizeArgs().
1.8.6