------- Comment #3 from hjl dot tools at gmail dot com 2010-06-09 00:59 ------- The old scheduler:
;; ====================================================== ;; -- basic block 2 from 37 to 42 -- after reload ;; ====================================================== ;; 0--> 37 [--sp]=bp :atom-dual-2c ;; 1--> 44 {cx=0;clobber flags;} :atom-simple-either ;; 2--> 38 bp=sp :atom-simple-either ;; 6--> 26 ax=[bp+0x8] :atom-simple-either ;; 6--> 27 dx=[bp+0xc] :atom-simple-either ;; 7--> 45 flags=cmp(ax,0) :atom-simple-either ;; 8--> 46 strict_low_part=flags!=0 :atom-simple-either ;; 8--> 13 {ax=-ax;clobber flags;} :atom-simple-either ;; 9--> 11 {dx=cx+dx;clobber flags;} :atom-simple-either ;; 10--> 12 {dx=-dx;clobber flags;} :atom-simple-either ;; 10--> 23 use ax :nothing ;; 11--> 41 {bp=[sp];sp=sp+0x4;} :atom-dual-2c ;; 12--> 42 return :atom-dual-1c ;; Ready list (final): ;; total time = 12 ;; new head = 37 ;; new tail = 42 The new one: ;; ====================================================== ;; -- basic block 2 from 37 to 42 -- after reload ;; ====================================================== ;; 0--> 37 [--sp]=bp :atom-dual-2c ;; 1--> 44 {cx=0;clobber flags;} :atom-simple-either ;; 2--> 38 bp=sp :atom-simple-either ;; 6--> 26 ax=[bp+0x8] :atom-simple-either ;; 6--> 27 dx=[bp+0xc] :atom-simple-either ;; 7--> 45 flags=cmp(ax,0) :atom-simple-either ;; 8--> 46 strict_low_part=flags!=0 :atom-simple-either ;; 8--> 13 {ax=-ax;clobber flags;} :atom-simple-either ;; 9--> 41 {bp=[sp];sp=sp+0x4;} :atom-dual-2c ;; 12--> 11 {dx=cx+dx;clobber flags;} :atom-simple-either ;; 12--> 12 {dx=-dx;clobber flags;} :atom-simple-either ;; 13--> 23 use ax :nothing ;; 13--> 42 return :atom-dual-1c ;; Ready list (final): ;; total time = 13 ;; new head = 37 ;; new tail = 42 It is slower. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44470