LLVM API Documentation
#include <Attributes.h>
Public Types | |
| enum | AttrIndex { ReturnIndex = 0U, FunctionIndex = ~0U } |
| typedef ArrayRef< Attribute > ::iterator | iterator |
Public Member Functions | |
| AttributeSet () | |
| AttributeSet | addAttribute (LLVMContext &C, unsigned Index, Attribute::AttrKind Attr) const |
| Add an attribute to the attribute set at the given index. Since attribute sets are immutable, this returns a new set. | |
| AttributeSet | addAttribute (LLVMContext &C, unsigned Index, StringRef Kind) const |
| Add an attribute to the attribute set at the given index. Since attribute sets are immutable, this returns a new set. | |
| AttributeSet | addAttributes (LLVMContext &C, unsigned Index, AttributeSet Attrs) const |
| Add attributes to the attribute set at the given index. Since attribute sets are immutable, this returns a new set. | |
| AttributeSet | removeAttribute (LLVMContext &C, unsigned Index, Attribute::AttrKind Attr) const |
| Remove the specified attribute at the specified index from this attribute list. Since attribute lists are immutable, this returns the new list. | |
| AttributeSet | removeAttributes (LLVMContext &C, unsigned Index, AttributeSet Attrs) const |
| Remove the specified attributes at the specified index from this attribute list. Since attribute lists are immutable, this returns the new list. | |
| LLVMContext & | getContext () const |
| Retrieve the LLVM context. | |
| AttributeSet | getParamAttributes (unsigned Index) const |
| The attributes for the specified index are returned. | |
| AttributeSet | getRetAttributes () const |
| The attributes for the ret value are returned. | |
| AttributeSet | getFnAttributes () const |
| The function attributes are returned. | |
| bool | hasAttribute (unsigned Index, Attribute::AttrKind Kind) const |
| Return true if the attribute exists at the given index. | |
| bool | hasAttribute (unsigned Index, StringRef Kind) const |
| Return true if the attribute exists at the given index. | |
| bool | hasAttributes (unsigned Index) const |
| Return true if attribute exists at the given index. | |
| bool | hasAttrSomewhere (Attribute::AttrKind Attr) const |
| Return true if the specified attribute is set for at least one parameter or for the return value. | |
| Attribute | getAttribute (unsigned Index, Attribute::AttrKind Kind) const |
| Return the attribute object that exists at the given index. | |
| Attribute | getAttribute (unsigned Index, StringRef Kind) const |
| Return the attribute object that exists at the given index. | |
| unsigned | getParamAlignment (unsigned Index) const |
| Return the alignment for the specified function parameter. | |
| unsigned | getStackAlignment (unsigned Index) const |
| Get the stack alignment. | |
| std::string | getAsString (unsigned Index, bool InAttrGrp=false) const |
| Return the attributes at the index as a string. | |
| iterator | begin (unsigned Slot) const |
| iterator | end (unsigned Slot) const |
| bool | operator== (const AttributeSet &RHS) const |
| operator==/!= - Provide equality predicates. | |
| bool | operator!= (const AttributeSet &RHS) const |
| uint64_t | Raw (unsigned Index) const |
| void * | getRawPointer () const |
| Return a raw pointer that uniquely identifies this attribute list. | |
| bool | isEmpty () const |
| Return true if there are no attributes. | |
| unsigned | getNumSlots () const |
| Return the number of slots used in this attribute list. This is the number of arguments that have an attribute set on them (including the function itself). | |
| unsigned | getSlotIndex (unsigned Slot) const |
| Return the index for the given slot. | |
| AttributeSet | getSlotAttributes (unsigned Slot) const |
| Return the attributes at the given slot. | |
| void | dump () const |
Static Public Member Functions | |
| static AttributeSet | get (LLVMContext &C, ArrayRef< AttributeSet > Attrs) |
| Return an AttributeSet with the specified parameters in it. | |
| static AttributeSet | get (LLVMContext &C, unsigned Index, ArrayRef< Attribute::AttrKind > Kind) |
| static AttributeSet | get (LLVMContext &C, unsigned Index, AttrBuilder &B) |
Friends | |
| class | AttrBuilder |
| class | AttributeSetImpl |
| struct | DenseMapInfo |
Definition at line 198 of file Attributes.h.
Definition at line 313 of file Attributes.h.
Definition at line 200 of file Attributes.h.
| llvm::AttributeSet::AttributeSet | ( | ) | [inline] |
Definition at line 230 of file Attributes.h.
Referenced by get(), getFnAttributes(), getParamAttributes(), getRetAttributes(), and removeAttributes().
| AttributeSet AttributeSet::addAttribute | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| Attribute::AttrKind | Attr | ||
| ) | const |
Add an attribute to the attribute set at the given index. Since attribute sets are immutable, this returns a new set.
Definition at line 653 of file Attributes.cpp.
References addAttributes(), and hasAttribute().
Referenced by llvm::Function::addAttribute(), llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), llvm::Function::addFnAttr(), and fixupFPReturnAndCall().
| AttributeSet AttributeSet::addAttribute | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| StringRef | Kind | ||
| ) | const |
Add an attribute to the attribute set at the given index. Since attribute sets are immutable, this returns a new set.
Definition at line 659 of file Attributes.cpp.
References llvm::AttrBuilder::addAttribute(), and addAttributes().
| AttributeSet AttributeSet::addAttributes | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| AttributeSet | Attrs | ||
| ) | const |
Add attributes to the attribute set at the given index. Since attribute sets are immutable, this returns a new set.
Definition at line 666 of file Attributes.cpp.
References llvm::AttrBuilder::addAttribute(), llvm::AttributeSetImpl::begin(), llvm::CallingConv::C, llvm::AttributeSetImpl::end(), llvm::AttributeSetImpl::getNumAttributes(), getParamAlignment(), getSlotAttributes(), getSlotIndex(), I, llvm::ARM_PROC::IE, and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by addAttribute(), llvm::Function::addAttributes(), llvm::CloneFunctionInto(), LLVMAddFunctionAttr(), LLVMAddInstrAttribute(), and LLVMSetInstrParamAlignment().
| AttributeSet::iterator AttributeSet::begin | ( | unsigned | Slot | ) | const |
Definition at line 869 of file Attributes.cpp.
Referenced by llvm::AttrBuilder::hasAttributes(), llvm::AssemblyWriter::printFunction(), llvm::AttrBuilder::removeAttributes(), and WriteAttributeGroupTable().
| void AttributeSet::dump | ( | ) | const |
Definition at line 909 of file Attributes.cpp.
References llvm::dbgs(), getAsString(), getNumSlots(), and getSlotIndex().
| AttributeSet::iterator AttributeSet::end | ( | unsigned | Slot | ) | const |
Definition at line 875 of file Attributes.cpp.
Referenced by llvm::AttrBuilder::hasAttributes(), llvm::AssemblyWriter::printFunction(), llvm::AttrBuilder::removeAttributes(), and WriteAttributeGroupTable().
| AttributeSet AttributeSet::get | ( | LLVMContext & | C, |
| ArrayRef< AttributeSet > | Attrs | ||
| ) | [static] |
Return an AttributeSet with the specified parameters in it.
Definition at line 640 of file Attributes.cpp.
References llvm::SmallVectorImpl< T >::append(), AttributeSet(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::ArrayRef< T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), I, and llvm::ArrayRef< T >::size().
| AttributeSet AttributeSet::get | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| ArrayRef< Attribute::AttrKind > | Kind | ||
| ) | [static] |
Definition at line 631 of file Attributes.cpp.
References llvm::ArrayRef< T >::begin(), llvm::CallingConv::C, llvm::ArrayRef< T >::end(), llvm::Attribute::get(), I, and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
| AttributeSet AttributeSet::get | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| AttrBuilder & | B | ||
| ) | [static] |
Definition at line 602 of file Attributes.cpp.
References llvm::Attribute::Alignment, AttributeSet(), llvm::CallingConv::C, llvm::AttrBuilder::contains(), llvm::Attribute::EndAttrKinds, llvm::Attribute::get(), llvm::AttrBuilder::getAlignment(), llvm::AttrBuilder::getStackAlignment(), llvm::AttrBuilder::hasAttributes(), I, llvm::Attribute::None, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Attribute::StackAlignment, llvm::AttrBuilder::td_begin(), and llvm::AttrBuilder::td_end().
Return the attributes at the index as a string.
Definition at line 851 of file Attributes.cpp.
References llvm::AttributeSetNode::getAsString(), and llvm::Intrinsic::getAttributes().
Referenced by dump(), llvm::AssemblyWriter::printArgument(), llvm::AssemblyWriter::printFunction(), llvm::AssemblyWriter::printInstruction(), and llvm::AssemblyWriter::writeParamOperand().
| Attribute AttributeSet::getAttribute | ( | unsigned | Index, |
| Attribute::AttrKind | Kind | ||
| ) | const |
Return the attribute object that exists at the given index.
Definition at line 829 of file Attributes.cpp.
References llvm::AttributeSetNode::getAttribute(), and llvm::Intrinsic::getAttributes().
Referenced by llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), llvm::X86Subtarget::resetSubtargetFeatures(), and llvm::ARMSubtarget::resetSubtargetFeatures().
Return the attribute object that exists at the given index.
Definition at line 835 of file Attributes.cpp.
References llvm::AttributeSetNode::getAttribute(), and llvm::Intrinsic::getAttributes().
| LLVMContext & AttributeSet::getContext | ( | ) | const |
Retrieve the LLVM context.
Definition at line 770 of file Attributes.cpp.
| AttributeSet AttributeSet::getFnAttributes | ( | ) | const |
The function attributes are returned.
Definition at line 791 of file Attributes.cpp.
References AttributeSet(), FunctionIndex, llvm::Intrinsic::getAttributes(), and hasAttributes().
Referenced by llvm::CloneFunctionInto(), llvm::AssemblyWriter::printFunction(), and llvm::AssemblyWriter::printInstruction().
| unsigned AttributeSet::getNumSlots | ( | ) | const |
Return the number of slots used in this attribute list. This is the number of arguments that have an attribute set on them (including the function itself).
Definition at line 888 of file Attributes.cpp.
Referenced by llvm::Argument::addAttr(), llvm::CloneFunctionInto(), dump(), llvm::AttrBuilder::hasAttributes(), isEmpty(), llvm::AssemblyWriter::printFunction(), llvm::Argument::removeAttr(), llvm::AttrBuilder::removeAttributes(), StripNest(), WriteAttributeGroupTable(), and WriteAttributeTable().
Return the alignment for the specified function parameter.
Definition at line 841 of file Attributes.cpp.
References llvm::AttributeSetNode::getAlignment(), and llvm::Intrinsic::getAttributes().
Referenced by addAttributes(), llvm::Function::getParamAlignment(), llvm::CallInst::getParamAlignment(), and llvm::InvokeInst::getParamAlignment().
| AttributeSet AttributeSet::getParamAttributes | ( | unsigned | Index | ) | const |
The attributes for the specified index are returned.
Definition at line 774 of file Attributes.cpp.
References AttributeSet(), llvm::Intrinsic::getAttributes(), and hasAttributes().
Referenced by llvm::CloneFunctionInto().
| void* llvm::AttributeSet::getRawPointer | ( | ) | const [inline] |
Return a raw pointer that uniquely identifies this attribute list.
Definition at line 334 of file Attributes.h.
| AttributeSet AttributeSet::getRetAttributes | ( | ) | const |
The attributes for the ret value are returned.
Definition at line 782 of file Attributes.cpp.
References AttributeSet(), llvm::Intrinsic::getAttributes(), hasAttributes(), and ReturnIndex.
Referenced by llvm::CloneFunctionInto().
| AttributeSet AttributeSet::getSlotAttributes | ( | unsigned | Slot | ) | const |
Return the attributes at the given slot.
Definition at line 898 of file Attributes.cpp.
Referenced by addAttributes(), removeAttributes(), StripNest(), WriteAttributeGroupTable(), and WriteAttributeTable().
Return the index for the given slot.
Definition at line 892 of file Attributes.cpp.
Referenced by llvm::Argument::addAttr(), addAttributes(), dump(), llvm::AttrBuilder::hasAttributes(), llvm::AssemblyWriter::printFunction(), llvm::Argument::removeAttr(), removeAttributes(), llvm::AttrBuilder::removeAttributes(), StripNest(), and WriteAttributeGroupTable().
Get the stack alignment.
Definition at line 846 of file Attributes.cpp.
References llvm::Intrinsic::getAttributes(), and llvm::AttributeSetNode::getStackAlignment().
| bool AttributeSet::hasAttribute | ( | unsigned | Index, |
| Attribute::AttrKind | Kind | ||
| ) | const |
Return true if the attribute exists at the given index.
Definition at line 800 of file Attributes.cpp.
References llvm::Intrinsic::getAttributes(), and llvm::AttributeSetNode::hasAttribute().
Referenced by addAttribute(), llvm::Function::cannotDuplicate(), checkNumAlignedDPRCS2Regs(), llvm::Function::doesNotAccessMemory(), llvm::Function::doesNotAlias(), llvm::Function::doesNotCapture(), llvm::Function::doesNotReturn(), llvm::Function::doesNotThrow(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::X86FrameLowering::emitPrologue(), ExpandPowI(), llvm::InlineCostAnalysis::getInlineCost(), llvm::Inliner::getInlineThreshold(), llvm::ARMTargetLowering::getOptimalMemOpType(), llvm::X86TargetLowering::getOptimalMemOpType(), llvm::GetReturnInfo(), llvm::CallInst::hasFnAttr(), llvm::InvokeInst::hasFnAttr(), llvm::Function::hasFnAttribute(), llvm::Function::hasStructRetAttr(), llvm::Function::hasUWTable(), llvm::InlineCostAnalysis::isInlineViable(), llvm::isInTailCallPosition(), llvm::TargetLowering::isInTailCallPosition(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::MachineFunction::MachineFunction(), llvm::PPCFrameLowering::needsFP(), llvm::X86RegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::Function::onlyReadsMemory(), llvm::CallInst::paramHasAttr(), llvm::InvokeInst::paramHasAttr(), removeAttribute(), removeAttributes(), llvm::Inliner::removeDeadFunctions(), llvm::MipsSubtarget::resetSubtarget(), llvm::InstCombiner::runOnFunction(), llvm::PEI::runOnMachineFunction(), and StripNest().
Return true if the attribute exists at the given index.
Definition at line 805 of file Attributes.cpp.
References llvm::Intrinsic::getAttributes(), and llvm::AttributeSetNode::hasAttribute().
Return true if attribute exists at the given index.
Definition at line 810 of file Attributes.cpp.
References llvm::Intrinsic::getAttributes(), and llvm::AttributeSetNode::hasAttributes().
Referenced by getFnAttributes(), getParamAttributes(), getRetAttributes(), llvm::AssemblyWriter::printArgument(), llvm::AssemblyWriter::printFunction(), llvm::AssemblyWriter::printInstruction(), and llvm::AssemblyWriter::writeParamOperand().
| bool AttributeSet::hasAttrSomewhere | ( | Attribute::AttrKind | Attr | ) | const |
Return true if the specified attribute is set for at least one parameter or for the return value.
Definition at line 817 of file Attributes.cpp.
References I, and llvm::ARM_PROC::IE.
Referenced by llvm::XCoreFrameLowering::emitPrologue(), llvm::CallInst::hasByValArgument(), and llvm::InvokeInst::hasByValArgument().
| bool llvm::AttributeSet::isEmpty | ( | ) | const [inline] |
Return true if there are no attributes.
Definition at line 339 of file Attributes.h.
References getNumSlots().
Referenced by llvm::ValueEnumerator::getAttributeGroupID(), and llvm::ValueEnumerator::getAttributeID().
| bool llvm::AttributeSet::operator!= | ( | const AttributeSet & | RHS | ) | const [inline] |
Definition at line 322 of file Attributes.h.
| bool llvm::AttributeSet::operator== | ( | const AttributeSet & | RHS | ) | const [inline] |
operator==/!= - Provide equality predicates.
Definition at line 319 of file Attributes.h.
| uint64_t AttributeSet::Raw | ( | unsigned | Index | ) | const |
Definition at line 904 of file Attributes.cpp.
Referenced by LLVMGetFunctionAttr().
| AttributeSet AttributeSet::removeAttribute | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| Attribute::AttrKind | Attr | ||
| ) | const |
Remove the specified attribute at the specified index from this attribute list. Since attribute lists are immutable, this returns the new list.
Definition at line 715 of file Attributes.cpp.
References hasAttribute(), and removeAttributes().
Referenced by StripNest().
| AttributeSet AttributeSet::removeAttributes | ( | LLVMContext & | C, |
| unsigned | Index, | ||
| AttributeSet | Attrs | ||
| ) | const |
Remove the specified attributes at the specified index from this attribute list. Since attribute lists are immutable, this returns the new list.
Definition at line 721 of file Attributes.cpp.
References llvm::Attribute::Alignment, AttributeSet(), llvm::CallingConv::C, llvm::AttributeSetImpl::getNumAttributes(), llvm::AttributeSetImpl::getSlotAttributes(), getSlotAttributes(), getSlotIndex(), hasAttribute(), I, and llvm::AttrBuilder::removeAttributes().
Referenced by LLVMRemoveFunctionAttr(), LLVMRemoveInstrAttribute(), removeAttribute(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), and llvm::Function::removeAttributes().
friend class AttrBuilder [friend] |
Definition at line 205 of file Attributes.h.
friend class AttributeSetImpl [friend] |
Definition at line 206 of file Attributes.h.
friend struct DenseMapInfo [friend] |
Definition at line 207 of file Attributes.h.