COFF: Parallelize ICF.
Audit RequiredrL248038

Description

COFF: Parallelize ICF.

The LLD's ICF algorithm is highly parallelizable. This patch does that
using parallel_for_each.

ICF accounted for about one third of total execution time. Previously,
it took 324 ms when self-hosting. Now it takes only 62 ms.

Of course your mileage may vary. My machine is a beefy 24-core Xeon machine,
so you may not see this much speedup. But this optimization should be
effective even for 2-core machine, since I saw speedup (324 ms -> 189 ms)
when setting parallelism parameter to 2.

Details

Auditors
Bigcheese
Committed
ruiuSep 18 2015, 2:06 PM
Parents
rL248037: Debug Info: Use the full module name as a key when caching DIModules.
Branches
Unknown
Tags
Unknown