================
@@ -0,0 +1,55 @@
+//===- EntityIdTable.h ------------------------------------------*- C++ 
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_ANALYSIS_SCALABLE_MODEL_ENTITY_ID_TABLE_H
+#define LLVM_CLANG_ANALYSIS_SCALABLE_MODEL_ENTITY_ID_TABLE_H
+
+#include "clang/Analysis/Scalable/Model/EntityId.h"
+#include "clang/Analysis/Scalable/Model/EntityName.h"
+#include <functional>
+#include <set>
+#include <vector>
+
+namespace clang {
+namespace ssaf {
+
+/// Manages entity name interning and provides efficient EntityId handles.
+///
+/// The table maps each unique EntityName maps to exactly one EntityId.
+/// Entities are never removed.
+class EntityIdTable {
----------------
jkorous-apple wrote:

We've had an offline discussion about this and agreed to analyze the 
implications more broadly.

We probably don't want to force all users of this class to care about and store 
all the properties that can be associated with entities. In some contexts, the 
users might want to ignore some of those to save memory or avoid their 
deserialization.

At the same time, it is not clear at this point if `EntityIdTable` in those 
contexts is even the right representation of entities.

https://github.com/llvm/llvm-project/pull/171660
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to