From 639b8da8dc4cb735e8fd001b7e674073365ff230 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Thu, 16 Apr 2020 00:12:45 +0300 Subject: [PATCH] [Attributor] KindToAbstractAttributeMap: use SmallDenseMap Summary: While this is less efficient to allocate huge `SmallDenseMap` for each `IRPosition` in `AAMap`, in the larger picture this is much better, since we'd eventually either fill each `IRPosition`, with each possible attribute, or at least quert for it, which would allocate it anyway. So we are better off pre-allocating. Old: ``` 0.3460 ( 40.7%) 0.0183 ( 33.9%) 0.3643 ( 40.3%) 0.3644 ( 40.3%) Deduce and propagate attributes (CGSCC pass) 0.1135 ( 13.4%) 0.0080 ( 14.7%) 0.1215 ( 13.4%) 0.1215 ( 13.4%) Deduce and propagate attributes ``` ``` total runtime: 19.48s. bytes allocated in total (ignoring deallocations): 575.02MB (29.51MB/s) calls to allocation functions: 908876 (46644/s) temporary memory allocations: 276654 (14198/s) peak heap memory consumption: 26.68MB peak RSS (including heaptrack overhead): 944.78MB total memory leaked: 8.85MB ``` New: ``` 0.3223 ( 38.1%) 0.0299 ( 53.6%) 0.3522 ( 39.1%) 0.3522 ( 39.1%) Deduce and propagate attributes (CGSCC pass) 0.1150 ( 13.6%) 0.0037 ( 6.7%) 0.1188 ( 13.2%) 0.1188 ( 13.2%) Deduce and propagate attributes ``` ``` total runtime: 19.06s. bytes allocated in total (ignoring deallocations): 363.21MB (19.06MB/s) calls to allocation functions: 679660 (35658/s) temporary memory allocations: 83472 (4379/s) peak heap memory consumption: 27.00MB peak RSS (including heaptrack overhead): 931.66MB total memory leaked: 8.85MB ``` Diff: ``` total runtime: -0.42s. bytes allocated in total (ignoring deallocations): -211.81MB (498.38MB/s) calls to allocation functions: -229216 (539331/s) temporary memory allocations: -193182 (454545/s) peak heap memory consumption: 321.54KB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ``` Reviewers: jdoerfert, sstefan1, uenoku Reviewed By: jdoerfert Subscribers: uenoku, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78231 --- llvm/include/llvm/Transforms/IPO/Attributor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h index fca353f..aa78859 100644 --- a/llvm/include/llvm/Transforms/IPO/Attributor.h +++ b/llvm/include/llvm/Transforms/IPO/Attributor.h @@ -1207,7 +1207,7 @@ private: /// the inner level. ///{ using KindToAbstractAttributeMap = - DenseMap; + SmallDenseMap; DenseMap AAMap; ///} -- 2.7.4