remove_duplicate_unreachable_blocks FxIndexSet<BasicBlock>
regex Full Opt
5790 counts
( 1) 4906 (84.7%, 84.7%): 0
( 2) 737 (12.7%, 97.5%): 1
( 3) 43 ( 0.7%, 98.2%): 4
( 4) 40 ( 0.7%, 98.9%): 2
( 5) 21 ( 0.4%, 99.3%): 3
( 6) 15 ( 0.3%, 99.5%): 5
libc Full Opt
17530 counts
( 1) 17507 (99.9%, 99.9%): 0
( 2) 20 ( 0.1%,100.0%): 1
( 3) 3 ( 0.0%,100.0%): 2
remove_dead_blocks replacement Vec<BasicBlock>
regex Full Opt
3613 counts
( 1) 833 (23.1%, 23.1%): 3
( 2) 704 (19.5%, 42.5%): 2
( 3) 274 ( 7.6%, 50.1%): 4
( 4) 238 ( 6.6%, 56.7%): 6
( 5) 220 ( 6.1%, 62.8%): 5
( 6) 108 ( 3.0%, 65.8%): 9
( 7) 104 ( 2.9%, 68.7%): 7
( 8) 95 ( 2.6%, 71.3%): 10
( 9) 94 ( 2.6%, 73.9%): 8
( 10) 61 ( 1.7%, 75.6%): 13
( 11) 60 ( 1.7%, 77.2%): 12
( 12) 49 ( 1.4%, 78.6%): 14
( 13) 41 ( 1.1%, 79.7%): 11
( 14) 41 ( 1.1%, 80.9%): 16
( 15) 40 ( 1.1%, 82.0%): 17
( 16) 37 ( 1.0%, 83.0%): 18
( 17) 30 ( 0.8%, 83.8%): 15
( 18) 27 ( 0.7%, 84.6%): 19
( 19) 27 ( 0.7%, 85.3%): 22
( 20) 18 ( 0.5%, 85.8%): 23
( 21) 18 ( 0.5%, 86.3%): 25
( 22) 17 ( 0.5%, 86.8%): 20
( 23) 16 ( 0.4%, 87.2%): 36
( 24) 14 ( 0.4%, 87.6%): 26
( 25) 13 ( 0.4%, 88.0%): 24
( 26) 13 ( 0.4%, 88.3%): 30
( 27) 12 ( 0.3%, 88.7%): 21
( 28) 11 ( 0.3%, 89.0%): 31
( 29) 11 ( 0.3%, 89.3%): 34
( 30) 11 ( 0.3%, 89.6%): 37
libc Full Opt
8793 counts
( 1) 8424 (95.8%, 95.8%): 2
( 2) 295 ( 3.4%, 99.2%): 3
( 3) 20 ( 0.2%, 99.4%): 7
( 4) 12 ( 0.1%, 99.5%): 4
( 5) 9 ( 0.1%, 99.6%): 8
( 6) 8 ( 0.1%, 99.7%): 11
( 7) 6 ( 0.1%, 99.8%): 5
( 8) 5 ( 0.1%, 99.8%): 6
( 9) 3 ( 0.0%, 99.9%): 16
( 10) 2 ( 0.0%, 99.9%): 15
simplify merged_blocks Vec<BasicBlock>
regex Full Opt
6172 counts
( 1) 5034 (81.6%, 81.6%): 0
( 2) 1099 (17.8%, 99.4%): 4
( 3) 32 ( 0.5%, 99.9%): 8
( 4) 6 ( 0.1%,100.0%): 16
( 5) 1 ( 0.0%,100.0%): 32
libc Full Opt
17549 counts
( 1) 17514 (99.8%, 99.8%): 0
( 2) 34 ( 0.2%,100.0%): 4
( 3) 1 ( 0.0%,100.0%): 8
CfgSimplifier pred_count Vec<BasicBlock>
regex Full Opt
6172 counts
( 1) 1248 (20.2%, 20.2%): 3
( 2) 961 (15.6%, 35.8%): 2
( 3) 723 (11.7%, 47.5%): 1
( 4) 440 ( 7.1%, 54.6%): 4
( 5) 367 ( 5.9%, 60.6%): 6
( 6) 344 ( 5.6%, 66.2%): 5
( 7) 270 ( 4.4%, 70.5%): 7
( 8) 202 ( 3.3%, 73.8%): 9
( 9) 143 ( 2.3%, 76.1%): 8
( 10) 136 ( 2.2%, 78.3%): 10
( 11) 105 ( 1.7%, 80.0%): 13
( 12) 97 ( 1.6%, 81.6%): 12
( 13) 92 ( 1.5%, 83.1%): 11
( 14) 69 ( 1.1%, 84.2%): 16
( 15) 62 ( 1.0%, 85.2%): 14
( 16) 54 ( 0.9%, 86.1%): 17
( 17) 50 ( 0.8%, 86.9%): 18
( 18) 47 ( 0.8%, 87.7%): 15
( 19) 39 ( 0.6%, 88.3%): 22
( 20) 36 ( 0.6%, 88.9%): 19
( 21) 33 ( 0.5%, 89.4%): 23
( 22) 29 ( 0.5%, 89.9%): 20
( 23) 27 ( 0.4%, 90.3%): 25
( 24) 25 ( 0.4%, 90.7%): 21
( 25) 19 ( 0.3%, 91.0%): 35
( 26) 17 ( 0.3%, 91.3%): 30
( 27) 17 ( 0.3%, 91.6%): 36
( 28) 16 ( 0.3%, 91.8%): 24
( 29) 16 ( 0.3%, 92.1%): 27
( 30) 15 ( 0.2%, 92.3%): 26
libc Full Opt
17549 counts
( 1) 8637 (49.2%, 49.2%): 1
( 2) 8227 (46.9%, 96.1%): 2
( 3) 575 ( 3.3%, 99.4%): 3
( 4) 23 ( 0.1%, 99.5%): 7
( 5) 19 ( 0.1%, 99.6%): 4
( 6) 18 ( 0.1%, 99.7%): 6
( 7) 13 ( 0.1%, 99.8%): 8
( 8) 11 ( 0.1%, 99.9%): 5
( 9) 10 ( 0.1%, 99.9%): 11
( 10) 4 ( 0.0%, 99.9%): 16
collapse_goto_chain terminators SmallVec<[BasicBlock; 1]>
regex Full Opt
173526 counts
( 1) 170534 (98.3%, 98.3%): 0
( 2) 2779 ( 1.6%, 99.9%): 1
( 3) 160 ( 0.1%,100.0%): 2
( 4) 50 ( 0.0%,100.0%): 3
( 5) 3 ( 0.0%,100.0%): 4
libc Full Opt
1905 counts
( 1) 1892 (99.3%, 99.3%): 0
( 2) 13 ( 0.7%,100.0%): 1
UsedLocals use_count Vec<Local>
regex Full Opt
2470 counts
( 1) 274 (11.1%, 11.1%): 5
( 2) 159 ( 6.4%, 17.5%): 4
( 3) 147 ( 6.0%, 23.5%): 10
( 4) 145 ( 5.9%, 29.4%): 3
( 5) 121 ( 4.9%, 34.3%): 8
( 6) 104 ( 4.2%, 38.5%): 6
( 7) 102 ( 4.1%, 42.6%): 2
( 8) 102 ( 4.1%, 46.7%): 7
( 9) 89 ( 3.6%, 50.3%): 17
( 10) 87 ( 3.5%, 53.8%): 9
( 11) 75 ( 3.0%, 56.9%): 11
( 12) 63 ( 2.6%, 59.4%): 13
( 13) 53 ( 2.1%, 61.6%): 12
( 14) 47 ( 1.9%, 63.5%): 14
( 15) 45 ( 1.8%, 65.3%): 15
( 16) 39 ( 1.6%, 66.9%): 22
( 17) 34 ( 1.4%, 68.3%): 21
( 18) 32 ( 1.3%, 69.6%): 18
( 19) 32 ( 1.3%, 70.9%): 19
( 20) 31 ( 1.3%, 72.1%): 27
( 21) 27 ( 1.1%, 73.2%): 20
( 22) 26 ( 1.1%, 74.3%): 16
( 23) 24 ( 1.0%, 75.2%): 24
( 24) 24 ( 1.0%, 76.2%): 35
( 25) 23 ( 0.9%, 77.1%): 23
( 26) 23 ( 0.9%, 78.1%): 25
( 27) 21 ( 0.9%, 78.9%): 28
( 28) 20 ( 0.8%, 79.7%): 38
( 29) 19 ( 0.8%, 80.5%): 26
( 30) 17 ( 0.7%, 81.2%): 29
libc Full Opt
548 counts
( 1) 372 (67.9%, 67.9%): 2
( 2) 41 ( 7.5%, 75.4%): 4
( 3) 36 ( 6.6%, 81.9%): 3
( 4) 17 ( 3.1%, 85.0%): 5
( 5) 9 ( 1.6%, 86.7%): 10
( 6) 9 ( 1.6%, 88.3%): 6
( 7) 6 ( 1.1%, 89.4%): 9
( 8) 5 ( 0.9%, 90.3%): 27
( 9) 5 ( 0.9%, 91.2%): 7
( 10) 4 ( 0.7%, 92.0%): 1
Feature Name: (fill me in with a unique ident, my_awesome_feature)
Feb 11, 2025tools.
Jun 7, 2024as is very complicated and do a lot of different things. See https://doc.rust-lang.org/stable/reference/expressions/operator-expr.html#type-cast-expressions and https://gist.github.com/T-Dark0/b14c35f44d434bd382d850a4c57f410f for a writeup (the part of about transitiveness there is not really ocrrect though).
Aug 3, 2023I recently came across this code sample: pub fn aaa(v: Vec<usize>) -> Vec<usize> { v.into_iter().map(|a| a + 3).map(|a| a * 4).collect() } It looks very simple. It's idiomatic Rust code. But, is it fast? It uses iterators, two map calls and collects in the end. In many high level languages, this code would be slower than the handwritten loop. But not in Rust. .LCPI0_0:
Jun 17, 2023or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up