Lines Matching defs:Symbol

1 //===--- Symbol.h ------------------------------------------------*- C++-*-===//
31 /// When adding new unowned data fields to Symbol, remember to update:
39 struct Symbol {
128 /// One Symbol can potentially be included via different headers.
144 /// Symbol is an implementation detail.
146 /// Symbol is visible to other files (not e.g. a static helper function).
148 /// Symbol has an attached documentation comment.
156 inline Symbol::SymbolFlag operator|(Symbol::SymbolFlag A,
157 Symbol::SymbolFlag B) {
158 return static_cast<Symbol::SymbolFlag>(static_cast<uint8_t>(A) |
161 inline Symbol::SymbolFlag &operator|=(Symbol::SymbolFlag &A,
162 Symbol::SymbolFlag B) {
166 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const Symbol &S);
167 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, Symbol::SymbolFlag);
169 /// Invokes Callback with each StringRef& contained in the Symbol.
171 template <typename Callback> void visitStrings(Symbol &S, const Callback &CB) {
193 /// Computes query-independent quality score for a Symbol.
197 float quality(const Symbol &S);
203 using const_iterator = std::vector<Symbol>::const_iterator;
205 using value_type = Symbol;
219 Symbols.capacity() * sizeof(Symbol);
230 void insert(const Symbol &S);
236 const Symbol *find(const SymbolID &ID) {
249 llvm::DenseMap<SymbolID, Symbol> Symbols;
253 SymbolSlab(llvm::BumpPtrAllocator Arena, std::vector<Symbol> Symbols)
256 llvm::BumpPtrAllocator Arena; // Owns Symbol data that the Symbols do not.
257 std::vector<Symbol> Symbols; // Sorted by SymbolID to allow lookup.