1//===-- AttributesImpl.h - Attributes Internals -----------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file defines various helper methods and classes used by LLVMContextImpl 11// for creating and managing attributes. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_ATTRIBUTESIMPL_H 16#define LLVM_ATTRIBUTESIMPL_H 17 18#include "llvm/ADT/FoldingSet.h" 19 20namespace llvm { 21 22class AttributesImpl : public FoldingSetNode { 23 uint64_t Bits; // FIXME: We will be expanding this. 24 25 void operator=(const AttributesImpl &) LLVM_DELETED_FUNCTION; 26 AttributesImpl(const AttributesImpl &) LLVM_DELETED_FUNCTION; 27public: 28 AttributesImpl(uint64_t bits) : Bits(bits) {} 29 30 void Profile(FoldingSetNodeID &ID) const { 31 Profile(ID, Bits); 32 } 33 static void Profile(FoldingSetNodeID &ID, uint64_t Bits) { 34 ID.AddInteger(Bits); 35 } 36}; 37 38} // end llvm namespace 39 40#endif 41