public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c/30475] assert(int+100 > int) optimized away Date: Wed, 17 Jan 2007 19:18:00 -0000 [thread overview] Message-ID: <20070117191752.19519.qmail@sourceware.org> (raw) In-Reply-To: <bug-30475-3511@http.gcc.gnu.org/bugzilla/> ------- Comment #26 from pinskia at gcc dot gnu dot org 2007-01-17 19:17 ------- (In reply to comment #25) > Well, duh. You removed the security checks. Which were wrong to begin with, See the comp.lang.c faq. > > Hey, I have one for you, too. Optimize away all calls to pthread_mutex_lock, > and lo and behold, multithreaded code will be much faster! It will also be > broken, but apparently, that's not much of a concern around here. No, because it is not undefined for pthread_mutex_lock unlike this case. > The most time critical code I have, I just benchmarked. > > $ gcc -O3 -fomit-frame-pointer -funroll-loops -march=athlon64 -o t t.c misc.c > add.c mul.c write.c read.c comba.c > $ ./t > adding two bignums: 84 cycles > multiply two bignums: 1414 cycles > writing a bignum as radix 10: 207488 cycles > comba: 1467 cycles > $ gcc -O3 -fomit-frame-pointer -funroll-loops -march=athlon64 -o t t.c misc.c > add.c mul.c write.c read.c comba.c -fwrapv > adding two bignums: 82 cycles > multiply two bignums: 1414 cycles > writing a bignum as radix 10: 202761 cycles > comba: 1465 cycles > $ > > So, uh, where does the optimization part about your "optimization" come in? Most of the time it is loops. Try adding bounds checking to the code and try again. You will then see the difference, This is an important optimization for C++ code that has bound checked array accesses, Java code and Fortran code. > This is code that has no integer overflow checks. Your specific code has no code which benifits that much. Try again with some C++ code which uses vector and get. You will see a huge difference in the code there. > So my conjecture is: your > "optimization" makes code faster in exactly those cases where it removes > security checks from it, endangering people on the way. You are missunderstanding, your one piece of code does not benifit so you can just alway turn on -fwrapv if you really depend on signed integer overflow wrapping. You need to look at the bigger picture: 1) security is important 2) code generation is important which one is better for the users, all of the above. Just because the person who wrote the security checks in the code you are looking at got it wrong is no reason to penality the people who actually got it right by using the way decribed in the comp.lang.c faq. This is my point, you are trying to penality the people who wrote their security checks so it is defined C. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475
next prev parent reply other threads:[~2007-01-17 19:18 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-01-15 19:43 [Bug c/30475] New: " felix-gcc at fefe dot de 2007-01-15 19:46 ` [Bug c/30475] " felix-gcc at fefe dot de 2007-01-15 19:47 ` pinskia at gcc dot gnu dot org 2007-01-15 19:50 ` felix-gcc at fefe dot de 2007-01-15 19:57 ` felix-gcc at fefe dot de 2007-01-15 20:04 ` pinskia at gcc dot gnu dot org 2007-01-16 4:47 ` pinskia at gcc dot gnu dot org 2007-01-16 7:00 ` pluto at agmk dot net 2007-01-16 7:24 ` gcc at mailinator dot com 2007-01-17 13:55 ` felix-gcc at fefe dot de 2007-01-17 14:26 ` rguenth at gcc dot gnu dot org 2007-01-17 14:31 ` rguenth at gcc dot gnu dot org 2007-01-17 15:21 ` felix-gcc at fefe dot de 2007-01-17 16:32 ` rguenth at gcc dot gnu dot org 2007-01-17 16:37 ` felix-gcc at fefe dot de 2007-01-17 16:54 ` erdgeist-gcc at erdgeist dot org 2007-01-17 16:57 ` pinskia at gcc dot gnu dot org 2007-01-17 17:03 ` felix-gcc at fefe dot de 2007-01-17 17:06 ` rguenth at gcc dot gnu dot org 2007-01-17 17:12 ` pinskia at gcc dot gnu dot org 2007-01-17 17:14 ` amacleod at redhat dot com 2007-01-17 17:20 ` felix-gcc at fefe dot de 2007-01-17 17:42 ` pinskia at gcc dot gnu dot org 2007-01-17 18:23 ` felix-gcc at fefe dot de 2007-01-17 18:43 ` pinskia at gcc dot gnu dot org 2007-01-17 19:04 ` felix-gcc at fefe dot de 2007-01-17 19:18 ` pinskia at gcc dot gnu dot org [this message] 2007-01-18 15:20 ` felix-gcc at fefe dot de 2007-01-18 15:24 ` felix-gcc at fefe dot de 2007-01-18 17:36 ` pinskia at gcc dot gnu dot org 2007-01-21 8:58 ` pinskia at gcc dot gnu dot org 2007-01-21 12:23 ` andreas at andreas dot org 2007-01-21 12:49 ` andreas at andreas dot org 2007-01-21 13:53 ` felix-gcc at fefe dot de 2007-01-21 16:31 ` pinskia at gcc dot gnu dot org 2007-01-21 17:30 ` andreas at andreas dot org 2007-01-21 17:47 ` felix-gcc at fefe dot de 2007-01-21 18:16 ` pluto at agmk dot net 2007-01-21 19:46 ` rguenth at gcc dot gnu dot org 2007-01-21 20:14 ` pinskia at gcc dot gnu dot org 2007-01-21 21:52 ` tromey at gcc dot gnu dot org 2007-01-22 2:18 ` felix-gcc at fefe dot de 2007-01-22 2:27 ` pinskia at gcc dot gnu dot org 2007-01-22 13:02 ` felix-gcc at fefe dot de 2007-01-22 17:15 ` pinskia at gcc dot gnu dot org 2007-01-22 18:26 ` steven at gcc dot gnu dot org 2007-01-22 18:33 ` pinskia at gcc dot gnu dot org 2007-01-22 18:36 ` andreas at andreas dot org 2007-01-22 19:50 ` felix-gcc at fefe dot de 2007-01-22 20:16 ` ian at airs dot com 2007-01-22 22:27 ` pinskia at gcc dot gnu dot org 2007-01-22 23:10 ` andreas at andreas dot org 2007-01-23 0:46 ` kargl at gcc dot gnu dot org 2007-03-08 1:03 ` js at linuxtv dot org 2007-03-08 1:14 ` pinskia at gcc dot gnu dot org 2007-03-08 16:23 ` js at linuxtv dot org [not found] <bug-30475-4@http.gcc.gnu.org/bugzilla/> 2014-02-16 10:00 ` jackie.rosen at hushmail dot com 2021-01-05 12:26 ` daniel.marjamaki at gmail dot com 2021-01-05 12:56 ` daniel.marjamaki at gmail dot com 2021-01-05 13:30 ` jakub at gcc dot gnu.org 2021-01-05 13:37 ` jakub at gcc dot gnu.org 2021-01-06 10:37 ` daniel.marjamaki at gmail dot com
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=20070117191752.19519.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).