public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "whaley at cs dot utsa dot edu" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/27827] [4.0/4.1 Regression] gcc 4 produces worse x87 code on all platforms than gcc 3 Date: Mon, 07 Aug 2006 15:32:00 -0000 [thread overview] Message-ID: <20060807153230.25839.qmail@sourceware.org> (raw) In-Reply-To: <bug-27827-12761@http.gcc.gnu.org/bugzilla/> ------- Comment #38 from whaley at cs dot utsa dot edu 2006-08-07 15:32 ------- Paolo, Thanks for all the help. I'm not sure I understand everything perfectly though, so there's some questions below . . . >I don't see how the last fmul[sl] can be removed without increasing code size. Since the flags are asking for performance, not size optimization, this should only be an argument if the fmul[s,l]'s are performance-neutral. A lot of performance optimizations increase code size, after all . . . Obviously, no fmul[sl] is possible, since gcc 3 achieves it. However, I can see that the peephole phase might not be able to change the register usage. >Can you please try re-running the tests? It takes skill^W^W Yes, I found the results confusing as well, which is why I reran them 50 times before posting. I also posted the tarfile (wt Makefile and assemblies) that built them, so that my mistakes could be caught by someone with more skill. Just as a check, maybe you can confirm the .s you posted is the right one? I can't find the loads of the matrix C anywhere in its assembly, and I can find them in the double version . . . Anyway, I like your suggestion (below) of getting the compiler so we won't have to worry about assemblies, so that's probably the way to go. On this front, is there some reason you cannot post the patch(es) as attachments, just to rule out copy problems, as I've asked in last several messages? Note there's no need if I can grab your stuff from SVN, as below . . . >because my tests were run on a similar Prescott (P4e) You didn't post the gcc 3 performance numbers. What were those like? If you beat/tied gcc 3, then the remaining fmul[l,s] are probably not a big deal. If gcc 3 is still winning, on the other hand . . . >It also would be interesting to re-run your code generator on a compiler built from svn trunk. Are your changes on a branch I could check out? If so, give me the commands to get that branch, as we are scoping assemblies only because of the patching problem. Having a full compiler would indeed enable more detailed investigations, including loosing the full code generator on the improved compiler. >Also, I strongly believe that you should implement vectorization, ATLAS implements vectorization, by writing the entire GEMM kernel in assembly and directly using SSE. However, there are cases where generated C code must be called, and that's where gcc comes in . . . >or at least find out *why* GCC does not vectorize your code. It may be simply that it does not have any guarantee on the alignment. I'm all for this. info gcc says that w/o a guarantee of alignment, loops are duped, with an if selecting between vector and scalar loops, is this not accurate? I spent a day trying to get gcc to vectorize any of the generator's loops, and did not succeed (can you make it vectorize the provided benchmark code?). I also tried various unrollings of the inner loop, particularly no unrolling and unroll=2 (vector length). I was unable to truly decipher the warning messages explaining the lack of vectorization, and I would truly welcome some help in fixing this. This is a separate issue from the x87 code, and this tracker item is already fairly complex :) I'm assuming if I attempted to open a bug tracker of "gcc will not vectorize atlas's generated code" it would be closed pretty quickly. Maybe you can recommend how to approach this, or open another report that we can exchange info on? I would truly appreciate the opportunity to get some feedback from gcc authors to help guide me to solving this problem. Thanks for all the info, Clint -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27827
next prev parent reply other threads:[~2006-08-07 15:32 UTC|newest] Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-05-31 0:33 [Bug rtl-optimization/27827] New: " hiclint at gmail dot com 2006-05-31 0:35 ` [Bug rtl-optimization/27827] " pinskia at gcc dot gnu dot org 2006-05-31 0:36 ` hiclint at gmail dot com 2006-05-31 0:42 ` [Bug target/27827] " pinskia at gcc dot gnu dot org 2006-05-31 0:50 ` hiclint at gmail dot com 2006-05-31 0:55 ` pinskia at gcc dot gnu dot org 2006-05-31 1:09 ` whaley at cs dot utsa dot edu 2006-05-31 10:57 ` uros at kss-loka dot si 2006-05-31 14:13 ` whaley at cs dot utsa dot edu 2006-06-01 8:43 ` uros at kss-loka dot si 2006-06-01 16:03 ` whaley at cs dot utsa dot edu 2006-06-01 16:26 ` whaley at cs dot utsa dot edu 2006-06-01 18:43 ` whaley at cs dot utsa dot edu 2006-06-07 22:39 ` whaley at cs dot utsa dot edu 2006-06-14 3:04 ` whaley at cs dot utsa dot edu 2006-06-24 18:11 ` whaley at cs dot utsa dot edu 2006-06-24 19:13 ` rguenth at gcc dot gnu dot org 2006-06-25 13:35 ` whaley at cs dot utsa dot edu 2006-06-25 23:05 ` rguenth at gcc dot gnu dot org 2006-06-26 1:12 ` whaley at cs dot utsa dot edu 2006-06-26 7:53 ` uros at kss-loka dot si 2006-06-26 16:02 ` whaley at cs dot utsa dot edu 2006-06-27 6:05 ` uros at kss-loka dot si 2006-06-27 14:37 ` whaley at cs dot utsa dot edu 2006-06-27 17:47 ` whaley at cs dot utsa dot edu 2006-06-28 17:37 ` [Bug target/27827] [4.0/4.1/4.2 Regression] " steven at gcc dot gnu dot org 2006-06-28 20:18 ` whaley at cs dot utsa dot edu 2006-06-29 4:18 ` hjl at lucon dot org 2006-06-29 6:43 ` whaley at cs dot utsa dot edu 2006-07-04 13:15 ` whaley at cs dot utsa dot edu 2006-07-05 17:55 ` mmitchel at gcc dot gnu dot org 2006-08-04 7:46 ` bonzini at gnu dot org 2006-08-04 16:24 ` whaley at cs dot utsa dot edu 2006-08-05 7:21 ` bonzini at gnu dot org 2006-08-05 14:24 ` whaley at cs dot utsa dot edu 2006-08-05 17:16 ` bonzini at gnu dot org 2006-08-05 18:26 ` whaley at cs dot utsa dot edu 2006-08-06 15:03 ` [Bug target/27827] [4.0/4.1 " whaley at cs dot utsa dot edu 2006-08-07 6:19 ` bonzini at gnu dot org 2006-08-07 15:32 ` whaley at cs dot utsa dot edu [this message] 2006-08-07 16:47 ` whaley at cs dot utsa dot edu 2006-08-07 16:58 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-07 17:19 ` whaley at cs dot utsa dot edu 2006-08-07 18:19 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-07 20:35 ` dorit at il dot ibm dot com 2006-08-07 21:57 ` whaley at cs dot utsa dot edu 2006-08-08 2:59 ` whaley at cs dot utsa dot edu 2006-08-08 6:15 ` hubicka at gcc dot gnu dot org 2006-08-08 6:28 ` Jan Hubicka 2006-08-08 6:29 ` hubicka at ucw dot cz 2006-08-08 7:05 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-08 16:44 ` whaley at cs dot utsa dot edu 2006-08-08 18:36 ` whaley at cs dot utsa dot edu 2006-08-09 4:34 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-09 14:33 ` whaley at cs dot utsa dot edu 2006-08-09 15:52 ` whaley at cs dot utsa dot edu 2006-08-09 16:08 ` whaley at cs dot utsa dot edu 2006-08-09 19:10 ` Dorit Nuzman 2006-08-09 19:10 ` dorit at il dot ibm dot com 2006-08-09 21:33 ` whaley at cs dot utsa dot edu 2006-08-09 21:46 ` Andrew Pinski 2006-08-09 21:46 ` pinskia at physics dot uc dot edu 2006-08-09 23:02 ` whaley at cs dot utsa dot edu 2006-08-10 6:52 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-10 14:08 ` whaley at cs dot utsa dot edu 2006-08-10 14:29 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-10 15:16 ` whaley at cs dot utsa dot edu 2006-08-10 15:22 ` paolo dot bonzini at lu dot unisi dot ch 2006-08-11 9:19 ` uros at kss-loka dot si 2006-08-11 13:26 ` bonzini at gcc dot gnu dot org 2006-08-11 14:10 ` [Bug target/27827] [4.0 " bonzini at gnu dot org 2006-08-11 15:22 ` whaley at cs dot utsa dot edu 2006-08-23 10:36 ` oliver dot jennrich at googlemail dot com 2006-10-07 10:06 ` steven at gcc dot gnu dot org 2007-02-13 2:59 ` pinskia at gcc dot gnu dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20060807153230.25839.qmail@sourceware.org \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).