[LLVMdev] Spilling numbers
Frank Winter
fwinter at jlab.org
Mon Aug 3 12:14:48 PDT 2015
Hi!
I am trying to figure out why for more complex function the generated
code performs so badly. (Currently I am looking at 5% peak).
From the collected statistics what are the most important numbers to
look at? I see a lot of spilling-related stuff, but which ones are the
one that have the biggest impact?
Thanks,
Frank
===-------------------------------------------------------------------------===
... Statistics Collected ...
===-------------------------------------------------------------------------===
6395 asm-printer - Number of machine instrs printed
1395 dagcombine - Number of dag nodes combined
3 isel - Number of blocks selected using DAG
1 isel - Number of entry blocks encountered
46005 isel - Number of times dag isel has to try another path
528 machine-cse - Number of copies coalesced
1 machine-licm - Number of machine instructions hoisted out of
loops
1 machine-licm - Number of machine instructions hoisted out of
loops post regalloc
8648 pei - Number of bytes used for stack in all functions
1 phielim - Number of phis lowered
665 pre-RA-sched - Number of loads clustered together
1472 regalloc - Number of copies inserted for splitting
2 regalloc - Number of cross class joins performed
1269 regalloc - Number of folded stack accesses
573 regalloc - Number of hoisted spills
197 regalloc - Number of identity moves eliminated after
rewriting
637 regalloc - Number of instructions deleted by DCE
144 regalloc - Number of instructions re-materialized
2557 regalloc - Number of interferences evicted
2260 regalloc - Number of interval joins performed
7412 regalloc - Number of new live ranges queued
23 regalloc - Number of omitted spills of reloads
5882 regalloc - Number of registers assigned
3276 regalloc - Number of registers unassigned
1140 regalloc - Number of reloads inserted
67 regalloc - Number of reloads removed
11 regalloc - Number of rematerialized defs for spilling
650 regalloc - Number of spill slots allocated
851 regalloc - Number of spilled live ranges
81 regalloc - Number of spilled snippets
732 regalloc - Number of spills inserted
21 regalloc - Number of spills removed
1 regalloc - Number of split global live ranges
1162 regalloc - Number of split local live ranges
1180 regalloc - Number of splits finished
1180 regalloc - Number of splits that were simple
623 slotindexes - Number of local renumberings
1 stackmaps - Number of functions skipped
1 stackmaps - Number of functions visited
110 stackslotcoloring - Number of stack slots eliminated due to coloring
118 twoaddrinstr - Number of instructions aggressively commuted
216 twoaddrinstr - Number of instructions commuted to coalesce
3182 twoaddrinstr - Number of two-address instructions
More information about the llvm-dev
mailing list