[PATCH] D93233: Replaces std::sort by Bitset sorting algorithm.
MinJae Hwang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 14 09:27:52 PST 2020
minjaehwang created this revision.
Herald added a subscriber: hiraditya.
minjaehwang requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Bitset sorting shows up to 5x improvements on sorting primitive types and 1.5x improvements for complex types such as std::string.
The evaluation is done by the libcxx algorithms benchmark.
std::sort with Bitset sorting algorithm.
Running projects/libcxx/benchmarks/algorithms.libcxx.out
Run on (12 X 4000 MHz CPU s)
CPU Caches:
L1 Data 32K (x6)
L1 Instruction 32K (x6)
L2 Unified 256K (x6)
L3 Unified 15360K (x1)
Load Average: 0.57, 0.76, 0.55
------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------------------------------------------------
BM_Sort_uint32_Random_1 3.03 ns 3.02 ns 230162432
BM_Sort_uint32_Random_4 4.09 ns 4.09 ns 170917888
BM_Sort_uint32_Random_16 8.46 ns 8.46 ns 80740352
BM_Sort_uint32_Random_64 13.1 ns 13.1 ns 52690944
BM_Sort_uint32_Random_256 16.4 ns 16.4 ns 41680896
BM_Sort_uint32_Random_1024 18.8 ns 18.8 ns 36438016
BM_Sort_uint32_Random_16384 23.0 ns 23.0 ns 29884416
BM_Sort_uint32_Random_262144 27.1 ns 27.1 ns 25427968
BM_Sort_uint32_Ascending_1 3.27 ns 3.26 ns 213123072
BM_Sort_uint32_Ascending_4 0.981 ns 0.980 ns 716177408
BM_Sort_uint32_Ascending_16 0.879 ns 0.879 ns 800063488
BM_Sort_uint32_Ascending_64 3.66 ns 3.66 ns 190840832
BM_Sort_uint32_Ascending_256 3.45 ns 3.45 ns 202375168
BM_Sort_uint32_Ascending_1024 3.33 ns 3.33 ns 210239488
BM_Sort_uint32_Ascending_16384 3.26 ns 3.26 ns 213385216
BM_Sort_uint32_Ascending_262144 3.23 ns 3.23 ns 215482368
BM_Sort_uint32_Descending_1 3.27 ns 3.26 ns 214695936
BM_Sort_uint32_Descending_4 1.26 ns 1.26 ns 556269568
BM_Sort_uint32_Descending_16 4.88 ns 4.88 ns 144179200
BM_Sort_uint32_Descending_64 4.88 ns 4.88 ns 139460608
BM_Sort_uint32_Descending_256 4.86 ns 4.86 ns 144179200
BM_Sort_uint32_Descending_1024 4.58 ns 4.58 ns 153354240
BM_Sort_uint32_Descending_16384 4.47 ns 4.47 ns 156237824
BM_Sort_uint32_Descending_262144 4.46 ns 4.46 ns 156499968
BM_Sort_uint32_SingleElement_1 3.28 ns 3.27 ns 214433792
BM_Sort_uint32_SingleElement_4 0.978 ns 0.977 ns 713293824
BM_Sort_uint32_SingleElement_16 0.910 ns 0.909 ns 772276224
BM_Sort_uint32_SingleElement_64 3.72 ns 3.72 ns 187695104
BM_Sort_uint32_SingleElement_256 3.48 ns 3.48 ns 201588736
BM_Sort_uint32_SingleElement_1024 3.43 ns 3.43 ns 205258752
BM_Sort_uint32_SingleElement_16384 3.31 ns 3.31 ns 211550208
BM_Sort_uint32_SingleElement_262144 3.42 ns 3.42 ns 212336640
BM_Sort_uint32_PipeOrgan_1 3.39 ns 3.38 ns 206045184
BM_Sort_uint32_PipeOrgan_4 1.08 ns 1.08 ns 655622144
BM_Sort_uint32_PipeOrgan_16 2.04 ns 2.04 ns 338165760
BM_Sort_uint32_PipeOrgan_64 8.71 ns 8.71 ns 79429632
BM_Sort_uint32_PipeOrgan_256 6.95 ns 6.95 ns 98828288
BM_Sort_uint32_PipeOrgan_1024 7.05 ns 7.04 ns 96993280
BM_Sort_uint32_PipeOrgan_16384 8.40 ns 8.40 ns 82313216
BM_Sort_uint32_PipeOrgan_262144 9.19 ns 9.19 ns 73138176
BM_Sort_uint64_Random_1 2.86 ns 2.85 ns 243007488
BM_Sort_uint64_Random_4 4.06 ns 4.06 ns 171442176
BM_Sort_uint64_Random_16 8.42 ns 8.41 ns 81264640
BM_Sort_uint64_Random_64 12.9 ns 12.9 ns 52953088
BM_Sort_uint64_Random_256 16.4 ns 16.4 ns 42205184
BM_Sort_uint64_Random_1024 18.7 ns 18.7 ns 36700160
BM_Sort_uint64_Random_16384 22.9 ns 22.9 ns 30146560
BM_Sort_uint64_Random_262144 27.1 ns 27.1 ns 25427968
BM_Sort_uint64_Ascending_1 2.85 ns 2.84 ns 246415360
BM_Sort_uint64_Ascending_4 0.859 ns 0.858 ns 819462144
BM_Sort_uint64_Ascending_16 0.817 ns 0.817 ns 855638016
BM_Sort_uint64_Ascending_64 3.73 ns 3.73 ns 188219392
BM_Sort_uint64_Ascending_256 3.55 ns 3.55 ns 196870144
BM_Sort_uint64_Ascending_1024 3.44 ns 3.44 ns 202899456
BM_Sort_uint64_Ascending_16384 3.34 ns 3.34 ns 211288064
BM_Sort_uint64_Ascending_262144 3.30 ns 3.30 ns 211288064
BM_Sort_uint64_Descending_1 2.85 ns 2.84 ns 246415360
BM_Sort_uint64_Descending_4 1.31 ns 1.31 ns 532938752
BM_Sort_uint64_Descending_16 3.61 ns 3.61 ns 194248704
BM_Sort_uint64_Descending_64 4.85 ns 4.85 ns 144179200
BM_Sort_uint64_Descending_256 5.00 ns 5.00 ns 136839168
BM_Sort_uint64_Descending_1024 4.70 ns 4.70 ns 148635648
BM_Sort_uint64_Descending_16384 4.53 ns 4.53 ns 154402816
BM_Sort_uint64_Descending_262144 4.49 ns 4.49 ns 155975680
BM_Sort_uint64_SingleElement_1 2.86 ns 2.85 ns 246677504
BM_Sort_uint64_SingleElement_4 0.854 ns 0.853 ns 821297152
BM_Sort_uint64_SingleElement_16 0.818 ns 0.817 ns 854327296
BM_Sort_uint64_SingleElement_64 3.78 ns 3.78 ns 185335808
BM_Sort_uint64_SingleElement_256 3.60 ns 3.60 ns 194248704
BM_Sort_uint64_SingleElement_1024 3.49 ns 3.49 ns 199229440
BM_Sort_uint64_SingleElement_16384 3.33 ns 3.33 ns 207618048
BM_Sort_uint64_SingleElement_262144 3.31 ns 3.31 ns 209977344
BM_Sort_uint64_PipeOrgan_1 2.87 ns 2.86 ns 245366784
BM_Sort_uint64_PipeOrgan_4 0.994 ns 0.994 ns 702808064
BM_Sort_uint64_PipeOrgan_16 1.96 ns 1.96 ns 355729408
BM_Sort_uint64_PipeOrgan_64 8.35 ns 8.35 ns 81526784
BM_Sort_uint64_PipeOrgan_256 7.04 ns 7.04 ns 96731136
BM_Sort_uint64_PipeOrgan_1024 7.11 ns 7.11 ns 96468992
BM_Sort_uint64_PipeOrgan_16384 8.42 ns 8.41 ns 81526784
BM_Sort_uint64_PipeOrgan_262144 9.23 ns 9.23 ns 74448896
BM_Sort_pair<uint32, uint32>_Random_1 3.59 ns 3.59 ns 195821568
BM_Sort_pair<uint32, uint32>_Random_4 5.30 ns 5.30 ns 128450560
BM_Sort_pair<uint32, uint32>_Random_16 20.8 ns 20.8 ns 33030144
BM_Sort_pair<uint32, uint32>_Random_64 30.2 ns 30.2 ns 22806528
BM_Sort_pair<uint32, uint32>_Random_256 36.8 ns 36.8 ns 18874368
BM_Sort_pair<uint32, uint32>_Random_1024 41.7 ns 41.7 ns 16515072
BM_Sort_pair<uint32, uint32>_Random_16384 52.2 ns 52.2 ns 13107200
BM_Sort_pair<uint32, uint32>_Random_262144 60.3 ns 60.3 ns 11010048
BM_Sort_pair<uint32, uint32>_Ascending_1 3.43 ns 3.43 ns 203423744
BM_Sort_pair<uint32, uint32>_Ascending_4 1.75 ns 1.75 ns 399245312
BM_Sort_pair<uint32, uint32>_Ascending_16 2.36 ns 2.36 ns 297271296
BM_Sort_pair<uint32, uint32>_Ascending_64 1.38 ns 1.38 ns 506986496
BM_Sort_pair<uint32, uint32>_Ascending_256 1.33 ns 1.33 ns 525860864
BM_Sort_pair<uint32, uint32>_Ascending_1024 1.15 ns 1.15 ns 612368384
BM_Sort_pair<uint32, uint32>_Ascending_16384 1.00 ns 1.00 ns 697827328
BM_Sort_pair<uint32, uint32>_Ascending_262144 0.992 ns 0.992 ns 700448768
BM_Sort_pair<uint32, uint32>_Descending_1 3.47 ns 3.46 ns 202637312
BM_Sort_pair<uint32, uint32>_Descending_4 2.39 ns 2.39 ns 292814848
BM_Sort_pair<uint32, uint32>_Descending_16 5.72 ns 5.72 ns 119799808
BM_Sort_pair<uint32, uint32>_Descending_64 3.58 ns 3.58 ns 197394432
BM_Sort_pair<uint32, uint32>_Descending_256 3.25 ns 3.25 ns 215744512
BM_Sort_pair<uint32, uint32>_Descending_1024 2.87 ns 2.87 ns 243531776
BM_Sort_pair<uint32, uint32>_Descending_16384 2.71 ns 2.71 ns 258211840
BM_Sort_pair<uint32, uint32>_Descending_262144 2.84 ns 2.84 ns 260571136
BM_Sort_pair<uint32, uint32>_SingleElement_1 3.65 ns 3.64 ns 197132288
BM_Sort_pair<uint32, uint32>_SingleElement_4 1.82 ns 1.82 ns 384040960
BM_Sort_pair<uint32, uint32>_SingleElement_16 2.28 ns 2.28 ns 305922048
BM_Sort_pair<uint32, uint32>_SingleElement_64 1.84 ns 1.84 ns 379060224
BM_Sort_pair<uint32, uint32>_SingleElement_256 1.58 ns 1.58 ns 442236928
BM_Sort_pair<uint32, uint32>_SingleElement_1024 1.40 ns 1.40 ns 500957184
BM_Sort_pair<uint32, uint32>_SingleElement_16384 1.31 ns 1.31 ns 533463040
BM_Sort_pair<uint32, uint32>_SingleElement_262144 1.31 ns 1.31 ns 535035904
BM_Sort_pair<uint32, uint32>_PipeOrgan_1 3.47 ns 3.46 ns 203423744
BM_Sort_pair<uint32, uint32>_PipeOrgan_4 1.83 ns 1.83 ns 380370944
BM_Sort_pair<uint32, uint32>_PipeOrgan_16 2.89 ns 2.89 ns 242745344
BM_Sort_pair<uint32, uint32>_PipeOrgan_64 4.47 ns 4.47 ns 155713536
BM_Sort_pair<uint32, uint32>_PipeOrgan_256 3.10 ns 3.10 ns 225705984
BM_Sort_pair<uint32, uint32>_PipeOrgan_1024 7.63 ns 7.63 ns 91750400
BM_Sort_pair<uint32, uint32>_PipeOrgan_16384 8.54 ns 8.54 ns 80216064
BM_Sort_pair<uint32, uint32>_PipeOrgan_262144 9.54 ns 9.54 ns 72613888
BM_Sort_tuple<uint32, uint64, uint32>_Random_1 3.80 ns 3.79 ns 184811520
BM_Sort_tuple<uint32, uint64, uint32>_Random_4 6.02 ns 6.02 ns 113508352
BM_Sort_tuple<uint32, uint64, uint32>_Random_16 25.5 ns 25.5 ns 27000832
BM_Sort_tuple<uint32, uint64, uint32>_Random_64 37.1 ns 37.1 ns 18612224
BM_Sort_tuple<uint32, uint64, uint32>_Random_256 44.1 ns 44.1 ns 15728640
BM_Sort_tuple<uint32, uint64, uint32>_Random_1024 50.3 ns 50.2 ns 13369344
BM_Sort_tuple<uint32, uint64, uint32>_Random_16384 63.7 ns 63.7 ns 10747904
BM_Sort_tuple<uint32, uint64, uint32>_Random_262144 76.5 ns 76.4 ns 8650752
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1 3.80 ns 3.80 ns 184549376
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_4 2.21 ns 2.21 ns 316932096
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16 2.79 ns 2.79 ns 250347520
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_64 2.15 ns 2.15 ns 326631424
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_256 2.19 ns 2.19 ns 319553536
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1024 1.80 ns 1.80 ns 387448832
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16384 1.65 ns 1.65 ns 426508288
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_262144 1.60 ns 1.60 ns 437256192
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1 3.80 ns 3.79 ns 185335808
BM_Sort_tuple<uint32, uint64, uint32>_Descending_4 3.27 ns 3.27 ns 213909504
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16 6.43 ns 6.43 ns 107479040
BM_Sort_tuple<uint32, uint64, uint32>_Descending_64 4.88 ns 4.88 ns 146014208
BM_Sort_tuple<uint32, uint64, uint32>_Descending_256 4.41 ns 4.41 ns 158859264
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1024 3.94 ns 3.94 ns 177471488
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16384 3.96 ns 3.96 ns 177209344
BM_Sort_tuple<uint32, uint64, uint32>_Descending_262144 3.89 ns 3.89 ns 179568640
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1 3.80 ns 3.80 ns 184025088
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_4 2.28 ns 2.28 ns 305659904
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16 2.98 ns 2.98 ns 234618880
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_64 2.70 ns 2.70 ns 259784704
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_256 2.37 ns 2.37 ns 294649856
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1024 2.04 ns 2.04 ns 343670784
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16384 1.94 ns 1.94 ns 359399424
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_262144 1.91 ns 1.91 ns 367525888
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1 3.81 ns 3.80 ns 184287232
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_4 2.43 ns 2.43 ns 290193408
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16 3.62 ns 3.61 ns 193986560
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_64 5.48 ns 5.48 ns 125304832
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_256 4.04 ns 4.04 ns 173539328
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1024 8.63 ns 8.63 ns 79167488
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16384 10.2 ns 10.2 ns 67371008
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_262144 11.6 ns 11.6 ns 59506688
BM_Sort_string_Random_1 3.85 ns 3.85 ns 181665792
BM_Sort_string_Random_4 18.1 ns 18.1 ns 38535168
BM_Sort_string_Random_16 45.5 ns 45.5 ns 14942208
BM_Sort_string_Random_64 62.6 ns 62.6 ns 10747904
BM_Sort_string_Random_256 74.4 ns 74.4 ns 9175040
BM_Sort_string_Random_1024 85.9 ns 85.9 ns 7864320
BM_Sort_string_Random_16384 121 ns 121 ns 5767168
BM_Sort_string_Random_262144 179 ns 179 ns 3407872
BM_Sort_string_Ascending_1 3.84 ns 3.84 ns 182714368
BM_Sort_string_Ascending_4 12.9 ns 12.9 ns 53215232
BM_Sort_string_Ascending_16 21.7 ns 21.7 ns 31457280
BM_Sort_string_Ascending_64 22.2 ns 22.2 ns 30670848
BM_Sort_string_Ascending_256 21.4 ns 21.4 ns 32243712
BM_Sort_string_Ascending_1024 21.6 ns 21.6 ns 31981568
BM_Sort_string_Ascending_16384 27.3 ns 27.3 ns 25427968
BM_Sort_string_Ascending_262144 44.3 ns 44.3 ns 14942208
BM_Sort_string_Descending_1 3.86 ns 3.85 ns 182190080
BM_Sort_string_Descending_4 14.7 ns 14.7 ns 46923776
BM_Sort_string_Descending_16 31.7 ns 31.7 ns 21757952
BM_Sort_string_Descending_64 30.1 ns 30.1 ns 23068672
BM_Sort_string_Descending_256 28.0 ns 28.0 ns 24379392
BM_Sort_string_Descending_1024 27.6 ns 27.6 ns 24641536
BM_Sort_string_Descending_16384 37.3 ns 37.3 ns 18350080
BM_Sort_string_Descending_262144 62.2 ns 62.2 ns 11272192
BM_Sort_string_SingleElement_1 3.85 ns 3.85 ns 182452224
BM_Sort_string_SingleElement_4 10.8 ns 10.8 ns 63438848
BM_Sort_string_SingleElement_16 23.6 ns 23.6 ns 29360128
BM_Sort_string_SingleElement_64 18.6 ns 18.6 ns 37224448
BM_Sort_string_SingleElement_256 15.9 ns 15.9 ns 42991616
BM_Sort_string_SingleElement_1024 14.1 ns 14.1 ns 48234496
BM_Sort_string_SingleElement_16384 13.4 ns 13.5 ns 50855936
BM_Sort_string_SingleElement_262144 17.8 ns 17.9 ns 38797312
BM_Sort_string_PipeOrgan_1 3.87 ns 3.86 ns 182190080
BM_Sort_string_PipeOrgan_4 14.1 ns 14.1 ns 49283072
BM_Sort_string_PipeOrgan_16 24.8 ns 24.8 ns 27787264
BM_Sort_string_PipeOrgan_64 37.9 ns 37.9 ns 18087936
BM_Sort_string_PipeOrgan_256 31.0 ns 31.0 ns 22282240
BM_Sort_string_PipeOrgan_1024 48.6 ns 48.6 ns 13893632
BM_Sort_string_PipeOrgan_16384 64.2 ns 64.2 ns 10485760
BM_Sort_string_PipeOrgan_262144 105 ns 105 ns 6553600 <https://reviews.llvm.org/rG655360096f27f25a0e2f71729c1c879f1fd8d8a2>
std::sort with the existing algorithm
2020-12-14 12:09:27
Running projects/libcxx/benchmarks/algorithms.libcxx.out
Run on (12 X 4000 MHz CPU s)
CPU Caches:
L1 Data 32K (x6)
L1 Instruction 32K (x6)
L2 Unified 256K (x6)
L3 Unified 15360K (x1)
Load Average: 1.54, 4.34, 4.83
------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------------------------------------------------
BM_Sort_uint32_Random_1 3.54 ns 3.53 ns 198180864
BM_Sort_uint32_Random_4 13.7 ns 13.7 ns 50855936
BM_Sort_uint32_Random_16 33.6 ns 33.6 ns 20447232
BM_Sort_uint32_Random_64 55.2 ns 55.2 ns 12320768
BM_Sort_uint32_Random_256 72.5 ns 72.5 ns 9437184
BM_Sort_uint32_Random_1024 89.6 ns 89.6 ns 7602176
BM_Sort_uint32_Random_16384 123 ns 123 ns 5505024
BM_Sort_uint32_Random_262144 155 ns 155 ns 4456448
BM_Sort_uint32_Ascending_1 3.77 ns 3.77 ns 183500800
BM_Sort_uint32_Ascending_4 3.41 ns 3.41 ns 206045184
BM_Sort_uint32_Ascending_16 3.08 ns 3.08 ns 227016704
BM_Sort_uint32_Ascending_64 6.26 ns 6.26 ns 108789760
BM_Sort_uint32_Ascending_256 5.52 ns 5.52 ns 124256256
BM_Sort_uint32_Ascending_1024 5.39 ns 5.38 ns 127401984
BM_Sort_uint32_Ascending_16384 5.28 ns 5.28 ns 129236992
BM_Sort_uint32_Ascending_262144 5.26 ns 5.26 ns 130285568
BM_Sort_uint32_Descending_1 3.79 ns 3.78 ns 185335808
BM_Sort_uint32_Descending_4 9.89 ns 9.89 ns 69468160
BM_Sort_uint32_Descending_16 42.8 ns 42.8 ns 16252928
BM_Sort_uint32_Descending_64 11.8 ns 11.8 ns 58195968
BM_Sort_uint32_Descending_256 11.1 ns 11.1 ns 62128128
BM_Sort_uint32_Descending_1024 13.3 ns 13.3 ns 51904512
BM_Sort_uint32_Descending_16384 12.7 ns 12.7 ns 53477376
BM_Sort_uint32_Descending_262144 12.7 ns 12.7 ns 54001664
BM_Sort_uint32_SingleElement_1 3.78 ns 3.78 ns 184287232
BM_Sort_uint32_SingleElement_4 3.42 ns 3.42 ns 203423744
BM_Sort_uint32_SingleElement_16 3.80 ns 3.80 ns 183500800
BM_Sort_uint32_SingleElement_64 5.64 ns 5.64 ns 121634816
BM_Sort_uint32_SingleElement_256 5.26 ns 5.26 ns 129761280
BM_Sort_uint32_SingleElement_1024 5.20 ns 5.20 ns 131858432
BM_Sort_uint32_SingleElement_16384 5.10 ns 5.10 ns 132644864
BM_Sort_uint32_SingleElement_262144 5.10 ns 5.10 ns 133955584
BM_Sort_uint32_PipeOrgan_1 3.77 ns 3.76 ns 185597952
BM_Sort_uint32_PipeOrgan_4 5.20 ns 5.20 ns 131858432
BM_Sort_uint32_PipeOrgan_16 13.4 ns 13.4 ns 51118080
BM_Sort_uint32_PipeOrgan_64 43.0 ns 43.0 ns 15990784
BM_Sort_uint32_PipeOrgan_256 16.6 ns 16.6 ns 41156608
BM_Sort_uint32_PipeOrgan_1024 21.0 ns 21.0 ns 32768000
BM_Sort_uint32_PipeOrgan_16384 27.4 ns 27.4 ns 24641536
BM_Sort_uint32_PipeOrgan_262144 33.3 ns 33.3 ns 20709376
BM_Sort_uint64_Random_1 3.53 ns 3.52 ns 198705152
BM_Sort_uint64_Random_4 13.4 ns 13.4 ns 51642368
BM_Sort_uint64_Random_16 33.4 ns 33.4 ns 20709376
BM_Sort_uint64_Random_64 55.1 ns 55.1 ns 12058624
BM_Sort_uint64_Random_256 72.2 ns 72.2 ns 9437184
BM_Sort_uint64_Random_1024 89.1 ns 89.1 ns 7602176
BM_Sort_uint64_Random_16384 122 ns 122 ns 5505024
BM_Sort_uint64_Random_262144 155 ns 155 ns 4456448
BM_Sort_uint64_Ascending_1 3.53 ns 3.52 ns 198443008
BM_Sort_uint64_Ascending_4 3.43 ns 3.43 ns 204210176
BM_Sort_uint64_Ascending_16 3.10 ns 3.10 ns 224395264
BM_Sort_uint64_Ascending_64 6.31 ns 6.31 ns 108789760
BM_Sort_uint64_Ascending_256 5.58 ns 5.58 ns 120586240
BM_Sort_uint64_Ascending_1024 5.40 ns 5.40 ns 127401984
BM_Sort_uint64_Ascending_16384 5.31 ns 5.31 ns 127664128
BM_Sort_uint64_Ascending_262144 5.30 ns 5.30 ns 130285568
BM_Sort_uint64_Descending_1 3.53 ns 3.52 ns 198705152
BM_Sort_uint64_Descending_4 9.79 ns 9.79 ns 69992448
BM_Sort_uint64_Descending_16 43.3 ns 43.3 ns 15990784
BM_Sort_uint64_Descending_64 11.8 ns 11.8 ns 58195968
BM_Sort_uint64_Descending_256 11.1 ns 11.1 ns 62128128
BM_Sort_uint64_Descending_1024 13.2 ns 13.2 ns 51904512
BM_Sort_uint64_Descending_16384 12.8 ns 12.8 ns 53739520
BM_Sort_uint64_Descending_262144 12.7 ns 12.7 ns 54001664
BM_Sort_uint64_SingleElement_1 3.51 ns 3.50 ns 199753728
BM_Sort_uint64_SingleElement_4 3.42 ns 3.42 ns 204996608
BM_Sort_uint64_SingleElement_16 3.11 ns 3.11 ns 226230272
BM_Sort_uint64_SingleElement_64 5.63 ns 5.63 ns 120324096
BM_Sort_uint64_SingleElement_256 5.29 ns 5.29 ns 130809856
BM_Sort_uint64_SingleElement_1024 5.17 ns 5.17 ns 131334144
BM_Sort_uint64_SingleElement_16384 5.12 ns 5.12 ns 133955584
BM_Sort_uint64_SingleElement_262144 5.12 ns 5.12 ns 133955584
BM_Sort_uint64_PipeOrgan_1 3.53 ns 3.53 ns 198967296
BM_Sort_uint64_PipeOrgan_4 5.23 ns 5.23 ns 131858432
BM_Sort_uint64_PipeOrgan_16 13.5 ns 13.5 ns 50855936
BM_Sort_uint64_PipeOrgan_64 43.1 ns 43.1 ns 15728640
BM_Sort_uint64_PipeOrgan_256 16.7 ns 16.7 ns 40894464
BM_Sort_uint64_PipeOrgan_1024 21.2 ns 21.2 ns 32505856
BM_Sort_uint64_PipeOrgan_16384 27.6 ns 27.6 ns 24903680
BM_Sort_uint64_PipeOrgan_262144 33.4 ns 33.4 ns 20709376
BM_Sort_pair<uint32, uint32>_Random_1 3.36 ns 3.35 ns 208666624
BM_Sort_pair<uint32, uint32>_Random_4 5.21 ns 5.21 ns 130285568
BM_Sort_pair<uint32, uint32>_Random_16 19.2 ns 19.2 ns 35913728
BM_Sort_pair<uint32, uint32>_Random_64 27.3 ns 27.3 ns 25165824
BM_Sort_pair<uint32, uint32>_Random_256 33.1 ns 33.1 ns 20709376
BM_Sort_pair<uint32, uint32>_Random_1024 39.2 ns 39.2 ns 17563648
BM_Sort_pair<uint32, uint32>_Random_16384 51.6 ns 51.6 ns 13107200
BM_Sort_pair<uint32, uint32>_Random_262144 64.3 ns 64.3 ns 10485760
BM_Sort_pair<uint32, uint32>_Ascending_1 3.38 ns 3.38 ns 207880192
BM_Sort_pair<uint32, uint32>_Ascending_4 1.70 ns 1.70 ns 413401088
BM_Sort_pair<uint32, uint32>_Ascending_16 2.12 ns 2.12 ns 337379328
BM_Sort_pair<uint32, uint32>_Ascending_64 1.28 ns 1.28 ns 581435392
BM_Sort_pair<uint32, uint32>_Ascending_256 1.28 ns 1.28 ns 545783808
BM_Sort_pair<uint32, uint32>_Ascending_1024 1.14 ns 1.14 ns 610795520
BM_Sort_pair<uint32, uint32>_Ascending_16384 1.00 ns 1.00 ns 692322304
BM_Sort_pair<uint32, uint32>_Ascending_262144 0.986 ns 0.985 ns 704643072
BM_Sort_pair<uint32, uint32>_Descending_1 3.36 ns 3.35 ns 208404480
BM_Sort_pair<uint32, uint32>_Descending_4 2.37 ns 2.37 ns 296222720
BM_Sort_pair<uint32, uint32>_Descending_16 4.33 ns 4.33 ns 162004992
BM_Sort_pair<uint32, uint32>_Descending_64 2.76 ns 2.76 ns 252968960
BM_Sort_pair<uint32, uint32>_Descending_256 2.41 ns 2.41 ns 290193408
BM_Sort_pair<uint32, uint32>_Descending_1024 2.61 ns 2.61 ns 268435456
BM_Sort_pair<uint32, uint32>_Descending_16384 2.36 ns 2.36 ns 297009152
BM_Sort_pair<uint32, uint32>_Descending_262144 2.36 ns 2.35 ns 295960576
BM_Sort_pair<uint32, uint32>_SingleElement_1 3.41 ns 3.40 ns 206045184
BM_Sort_pair<uint32, uint32>_SingleElement_4 1.76 ns 1.76 ns 397934592
BM_Sort_pair<uint32, uint32>_SingleElement_16 1.40 ns 1.40 ns 485752832
BM_Sort_pair<uint32, uint32>_SingleElement_64 1.41 ns 1.41 ns 490995712
BM_Sort_pair<uint32, uint32>_SingleElement_256 1.30 ns 1.30 ns 542638080
BM_Sort_pair<uint32, uint32>_SingleElement_1024 1.21 ns 1.21 ns 576454656
BM_Sort_pair<uint32, uint32>_SingleElement_16384 1.07 ns 1.07 ns 651689984
BM_Sort_pair<uint32, uint32>_SingleElement_262144 1.05 ns 1.05 ns 666107904
BM_Sort_pair<uint32, uint32>_PipeOrgan_1 3.36 ns 3.35 ns 208404480
BM_Sort_pair<uint32, uint32>_PipeOrgan_4 1.76 ns 1.76 ns 397672448
BM_Sort_pair<uint32, uint32>_PipeOrgan_16 4.01 ns 4.01 ns 174587904
BM_Sort_pair<uint32, uint32>_PipeOrgan_64 3.82 ns 3.82 ns 182976512
BM_Sort_pair<uint32, uint32>_PipeOrgan_256 4.61 ns 4.61 ns 152043520
BM_Sort_pair<uint32, uint32>_PipeOrgan_1024 5.27 ns 5.27 ns 130285568
BM_Sort_pair<uint32, uint32>_PipeOrgan_16384 7.09 ns 7.09 ns 96468992
BM_Sort_pair<uint32, uint32>_PipeOrgan_262144 6.82 ns 6.82 ns 103022592
BM_Sort_tuple<uint32, uint64, uint32>_Random_1 3.34 ns 3.34 ns 210239488
BM_Sort_tuple<uint32, uint64, uint32>_Random_4 5.94 ns 5.93 ns 111149056
BM_Sort_tuple<uint32, uint64, uint32>_Random_16 23.3 ns 23.2 ns 29622272
BM_Sort_tuple<uint32, uint64, uint32>_Random_64 33.5 ns 33.5 ns 20447232
BM_Sort_tuple<uint32, uint64, uint32>_Random_256 39.3 ns 39.3 ns 17563648
BM_Sort_tuple<uint32, uint64, uint32>_Random_1024 45.1 ns 45.1 ns 15204352
BM_Sort_tuple<uint32, uint64, uint32>_Random_16384 58.6 ns 58.6 ns 11796480
BM_Sort_tuple<uint32, uint64, uint32>_Random_262144 70.5 ns 70.5 ns 9699328
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1 3.32 ns 3.31 ns 210763776
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_4 2.10 ns 2.10 ns 332398592
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16 2.58 ns 2.58 ns 271319040
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_64 2.31 ns 2.31 ns 281018368
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_256 2.25 ns 2.24 ns 313524224
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1024 1.85 ns 1.84 ns 379322368
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16384 1.71 ns 1.71 ns 408420352
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_262144 1.65 ns 1.65 ns 419168256
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1 3.33 ns 3.33 ns 209453056
BM_Sort_tuple<uint32, uint64, uint32>_Descending_4 3.28 ns 3.28 ns 214171648
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16 5.29 ns 5.29 ns 130285568
BM_Sort_tuple<uint32, uint64, uint32>_Descending_64 3.93 ns 3.93 ns 177995776
BM_Sort_tuple<uint32, uint64, uint32>_Descending_256 3.26 ns 3.26 ns 214958080
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1024 3.50 ns 3.50 ns 200278016
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16384 3.62 ns 3.61 ns 193200128
BM_Sort_tuple<uint32, uint64, uint32>_Descending_262144 3.61 ns 3.61 ns 192413696
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1 3.32 ns 3.32 ns 209977344
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_4 2.27 ns 2.27 ns 307757056
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16 2.10 ns 2.10 ns 332398592
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_64 2.48 ns 2.48 ns 281280512
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_256 2.38 ns 2.38 ns 294387712
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1024 2.11 ns 2.11 ns 333447168
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16384 1.83 ns 1.83 ns 378535936
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_262144 1.82 ns 1.82 ns 381157376
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1 3.31 ns 3.31 ns 211288064
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_4 2.37 ns 2.36 ns 294649856
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16 5.39 ns 5.39 ns 126877696
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_64 5.29 ns 5.29 ns 128974848
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_256 6.39 ns 6.39 ns 107216896
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1024 6.98 ns 6.98 ns 98304000
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16384 7.95 ns 7.95 ns 86507520
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_262144 9.46 ns 9.46 ns 72351744
BM_Sort_string_Random_1 4.05 ns 4.05 ns 173277184
BM_Sort_string_Random_4 17.9 ns 17.9 ns 38010880
BM_Sort_string_Random_16 50.4 ns 50.3 ns 13369344
BM_Sort_string_Random_64 73.3 ns 73.3 ns 9437184
BM_Sort_string_Random_256 94.6 ns 94.4 ns 7077888
BM_Sort_string_Random_1024 115 ns 115 ns 6029312
BM_Sort_string_Random_16384 177 ns 177 ns 3932160
BM_Sort_string_Random_262144 279 ns 279 ns 2097152
BM_Sort_string_Ascending_1 4.07 ns 4.07 ns 171704320
BM_Sort_string_Ascending_4 12.9 ns 12.9 ns 52953088
BM_Sort_string_Ascending_16 21.7 ns 21.7 ns 32243712
BM_Sort_string_Ascending_64 23.9 ns 23.9 ns 29360128
BM_Sort_string_Ascending_256 23.4 ns 23.4 ns 29360128
BM_Sort_string_Ascending_1024 24.1 ns 24.1 ns 28311552
BM_Sort_string_Ascending_16384 30.6 ns 30.6 ns 22282240
BM_Sort_string_Ascending_262144 47.3 ns 47.3 ns 14155776
BM_Sort_string_Descending_1 4.07 ns 4.06 ns 171442176
BM_Sort_string_Descending_4 14.6 ns 14.6 ns 46923776
BM_Sort_string_Descending_16 30.9 ns 30.9 ns 22282240
BM_Sort_string_Descending_64 31.4 ns 31.4 ns 22020096
BM_Sort_string_Descending_256 31.1 ns 31.1 ns 22282240
BM_Sort_string_Descending_1024 35.0 ns 35.0 ns 19660800
BM_Sort_string_Descending_16384 50.0 ns 50.0 ns 13631488
BM_Sort_string_Descending_262144 79.9 ns 79.9 ns 8388608
BM_Sort_string_SingleElement_1 4.08 ns 4.07 ns 171966464
BM_Sort_string_SingleElement_4 10.8 ns 10.8 ns 63438848
BM_Sort_string_SingleElement_16 22.6 ns 22.6 ns 30408704
BM_Sort_string_SingleElement_64 23.6 ns 23.6 ns 29097984
BM_Sort_string_SingleElement_256 18.3 ns 18.3 ns 37486592
BM_Sort_string_SingleElement_1024 16.9 ns 16.9 ns 40894464
BM_Sort_string_SingleElement_16384 13.8 ns 13.8 ns 49807360
BM_Sort_string_SingleElement_262144 15.5 ns 15.5 ns 44564480
BM_Sort_string_PipeOrgan_1 4.07 ns 4.07 ns 171966464
BM_Sort_string_PipeOrgan_4 14.0 ns 14.0 ns 48496640
BM_Sort_string_PipeOrgan_16 29.2 ns 29.2 ns 23592960
BM_Sort_string_PipeOrgan_64 39.3 ns 39.3 ns 17563648
BM_Sort_string_PipeOrgan_256 47.0 ns 47.0 ns 14942208
BM_Sort_string_PipeOrgan_1024 53.3 ns 53.3 ns 12845056
BM_Sort_string_PipeOrgan_16384 74.2 ns 74.2 ns 9175040
BM_Sort_string_PipeOrgan_262144 123 ns 123 ns 5505024
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D93233
Files:
llvm/lib/TableGen/Record.cpp
Index: llvm/lib/TableGen/Record.cpp
===================================================================
--- llvm/lib/TableGen/Record.cpp
+++ llvm/lib/TableGen/Record.cpp
@@ -856,12 +856,12 @@
const StringInit *Delim) {
if (List->size() == 0)
return StringInit::get("");
- SmallString<80> Result(dyn_cast<StringInit>(List->getElement(0))->getValue());
+ SmallString<80> Result(cast<StringInit>(List->getElement(0))->getValue());
StringInit::StringFormat Fmt = StringInit::SF_String;
-
+
for (unsigned I = 1, E = List->size(); I < E; ++I) {
Result.append(Delim->getValue());
- auto *StrInit = dyn_cast<StringInit>(List->getElement(I));
+ auto *StrInit = cast<StringInit>(List->getElement(I));
Result.append(StrInit->getValue());
Fmt = StringInit::determineFormat(Fmt, StrInit->getFormat());
}
@@ -872,13 +872,14 @@
const StringInit *Delim) {
if (List->size() == 0)
return StringInit::get("");
- SmallString<80> Result(dyn_cast<IntInit>(List->getElement(0)->
- getCastTo(IntRecTy::get()))->getAsString());
-
+ SmallString<80> Result(
+ cast<IntInit>(List->getElement(0)->getCastTo(IntRecTy::get()))
+ ->getAsString());
+
for (unsigned I = 1, E = List->size(); I < E; ++I) {
Result.append(Delim->getValue());
- Result.append(dyn_cast<IntInit>(List->getElement(I)->
- getCastTo(IntRecTy::get()))->getAsString());
+ Result.append(cast<IntInit>(List->getElement(I)->getCastTo(IntRecTy::get()))
+ ->getAsString());
}
return StringInit::get(Result);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93233.311632.patch
Type: text/x-patch
Size: 1681 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201214/c716dfe2/attachment.bin>
More information about the llvm-commits
mailing list