Home - ruijiefang/llvm-hcs GitHub Wiki

Welcome to the llvm-hcs wiki!

Benchmark Results on mozilla-central

Baseline

Talos benchmark mean: 1015.8 seconds Talos benchmark median: 1015.0 seconds

PGO+naive HCS

Number of cold regions: 152048 Number of extracted regions: 69444 Number of blocks with small penalty: 79612 Number of inlined functions: 4523555 Talos benchmark mean: 961.3 seconds Talos benchmark medean: 961 seconds

PGO+Inliner calls HCS

Number of cold regions: 157166 Number of extracted regions: 72166 Number of blocks with small penalty: 81833 Number of inlined functions: 4531517 Talos benchmark mean: 959.4444444444445 seconds Talos benchmark median: 959.0 seconds

HCS + Splitting blocks with small, negative benefit-penalty values

-Os:

Delta Size (including dynamic libraries)
D59715 2.184796592 GB
0 2.188262032 GB
5 2.206931464 GB

-O3:

Delta Size (including dynamic libraries)
-2 2.270277648 GB
0 2.247788640 GB
D59751 2.243288440 GB
2 2.259242024 GB
5 2.270277648 GB
Inliner+HCS 2.29243826 GB

Benchmark data for talos-test perf-reftest across 5 runs:

Delta perf-reftest elapsed time icache misses/hit pagefaults
-2 mean:979.154s,min:976.070s,med:979.677s 76252841384/1639147282882 9931997
0 mean:958.988s,min:957.816s,med:959.531s 76386933845/1651163241090 9998150
2 mean:971.755s,min:968.438s,med:972.438s 75050288347/1659695658920 9921934

Observation. Splitting off more blocks by manually adjusting a delta value does not seem to help with performance or code size. D59751 helps in terms of code size. Inliner+HCS splits significantly more blocks, and while there is a code size increase, might help with performance.