https://bugs.kde.org/show_bug.cgi?id=381553

--- Comment #13 from Ivo Raisr <iv...@ivosh.net> ---
Patches 005 implement function find_vreg_to_spill().
With these patches, the register allocator v3 is able to produce correct
results for all tests in the Valgrind regression test suite.
Therefore the implementation is deemed correct.

As regards performance, v3 is slightly better (speedup reported up to 13.7%)
then v2. However there are still a few TODOs in v3 which should help boost the
performance even more. So I hope to have at the end faster and simpler
reg_alloc v3 than is the current v2.

Here are the numbers (% is the speedup of v3 compared to v2):
$ perl perf/vg_perf
--tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3
--vg=../valgrind-reg_alloc3 --vg=../valgrind-linux perf
-- Running  tests in perf ----------------------------------------------
bigcode1 valgrind-reg_alloc3:0.09s  no: 1.6s (18.0x, -----)  me: 3.1s (35.0x,
-----)  ca:12.7s (140.8x, -----)  he: 2.0s (22.8x, -----)  ca: 3.7s (41.2x,
-----)  dr: 2.0s (22.2x, -----)  ma: 1.9s (20.7x, -----)
bigcode1 valgrind-linux:0.09s  no: 1.6s (17.8x,  1.2%)  me: 3.0s (33.3x,  4.8%)
 ca:12.7s (140.7x,  0.1%)  he: 2.0s (22.2x,  2.4%)  ca: 3.6s (40.2x,  2.4%) 
dr: 1.9s (21.7x,  2.5%)  ma: 1.9s (20.7x,  0.0%)
-- bigcode2 --
bigcode2 valgrind-reg_alloc3:0.08s  no: 3.3s (41.1x, -----)  me: 6.8s (85.5x,
-----)  ca:26.5s (330.9x, -----)  he: 4.4s (54.9x, -----)  ca: 6.5s (81.2x,
-----)  dr: 4.1s (51.6x, -----)  ma: 3.9s (48.9x, -----)
bigcode2 valgrind-linux:0.08s  no: 3.4s (42.2x, -2.7%)  me: 6.8s (85.1x,  0.4%)
 ca:25.6s (320.2x,  3.2%)  he: 4.3s (53.9x,  1.8%)  ca: 6.1s (76.5x,  5.8%) 
dr: 4.0s (49.4x,  4.4%)  ma: 3.8s (48.0x,  1.8%)
-- bz2 --
bz2      valgrind-reg_alloc3:0.54s  no: 2.1s ( 3.9x, -----)  me: 7.4s (13.6x,
-----)  ca:14.9s (27.5x, -----)  he:10.9s (20.2x, -----)  ca:12.5s (23.1x,
-----)  dr:11.1s (20.6x, -----)  ma: 2.0s ( 3.8x, -----)
bz2      valgrind-linux:0.54s  no: 2.0s ( 3.7x,  4.8%)  me: 6.3s (11.8x, 13.7%)
 ca:14.7s (27.1x,  1.3%)  he:10.1s (18.6x,  7.8%)  ca:11.8s (21.9x,  5.3%) 
dr:10.7s (19.8x,  4.0%)  ma: 2.0s ( 3.8x, -0.5%)
-- fbench --
fbench   valgrind-reg_alloc3:0.23s  no: 1.1s ( 4.7x, -----)  me: 3.7s (16.1x,
-----)  ca: 5.1s (22.3x, -----)  he: 2.7s (11.9x, -----)  ca: 3.4s (14.8x,
-----)  dr: 2.7s (11.6x, -----)  ma: 1.1s ( 4.8x, -----)
fbench   valgrind-linux:0.23s  no: 1.1s ( 4.7x,  0.9%)  me: 3.5s (15.3x,  4.6%)
 ca: 5.2s (22.5x, -0.8%)  he: 2.6s (11.5x,  2.9%)  ca: 3.1s (13.6x,  7.9%)  dr:
2.6s (11.3x,  2.2%)  ma: 1.1s ( 4.9x, -0.9%)
-- ffbench --
ffbench  valgrind-reg_alloc3:0.25s  no: 1.1s ( 4.5x, -----)  me: 3.4s (13.7x,
-----)  ca: 2.0s ( 7.9x, -----)  he: 5.9s (23.4x, -----)  ca: 4.4s (17.5x,
-----)  dr: 3.4s (13.4x, -----)  ma: 1.1s ( 4.3x, -----)
ffbench  valgrind-linux:0.25s  no: 1.1s ( 4.5x,  0.0%)  me: 3.5s (13.8x, -0.9%)
 ca: 2.0s ( 7.8x,  0.5%)  he: 6.0s (23.8x, -1.7%)  ca: 4.2s (16.9x,  3.2%)  dr:
3.4s (13.4x,  0.0%)  ma: 1.1s ( 4.3x,  0.0%)
-- heap --
heap     valgrind-reg_alloc3:0.08s  no: 0.8s (10.1x, -----)  me: 5.2s (64.9x,
-----)  ca: 6.6s (83.0x, -----)  he: 7.1s (89.0x, -----)  ca: 3.9s (49.1x,
-----)  dr: 4.4s (54.8x, -----)  ma: 2.5s (31.9x, -----)
heap     valgrind-linux:0.08s  no: 0.8s (10.2x, -1.2%)  me: 5.1s (63.2x,  2.5%)
 ca: 6.6s (83.0x,  0.0%)  he: 7.0s (86.9x,  2.4%)  ca: 3.8s (47.2x,  3.8%)  dr:
