[NFCI] Change the data structure of MaybeODRUseExprSet
authorErich Keane <erich.keane@intel.com>
Mon, 15 Jun 2020 15:10:41 +0000 (08:10 -0700)
committerErich Keane <erich.keane@intel.com>
Mon, 15 Jun 2020 15:15:50 +0000 (08:15 -0700)
commit837ca4796065ccd0ac0d20860341ac06a9645009
tree39a8b2080f376f74124104172195b5e583429340
parent8c61f13a0f7cb4078b3dd4481c89b48fe4a50f77
[NFCI] Change the data structure of MaybeODRUseExprSet

In 1eddce41, I fixed a non-deterministic result problem by switching a
SmallPtrSet to a SmallSetVector to ensure we iterated it
deterministically.  Unfortunately, this seems to show a surprisingly
significant compiletime impact.

This patch does 2 things in an attempt to fix this:

First, it makes the 'small size' optimization 4 instead of 2.  As these
are pointers, this only increases the size of Sema by 4
sizeof(pointer)s (2 for the set, 2 for the vector).

Second, instead of using SmallSetVector, which is a SmallVector +
SmallDenseSet, it uses a SetVector of SmallVector + SmallPtrSet.  The
hope is that the pointer-specific optimizations of the SmallPtrSet will
minimize the impact on compile-time.
clang/include/clang/Sema/Sema.h