<div dir="ltr"><div>Unicode normalization library (<a href="https://github.com/harendra-kumar/unicode-transforms">https://github.com/harendra-kumar/unicode-transforms</a>) shows around 10% improvement with GHC 8.2.1 when compared to GHC 8.0.1, across most benchmarks. However, it is still somewhat slower when compared to GHC 7.10.3. Here are some results:</div><div><br></div>GHC 7.10.3:<br><br>benchmarking unicode-transforms-text/NFD/English<br>time                 4.823 ms   (4.765 ms .. 4.902 ms)<br><br>benchmarking unicode-transforms-text/NFD/Devanagari<br>time                 16.46 ms   (16.24 ms .. 16.78 ms)<br><br><br>GHC 8.0.1<br><br><br>benchmarking unicode-transforms-text/NFD/English<br>time                 6.330 ms   (6.232 ms .. 6.439 ms)<br><br>benchmarking unicode-transforms-text/NFD/Devanagari<br>time                 18.02 ms   (17.77 ms .. 18.22 ms)<br><br>GHC 8.2.1<br><br><br>benchmarking unicode-transforms-text/NFD/English<br>time                 5.659 ms   (5.594 ms .. 5.740 ms)<br><br>benchmarking unicode-transforms-text/NFD/Devanagari<br>time                 16.48 ms   (16.30 ms .. 16.69 ms)<div><br></div><div>This library has been optimized with an objective to match or better (in some cases it is better) the performance of the equivalent ICU C++ library (compare only decompose normalization). Some of the last hurdles to match the best case of C++ were in the code generated by GHC. Also, for GHC 7.10 LLVM generated code is significantly faster than GHC native, I have not yet tested LLVM backend with 8.2.1 so not sure if that too has improved correspondingly.</div><div><br></div>I just wanted to share these results with the GHC devs. Thanks for all the good work. Also wondering which specific changes might have caused this improvement.<div><br></div><div>Thanks,</div><div>Harendra</div></div>