[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #18 from hubicka at gcc dot gnu dot org 2005-11-03 22:32 --- insn size is currently completely unused. It was used for producing loop instructions. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #17 from uros at kss-loka dot si 2005-11-03 10:05 --- > > FYI: This problem is addressed in patch at > > http://gcc.gnu.org/ml/gcc-patches/2005-11/msg00116.html. > > Do you know if your patch also fixes this PR? Unfortunatelly no... I don't know if insn size is considered during reload. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #16 from dann at godzilla dot ics dot uci dot edu 2005-11-03 06:42 --- (In reply to comment #15) > (In reply to comment #11) > > And FWIW there is also a problem with this insn, the length is wrong: > > > > #(insn 11 46 47 0x2a955cc840 (set (reg:SI 0 eax [orig:61 x ] [61]) > > #(mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32])) 44 {*movsi_1} > > (nil) > > #(expr_list:REG_EQUIV (mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32]) > > #(nil))) > > A1 movlx, %eax # 11*movsi_1/1 [length = 6] > > FYI: This problem is addressed in patch at > http://gcc.gnu.org/ml/gcc-patches/2005-11/msg00116.html. Do you know if your patch also fixes this PR? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #15 from uros at kss-loka dot si 2005-11-03 06:29 --- (In reply to comment #11) > And FWIW there is also a problem with this insn, the length is wrong: > > #(insn 11 46 47 0x2a955cc840 (set (reg:SI 0 eax [orig:61 x ] [61]) > #(mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32])) 44 {*movsi_1} (nil) > #(expr_list:REG_EQUIV (mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32]) > #(nil))) > A1 movlx, %eax # 11*movsi_1/1 [length = 6] FYI: This problem is addressed in patch at http://gcc.gnu.org/ml/gcc-patches/2005-11/msg00116.html. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #14 from mmitchel at gcc dot gnu dot org 2005-10-31 05:36 --- I don't think this PR is, in-and-of-itself, is very interesting, as it's a 1-byte size increase with -O2, which, as has been said, is not aimed at minimizing code size. So, I'm going to close this PR -- but, leave PR 23153 open, as there look to be interesting issues there. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #13 from dann at godzilla dot ics dot uci dot edu 2005-10-31 04:50 --- (In reply to comment #12) > A more interesting test would be to see the Linux kernel size difference, There's such a comparison now in comment #8 in PR23153. It confirms the size increase. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #12 from dann at godzilla dot ics dot uci dot edu 2005-10-27 18:08 --- (In reply to comment #9) > And CSiBE tells you the story that GCC 4.1 produces smaller code overall. > http://www.inf.u-szeged.hu/csibe/draw-diag.php?draw=sum-os&basephp=s-i686-linux Well, it obviously depends on applications. The point of PR23153 is to show that there is a code size regression, and all the PRs that depend on it are showing very specific issues that cause a part of the regression. A more interesting test would be to see the Linux kernel size difference, because if there's any difference there would be some people screaming (unfortunately I won't be able to do that comparison anytime soon, hope someone else will). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
-- steven at gcc dot gnu dot org changed: What|Removed |Added Status|WAITING |NEW Ever Confirmed|0 |1 Last reconfirmed|2005-10-27 17:34:42 |2005-10-27 17:35:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #11 from steven at gcc dot gnu dot org 2005-10-27 17:34 --- And FWIW there is also a problem with this insn, the length is wrong: #(insn 11 46 47 0x2a955cc840 (set (reg:SI 0 eax [orig:61 x ] [61]) #(mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32])) 44 {*movsi_1} (nil) #(expr_list:REG_EQUIV (mem/f:SI (symbol_ref:SI ("x")) [5 x+0 S4 A32]) #(nil))) A1 movlx, %eax # 11*movsi_1/1 [length = 6] -- steven at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|-00-00 00:00:00 |2005-10-27 17:34:42 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #10 from steven at gcc dot gnu dot org 2005-10-27 17:31 --- For the record, we're talking about: 1.file "t.c" 2.text 3.p2align 4,,15 4.globl foo 5.type foo, @function 6foo: 7 55pushl %ebp 8 0001 A100 movlx, %eax 8 00 9 0006 89E5 movl%esp, %ebp 10 0008 8B5508movl8(%ebp), %edx 11 000b 394204cmpl%eax, 4(%edx) 12 000e 7402 je .L4 13 0010 5Dpopl%ebp 14 0011 C3ret 15.p2align 4,,7 16.L4: 17 0012 5Dpopl%ebp 18 0013 E9FC jmp bar 18 FF 19.size foo, .-foo 20.comm x,4,4 21.section.note.GNU-stack,"",@progbits 22.ident "GCC: (GNU) 3.3.4 (pre 3.3.5 20040809)" vs. 1.file "t.c" 2.text 3.p2align 4,,15 4.globl foo 5.type foo, @function 6foo: 7 55pushl %ebp 8 0001 89E5 movl%esp, %ebp 9 0003 8B5508movl8(%ebp), %edx 10 0006 8B4204movl4(%edx), %eax 11 0009 3B05 cmplx, %eax 11 12 000f 7402 je .L6 13 0011 5Dpopl%ebp 14 0012 C3ret 15.p2align 4,,7 16.L6: 17 0013 5Dpopl%ebp 18 0014 E9FC jmp bar 18 FF 19.size foo, .-foo 20.comm x,4,4 21.ident "GCC: (GNU) 4.1.0 20051026 (experimental)" 22.section.note.GNU-stack,"",@progbits -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #9 from steven at gcc dot gnu dot org 2005-10-27 17:08 --- And CSiBE tells you the story that GCC 4.1 produces smaller code overall. http://www.inf.u-szeged.hu/csibe/draw-diag.php?draw=sum-os&basephp=s-i686-linux So do the SPEC benchmark boxes btw. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #8 from dann at godzilla dot ics dot uci dot edu 2005-10-27 16:43 --- (In reply to comment #7) > Could the dear reported at least try to provide a small test case? The testcase in the attachment contains only a 4 lines function: HandleDeIconify, the rest is just fluff to allow it to compile. Granted a lot of it can be pruned, but I don't think it stops trying to debug the problem. > I think this should not be marked as a regression. Why not? It is a regression. > It's just sad that this > kind of non-bug keeps the regression count high, when in reality GCC 4.1 > produces smaller code overall. PR23153 tells a completely different story about codesize (at least for i686). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
--- Comment #7 from steven at gcc dot gnu dot org 2005-10-27 16:26 --- Could the dear reported at least try to provide a small test case? I think this should not be marked as a regression. It's just sad that this kind of non-bug keeps the regression count high, when in reality GCC 4.1 produces smaller code overall. -- steven at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524
[Bug target/23524] [4.1 Regression]bigger version of mov + cmp produced
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|normal |minor Component|rtl-optimization|target Keywords||missed-optimization Summary|bigger version of mov + cmp |[4.1 Regression]bigger |produced|version of mov + cmp ||produced Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23524