summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2018-09-15 02:03:36 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2018-09-15 02:03:36 +0000
commit6bde7a015f12cb42e1669c6734969f3d897e92ed (patch)
treecc54cc6d0fb8ec6a317370b9155988fca4879918 /clang/lib/Analysis
parentfc042f95e2c93844fc1a48c75510139b4a626011 (diff)
downloadbcm5719-llvm-6bde7a015f12cb42e1669c6734969f3d897e92ed.tar.gz
bcm5719-llvm-6bde7a015f12cb42e1669c6734969f3d897e92ed.zip
[analyzer] Generate and use stable identifiers for LocationContext
Those are not created in the allocator. Since they are created fairly rarely, a counter overhead should not affect the memory consumption. Differential Revision: https://reviews.llvm.org/D51827 llvm-svn: 342314
Diffstat (limited to 'clang/lib/Analysis')
-rw-r--r--clang/lib/Analysis/AnalysisDeclContext.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Analysis/AnalysisDeclContext.cpp b/clang/lib/Analysis/AnalysisDeclContext.cpp
index 693fe066e14..30160bc239a 100644
--- a/clang/lib/Analysis/AnalysisDeclContext.cpp
+++ b/clang/lib/Analysis/AnalysisDeclContext.cpp
@@ -385,7 +385,7 @@ LocationContextManager::getLocationContext(AnalysisDeclContext *ctx,
LOC *L = cast_or_null<LOC>(Contexts.FindNodeOrInsertPos(ID, InsertPos));
if (!L) {
- L = new LOC(ctx, parent, d);
+ L = new LOC(ctx, parent, d, ++NewID);
Contexts.InsertNode(L, InsertPos);
}
return L;
@@ -402,7 +402,7 @@ LocationContextManager::getStackFrame(AnalysisDeclContext *ctx,
auto *L =
cast_or_null<StackFrameContext>(Contexts.FindNodeOrInsertPos(ID, InsertPos));
if (!L) {
- L = new StackFrameContext(ctx, parent, s, blk, idx);
+ L = new StackFrameContext(ctx, parent, s, blk, idx, ++NewID);
Contexts.InsertNode(L, InsertPos);
}
return L;
@@ -427,7 +427,7 @@ LocationContextManager::getBlockInvocationContext(AnalysisDeclContext *ctx,
cast_or_null<BlockInvocationContext>(Contexts.FindNodeOrInsertPos(ID,
InsertPos));
if (!L) {
- L = new BlockInvocationContext(ctx, parent, BD, ContextData);
+ L = new BlockInvocationContext(ctx, parent, BD, ContextData, ++NewID);
Contexts.InsertNode(L, InsertPos);
}
return L;
OpenPOWER on IntegriCloud