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.