19dba64beSDimitry Andric //===- LLDBTableGenUtils.h --------------------------------------*- C++ -*-===// 29dba64beSDimitry Andric // 39dba64beSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 49dba64beSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 59dba64beSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 69dba64beSDimitry Andric // 79dba64beSDimitry Andric //===----------------------------------------------------------------------===// 89dba64beSDimitry Andric 9*5ffd83dbSDimitry Andric #ifndef LLDB_UTILS_TABLEGEN_LLDBTABLEGENUTILS_H 10*5ffd83dbSDimitry Andric #define LLDB_UTILS_TABLEGEN_LLDBTABLEGENUTILS_H 119dba64beSDimitry Andric 129dba64beSDimitry Andric #include "llvm/ADT/StringRef.h" 139dba64beSDimitry Andric #include <map> 149dba64beSDimitry Andric #include <string> 159dba64beSDimitry Andric #include <vector> 169dba64beSDimitry Andric 179dba64beSDimitry Andric namespace llvm { 189dba64beSDimitry Andric class RecordKeeper; 199dba64beSDimitry Andric class Record; 209dba64beSDimitry Andric } // namespace llvm 219dba64beSDimitry Andric 229dba64beSDimitry Andric namespace lldb_private { 239dba64beSDimitry Andric 249dba64beSDimitry Andric /// Map of names to their associated records. This map also ensures that our 259dba64beSDimitry Andric /// records are sorted in a deterministic way. 269dba64beSDimitry Andric typedef std::map<std::string, std::vector<llvm::Record *>> RecordsByName; 279dba64beSDimitry Andric 289dba64beSDimitry Andric /// Return records grouped by name. 299dba64beSDimitry Andric RecordsByName getRecordsByName(std::vector<llvm::Record *> Records, 309dba64beSDimitry Andric llvm::StringRef); 319dba64beSDimitry Andric 329dba64beSDimitry Andric } // namespace lldb_private 339dba64beSDimitry Andric 349dba64beSDimitry Andric #endif 35