From a58e342d8869c571476c76d0ed95488adbde26bd Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 15 Mar 2022 17:55:14 -0400 Subject: [PATCH] analyzer: presize m_cluster_map in store copy ctor MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Testing cc1 on pr93032-mztools-unsigned-char.c Benchmark #1: (without patch) Time (mean ± σ): 338.8 ms ± 13.6 ms [User: 323.2 ms, System: 14.2 ms] Range (min … max): 326.7 ms … 363.1 ms 10 runs Benchmark #2: (with patch) Time (mean ± σ): 332.3 ms ± 12.8 ms [User: 316.6 ms, System: 14.3 ms] Range (min … max): 322.5 ms … 357.4 ms 10 runs Summary ./cc1.new ran 1.02 ± 0.06 times faster than ./cc1.old gcc/analyzer/ChangeLog: * store.cc (store::store): Presize m_cluster_map. Signed-off-by: David Malcolm --- gcc/analyzer/store.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/analyzer/store.cc b/gcc/analyzer/store.cc index 58df7aa..ec11433 100644 --- a/gcc/analyzer/store.cc +++ b/gcc/analyzer/store.cc @@ -2032,7 +2032,8 @@ store::store () /* store's copy ctor. */ store::store (const store &other) -: m_called_unknown_fn (other.m_called_unknown_fn) +: m_cluster_map (other.m_cluster_map.elements ()), + m_called_unknown_fn (other.m_called_unknown_fn) { for (cluster_map_t::iterator iter = other.m_cluster_map.begin (); iter != other.m_cluster_map.end (); -- 2.7.4