Summary: | reduce number of spill instructions generated by VEX register allocator v3 | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Ivo Raisr <ivosh> |
Component: | vex | Assignee: | Ivo Raisr <ivosh> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ivosh |
Priority: | NOR | ||
Version: | 3.14 SVN | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=384337 | ||
Latest Commit: | Version Fixed In: | ||
Attachments: | proposed patch |
Description
Ivo Raisr
2017-09-09 15:32:09 UTC
Created attachment 107778 [details]
proposed patch
We can see the following performance improvement: running Memcheck on perf/bz2: baseline: 45,132 M instructions total; 161 M instructions doRegisterAllocation_v3 patched: 45,107 M instructions total; 168 M instructions doRegisterAllocation_v3 running Memcheck on /bin/true: baseline: 3,511 M instructions total; 59 M instructions doRegisterAllocation_v3 patched: 3,508 M instructions total; 61 M instructions doRegisterAllocation_v3 So it can be seen that even when running the simplest program (/bin/true), small additional cost of register allocation is compensated by much higher gain in terms of total instruction cost. Fixed by changeset 3117cd9637a843cbab5de302fb30e22153fbfc1c: https://sourceware.org/git/?p=valgrind.git;a=commit;h=3117cd9637a843cbab5de302fb30e22153fbfc1c |