Files
rust/compiler
bors 35dbef2350 Auto merge of #82562 - llogiq:one-up-82248, r=oli-obk
Optimize counting digits in line numbers during error reporting further

This one-ups #82248 by switching the strategy: Instead of dividing the value by 10 repeatedly, we compare with a limit that we multiply by 10 repeatedly. In my benchmarks, this took between 50% and 25% of the original time. The reasons for being faster are:

1. While LLVM is able to replace a division by constant with a multiply + shift, a plain multiplication is still faster. However, this doesn't even factor, because
2. Multiplication, unlike division, is const. We also use a simple for-loop instead of a more complex loop + break, which allows
3. rustc to const-fold the whole loop, and indeed the assembly output simply shows a series of comparisons.
2021-03-02 21:01:47 +00:00
..
2021-02-14 18:03:11 +03:00
2021-02-20 17:19:30 -05:00
2021-02-20 10:51:26 +01:00
2021-02-07 23:48:58 -08:00
2021-02-21 12:22:22 +01:00
2021-02-21 12:22:22 +01:00