LLVM 22.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
Attributes.h File Reference

This file contains the simple types necessary to represent the attributes associated with functions and their calls. More...

#include "llvm-c/Types.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/Alignment.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ModRef.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include <cassert>
#include <cstdint>
#include <optional>
#include <string>
#include <utility>
#include "llvm/IR/Attributes.inc"

Go to the source code of this file.

Classes

class  llvm::Attribute
 
class  llvm::AttributeSet
 
struct  llvm::DenseMapInfo< AttributeSet, void >
 
class  llvm::AttributeList
 
struct  llvm::AttributeList::index_iterator
 
struct  llvm::AttributeList::index_iterator::int_wrapper
 
struct  llvm::DenseMapInfo< AttributeList, void >
 
class  llvm::AttrBuilder
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::AttributeFuncs
 

Macros

#define GET_ATTR_ENUM
 

Enumerations

enum class  llvm::AllocFnKind : uint64_t {
  llvm::Unknown = 0 , llvm::Alloc = 1 << 0 , llvm::Realloc = 1 << 1 , llvm::Free = 1 << 2 ,
  llvm::Uninitialized = 1 << 3 , llvm::Zeroed = 1 << 4 , llvm::Aligned = 1 << 5
}
 
enum  llvm::AttributeFuncs::AttributeSafetyKind : uint8_t { llvm::AttributeFuncs::ASK_SAFE_TO_DROP = 1 , llvm::AttributeFuncs::ASK_UNSAFE_TO_DROP = 2 , llvm::AttributeFuncs::ASK_ALL = ASK_SAFE_TO_DROP | ASK_UNSAFE_TO_DROP }
 

Functions

LLVMAttributeRef llvm::wrap (Attribute Attr)
 
Attribute llvm::unwrap (LLVMAttributeRef Attr)
 
LLVM_ABI bool llvm::AttributeFuncs::isNoFPClassCompatibleType (Type *Ty)
 Returns true if this is a type legal for the 'nofpclass' attribute.
 
LLVM_ABI AttributeMask llvm::AttributeFuncs::typeIncompatible (Type *Ty, AttributeSet AS, AttributeSafetyKind ASK=ASK_ALL)
 Which attributes cannot be applied to a type.
 
LLVM_ABI AttributeMask llvm::AttributeFuncs::getUBImplyingAttributes ()
 Get param/return attributes which imply immediate undefined behavior if an invalid value is passed.
 
LLVM_ABI bool llvm::AttributeFuncs::areInlineCompatible (const Function &Caller, const Function &Callee)
 
LLVM_ABI bool llvm::AttributeFuncs::areOutlineCompatible (const Function &A, const Function &B)
 Checks if there are any incompatible function attributes between A and B.
 
LLVM_ABI void llvm::AttributeFuncs::mergeAttributesForInlining (Function &Caller, const Function &Callee)
 Merge caller's and callee's attributes.
 
LLVM_ABI void llvm::AttributeFuncs::mergeAttributesForOutlining (Function &Base, const Function &ToMerge)
 Merges the functions attributes from ToMerge into function Base.
 
LLVM_ABI void llvm::AttributeFuncs::updateMinLegalVectorWidthAttr (Function &Fn, uint64_t Width)
 Update min-legal-vector-width if it is in Attribute and less than Width.
 

Detailed Description

This file contains the simple types necessary to represent the attributes associated with functions and their calls.

Definition in file Attributes.h.

Macro Definition Documentation

◆ GET_ATTR_ENUM

#define GET_ATTR_ENUM

Definition at line 91 of file Attributes.h.