4.3s (53.2x,  2.7%)  ma: 2.5s (31.4x,  1.6%)
-- heap_pdb4 --
heap_pdb4 valgrind-reg_alloc3:0.10s  no: 0.9s ( 8.6x, -----)  me: 7.9s (79.4x,
-----)  ca: 7.2s (72.0x, -----)  he: 7.9s (79.1x, -----)  ca: 4.2s (41.9x,
-----)  dr: 4.9s (49.0x, -----)  ma: 2.7s (27.2x, -----)
heap_pdb4 valgrind-linux:0.10s  no: 0.9s ( 8.8x, -2.3%)  me: 7.8s (78.4x, 
1.3%)  ca: 7.2s (71.6x,  0.6%)  he: 7.7s (77.3x,  2.3%)  ca: 4.2s (41.8x, 
0.2%)  dr: 4.8s (48.3x,  1.4%)  ma: 2.8s (28.3x, -4.0%)
-- many-loss-records --
many-loss-records valgrind-reg_alloc3:0.01s  no: 0.3s (32.0x, -----)  me: 1.4s
(141.0x, -----)  ca: 1.1s (107.0x, -----)  he: 1.2s (123.0x, -----)  ca: 0.8s
(75.0x, -----)  dr: 1.1s (111.0x, -----)  ma: 0.7s (70.0x, -----)
many-loss-records valgrind-linux:0.01s  no: 0.3s (29.0x,  9.4%)  me: 1.4s
(140.0x,  0.7%)  ca: 1.1s (106.0x,  0.9%)  he: 1.2s (119.0x,  3.3%)  ca: 0.7s
(72.0x,  4.0%)  dr: 1.1s (110.0x,  0.9%)  ma: 0.7s (70.0x,  0.0%)
-- many-xpts --
many-xpts valgrind-reg_alloc3:0.04s  no: 0.4s ( 9.5x, -----)  me: 1.7s (41.8x,
-----)  ca: 2.6s (64.5x, -----)  he: 2.1s (51.7x, -----)  ca: 1.0s (26.0x,
-----)  dr: 1.4s (35.5x, -----)  ma: 1.4s (36.2x, -----)
many-xpts valgrind-linux:0.04s  no: 0.4s (10.0x, -5.3%)  me: 1.5s (38.0x, 
9.0%)  ca: 2.5s (63.7x,  1.2%)  he: 2.0s (50.0x,  3.4%)  ca: 1.0s (24.8x, 
4.8%)  dr: 1.4s (35.2x,  0.7%)  ma: 1.5s (37.0x, -2.1%)
-- memrw --
memrw    valgrind-reg_alloc3:0.06s  no: 0.5s ( 8.5x, -----)  me: 1.3s (21.0x,
-----)  ca: 2.5s (41.0x, -----)  he: 4.4s (72.8x, -----)  ca: 2.0s (33.8x,
-----)  dr: 1.3s (21.5x, -----)  ma: 0.6s ( 9.3x, -----)
memrw    valgrind-linux:0.06s  no: 0.5s ( 8.2x,  3.9%)  me: 1.2s (20.8x,  0.8%)
 ca: 2.5s (40.8x,  0.4%)  he: 4.3s (71.0x,  2.5%)  ca: 2.0s (33.0x,  2.5%)  dr:
1.2s (20.3x,  5.4%)  ma: 0.6s ( 9.2x,  1.8%)
-- sarp --
sarp     valgrind-reg_alloc3:0.02s  no: 0.3s (16.5x, -----)  me: 2.3s (116.5x,
-----)  ca: 1.8s (88.0x, -----)  he: 5.6s (281.5x, -----)  ca: 0.9s (46.0x,
-----)  dr: 1.0s (51.0x, -----)  ma: 0.4s (18.0x, -----)
sarp     valgrind-linux:0.02s  no: 0.3s (17.0x, -3.0%)  me: 2.2s (111.0x, 
4.7%)  ca: 1.8s (88.0x,  0.0%)  he: 5.4s (271.0x,  3.7%)  ca: 0.9s (46.0x, 
0.0%)  dr: 1.0s (48.0x,  5.9%)  ma: 0.4s (18.0x,  0.0%)
-- tinycc --
tinycc   valgrind-reg_alloc3:0.15s  no: 1.2s ( 7.9x, -----)  me: 9.4s (62.7x,
-----)  ca: 9.4s (62.5x, -----)  he:11.1s (74.0x, -----)  ca: 9.4s (62.9x,
-----)  dr: 9.1s (60.9x, -----)  ma: 1.6s (10.5x, -----)
tinycc   valgrind-linux:0.15s  no: 1.2s ( 8.0x, -0.8%)  me: 8.6s (57.6x,  8.1%)
 ca: 9.6s (64.1x, -2.6%)  he:10.7s (71.3x,  3.6%)  ca: 9.1s (60.5x,  3.8%)  dr:
8.8s (58.9x,  3.3%)  ma: 1.6s (10.6x, -0.6%)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to