[clang] [clang] Unique the QualType-keyed type pools in a UniquingSet. NFC (PR #221850)

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 7 19:02:39 PDT 2026


MaskRay wrote:

> > Similar to [#221620 (comment)](https://github.com/llvm/llvm-project/pull/221620#issuecomment-5567840994)
> > % ct_table.rb '[llvm-compile-time-tracker.com/compare.php?from=45930cef5214e430aa7424cacb07e374a07ead12&to=a019abb9c135b3a6255adbd7d93fdd9119c5b3f0&stat=instructions:u](https://llvm-compile-time-tracker.com/compare.php?from=45930cef5214e430aa7424cacb07e374a07ead12&to=a019abb9c135b3a6255adbd7d93fdd9119c5b3f0&stat=instructions:u)' CTMark geomean `instructions:u`: ๐ŸŸข 6 improved (best -0.08%) ยท 2 within noise.
> > Config	instructions:u	ฯƒ	max-rss
> > stage1-O3	๐ŸŸข **-0.04%**	4.1	+0.16%
> > stage1-ReleaseThinLTO	๐ŸŸข **-0.04%**	3.7	-0.17%
> > stage1-ReleaseLTO-g	-0.03%	2.4	+0.04%
> > stage1-O0-g	๐ŸŸข **-0.08%**	5.1	+0.02%
> > stage1-aarch64-O3	๐ŸŸข **-0.03%**	3.0	+0.09%
> > stage1-aarch64-O0-g	๐ŸŸข **-0.07%**	3.4	-0.09%
> > stage2-O3	-0.04%	2.1	+0.05%
> > stage2-O0-g	๐ŸŸข **-0.08%**	3.7	+0.09%
> > Building clang itself (stage2, ThinLTO):
> > Metric	Old	New	ฮ”	ฯƒ
> > instructions:u	19123148M	19107846M	๐ŸŸข **-0.08%**	3.8
> > wall-time	326.61s	327.96s	+0.41%	0.5
> > size-file	136939KiB	136935KiB	-0.00%	โˆž
> > size-file (stage1)	155034KiB	155034KiB	0.00%	0.0
> > Per-benchmark `instructions:u` (bold = beyond noise)
> > Benchmark	s1-O3	s1-ThinLTO	s1-LTO-g	s1-O0-g	s1-a64-O3	s1-a64-O0-g	s2-O3	s2-O0-g
> > kimwitu++	-0.03%	-0.09%	-0.09%	-0.16%	-0.03%	-0.07%	-0.08%	-0.10%
> > sqlite3	-0.03%	-0.02%	+0.02%	-0.03%	-0.00%	-0.06%	+0.00%	-0.04%
> > consumer-typeset	**-0.04%**	-0.01%	-0.02%	**-0.06%**	-0.03%	-0.04%	-0.01%	**-0.05%**
> > Bullet	**-0.11%**	**-0.11%**	**-0.11%**	**-0.19%**	**-0.13%**	-0.15%	**-0.12%**	**-0.20%**
> > tramp3d-v4	-0.10%	-0.03%	-0.01%	-0.08%	-0.03%	-0.15%	-0.07%	-0.10%
> > mafft	-0.00%	-0.01%	**-0.12%**	**-0.10%**	-0.02%	-0.07%	-0.02%	**-0.09%**
> > ClamAV	-0.01%	-0.01%	+0.01%	**-0.05%**	-0.01%	-0.02%	-0.01%	**-0.05%**
> > lencod	-0.03%	**-0.04%**	+0.02%	**-0.05%**	-0.02%	-0.05%	-0.01%	**-0.05%**
> > SPASS	-0.03%	-0.01%	+0.02%	-0.04%	-0.02%	-0.03%	-0.03%	-0.07%
> > 7zip	-0.06%	-0.03%	-0.03%	-0.07%	-0.05%	-0.04%	-0.06%	-0.05%
> > **geomean**	**-0.04%**	**-0.04%**	-0.03%	**-0.08%**	**-0.03%**	**-0.07%**	-0.04%	**-0.08%**
> > [Compile-time tracker](https://llvm-compile-time-tracker.com/compare.php?from=45930cef5214e430aa7424cacb07e374a07ead12&to=a019abb9c135b3a6255adbd7d93fdd9119c5b3f0&stat=instructions%3Au) ยท [`45930ce` โ†’ `a019abb`](https://github.com/llvm/llvm-project/compare/45930cef5214e430aa7424cacb07e374a07ead12...a019abb9c135b3a6255adbd7d93fdd9119c5b3f0) ยท ๐ŸŸข/๐Ÿ”ด = |ฮ”| โ‰ฅ 3ฯƒ of the tracker's measured run-to-run noise, reported as ฯƒ for `instructions:u`.
> 
> The number looks not so great? As some metrics got improved but some other metrics got worse?

Nothing regressed. Every config's `instructions:u` geomean is negative (green -> better).

 UniquingSet and FoldingSetBase have identical node layout, bucket arrays and heap allocation. In this case `max-rss` metrics are just noise.

https://github.com/llvm/llvm-project/pull/221850


More information about the cfe-commits mailing list