https://bugs.kde.org/show_bug.cgi?id=384584
Bug ID: 384584 Summary: list first callee saved registers for AMD64, X86, and PPC architectures Product: valgrind Version: 3.14 SVN Platform: Compiled Sources OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: iv...@ivosh.net Target Milestone: --- For a particular architecture, VEX structure RRegUniverse describes real registers available to the register allocator and also those used only internally by the backend. For many architectures, such as ARM32, ARM64, MIPS, the callee saved registers are listed first in RRegUniverse's allocatable section. However AMD64, X86 and PPC have caller saved registers first. A small performance improvement for both VEX register allocator v2 and v3 has been observed if the callee saved registers are listed first. Register allocator is more likely to pick the callee saved register first and therefore does not need to spill them when calling helper functions. Measuring Memcheck on perf/bz2, instruction count: amd64 (Intel i5): ~~~~~~~~~~~~~~~~~ v2 baseline: 45,192 M total; 208 M register allocator v2 reorder: 45,183 M total; 205 M register allocator v3 baseline: 45,112 M total; 167 M register allocator v3 reorder: 45,094 M total; 165 M register allocator ppc (power8 le): ~~~~~~~~~~~~~~~~ v2 baseline: 61,983 M total; 397 M register allocator v2 reorder: 61,970 M total; 376 M register allocator v3 baseline: 61,939 M total; 348.6 M register allocator v3 reorder: 61,909 M total; 347.9 M register allocator It can be seen that v3 benefits more than v2 from the reordering. -- You are receiving this mail because: You are watching all bug changes.