LLVM 19.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/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)
 
bool llvm::AttributeFuncs::isNoFPClassCompatibleType (Type *Ty)
 Returns true if this is a type legal for the 'nofpclass' attribute.
 
AttributeMask llvm::AttributeFuncs::typeIncompatible (Type *Ty, AttributeSafetyKind ASK=ASK_ALL)
 Which attributes cannot be applied to a type.
 
AttributeMask llvm::AttributeFuncs::getUBImplyingAttributes ()
 Get param/return attributes which imply immediate undefined behavior if an invalid value is passed.
 
bool llvm::AttributeFuncs::areInlineCompatible (const Function &Caller, const Function &Callee)
 
bool llvm::AttributeFuncs::areOutlineCompatible (const Function &A, const Function &B)
 Checks if there are any incompatible function attributes between A and B.
 
void llvm::AttributeFuncs::mergeAttributesForInlining (Function &Caller, const Function &Callee)
 Merge caller's and callee's attributes.
 
void llvm::AttributeFuncs::mergeAttributesForOutlining (Function &Base, const Function &ToMerge)
 Merges the functions attributes from ToMerge into function Base.
 
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 88 of file Attributes.h.