From: Helge Hafting <helgehaf@idb.hist.no>
To: "J . A . Magallon" <jamagallon@able.es>
Cc: linux-kernel@vger.kernel.org
Subject: Re: page_launder() bug
Date: Tue, 08 May 2001 09:52:15 +0200 [thread overview]
Message-ID: <3AF7A5AF.789AC083@idb.hist.no> (raw)
In-Reply-To: <Pine.LNX.4.33.0105070823060.24073-100000@svea.tellus> <3AF663F1.E04D90CE@idb.hist.no> <20010507210229.A7724@werewolf.able.es>
"J . A . Magallon" wrote:
>
> On 05.07 Helge Hafting wrote:
> > !0 is 1. !(anything else) is 0. It is zero and one, not
> > zero and "non-zero". So a !! construction gives zero if you have
> > zero, and one if you had anything else. There's no doubt about it.
> > >
>
> Isn't this asking for trouble with the optimizer ? It could kill both
> !!. Using that is like trusting on a certain struct padding-alignment.
No, this won't cause trouble with the optimizer, because the
optimizer isn't supposed to do _wrong_ things.
The optimizer will not remove two !! in a row, simply because that
_isn't_ a valid optimization as you just have seen.
"!" is a logical not, it isn't a bitwise not. The result of
!!(something)
is different from just (something) whenever (something) is
neither 0 or 1, the optimizer knows that very well.
Use gcc -S to get readable assembly.
Try these yourself, they compile to different code:
int main(int argc){return argc;}
int main(int argc){return !!argc;}
They have to be different, as argc >= 2 gives different results.
And try:
int main(int argc){return !argc;}
int main(int argc){return !!!argc;}
These gives the same code with or without optimization with
gcc 2.95.4 on i386, as they are equivalent. The first ! normalize
to 1 or 0, the two others are then removeable.
Helge Hafting
next prev parent reply other threads:[~2001-05-08 7:52 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-06 21:08 page_launder() bug BERECZ Szabolcs
2001-05-06 21:59 ` Jonathan Morton
2001-05-06 22:07 ` BERECZ Szabolcs
2001-05-07 4:55 ` David S. Miller
2001-05-07 5:19 ` Aaron Lehmann
2001-05-07 6:26 ` Tobias Ringstrom
2001-05-07 8:54 ` David S. Miller
2001-05-07 15:12 ` Tobias Ringstrom
2001-05-07 8:59 ` Helge Hafting
2001-05-07 19:02 ` J . A . Magallon
2001-05-08 7:52 ` Helge Hafting [this message]
2001-05-10 12:19 ` Ingo Oeser
2001-05-10 10:51 ` Anuradha Ratnaweera
2001-05-07 10:52 ` Alan Cox
2001-05-07 13:49 ` Daniel Phillips
2001-05-07 13:53 ` H. Peter Anvin
2001-05-07 14:52 ` Horst von Brand
2001-05-08 17:59 ` Kai Henningsen
2001-05-09 2:32 ` Rusty Russell
2001-05-09 8:43 ` Martin Dalecki
2001-05-09 3:36 ` Jonathan Morton
2001-05-07 17:59 ` Linus Torvalds
2001-05-07 21:22 ` Marcelo Tosatti
2001-05-07 23:23 ` Linus Torvalds
2001-05-07 21:50 ` Marcelo Tosatti
2001-05-07 23:52 ` Linus Torvalds
2001-05-07 22:26 ` Marcelo Tosatti
2001-05-08 0:16 ` David S. Miller
2001-05-08 2:34 ` Linus Torvalds
2001-05-08 1:40 ` Marcelo Tosatti
2001-05-08 3:22 ` David S. Miller
2001-05-08 3:26 ` Linus Torvalds
2001-05-08 3:46 ` Linus Torvalds
2001-05-08 2:37 ` Marcelo Tosatti
2001-05-08 6:50 ` David S. Miller
2001-05-08 7:40 ` Linus Torvalds
2001-05-08 8:29 ` David S. Miller
2001-05-08 18:53 ` Marcelo Tosatti
2001-05-08 21:16 ` Marcelo Tosatti
2001-05-08 23:38 ` Linus Torvalds
2001-05-08 23:53 ` Marcelo Tosatti
2001-05-09 2:13 ` David S. Miller
2001-05-09 17:38 ` Marcelo Tosatti
2001-05-09 20:05 ` David S. Miller
2001-05-09 18:40 ` Marcelo Tosatti
2001-05-09 21:08 ` David S. Miller
2001-05-09 19:50 ` Marcelo Tosatti
2001-05-13 16:34 ` Rik van Riel
2001-05-13 17:52 ` David S. Miller
2001-05-13 17:55 ` Rik van Riel
2001-05-13 18:00 ` David S. Miller
2001-05-13 19:34 ` Linus Torvalds
2001-05-13 19:39 ` Rik van Riel
2001-05-13 20:42 ` Linus Torvalds
2001-05-14 7:05 ` Kai Henningsen
2001-05-08 2:47 ` David S. Miller
2001-05-08 1:34 ` Marcelo Tosatti
2001-05-08 3:18 ` David S. Miller
2001-05-08 1:47 ` Marcelo Tosatti
2001-05-08 3:29 ` David S. Miller
2001-05-08 10:36 ` BERECZ Szabolcs
2001-05-08 3:24 ` Linus Torvalds
2001-05-08 12:33 ` Mikulas Patocka
2001-05-13 16:24 ` Rik van Riel
2001-05-13 21:02 ` Another VM race? (was: page_launder() bug) Mikulas Patocka
2001-05-13 23:04 ` Rik van Riel
2001-05-14 9:53 ` Mikulas Patocka
2001-05-08 2:29 ` page_launder() bug Linus Torvalds
2001-05-13 16:08 ` Rik van Riel
2001-05-13 19:29 ` Linus Torvalds
2001-05-14 22:05 ` Marcelo Tosatti
2001-05-08 0:06 ` David S. Miller
2001-05-07 23:31 ` David S. Miller
2001-05-07 22:44 ` David S. Miller
2001-05-08 1:00 ` Horst von Brand
-- strict thread matches above, loose matches on Subject: below --
2001-05-07 0:32 Jonathan Lundell
[not found] <davem@redhat.com>
2001-11-21 7:16 ` [VM/MEMORY-SICKNESS] 2.4.15-pre7 kmem_cache_create invalid opcode Jeff V. Merkey
2001-11-21 6:22 ` David S. Miller
2001-11-21 7:33 ` Jeff V. Merkey
2001-11-21 6:47 ` Kai Henningsen
2001-11-21 18:28 ` Jeff Merkey
2001-11-21 6:47 ` David S. Miller
2001-11-21 6:54 ` Jeff Merkey
2001-11-21 6:56 ` David S. Miller
2001-11-21 7:03 ` Jeff Merkey
2001-11-21 7:09 ` David S. Miller
2001-11-21 7:14 ` Jeff Merkey
2001-11-21 7:28 ` Stuart Young
2001-11-21 7:49 ` arjan
2001-11-21 18:31 ` Jeff Merkey
2001-11-21 19:06 ` Doug Ledford
2001-11-21 19:51 ` Jeff Merkey
2001-11-21 19:58 ` J Sloan
2001-11-21 20:38 ` Doug Ledford
2001-11-21 21:17 ` Jeff Merkey
2001-11-21 19:16 ` Arjan van de Ven
2001-11-21 19:53 ` Jeff Merkey
2001-11-21 20:36 ` Doug Ledford
2001-11-21 21:16 ` Jeff Merkey
2001-11-21 21:28 ` Robert Love
2001-11-21 6:54 ` Chris Abbey
2001-11-21 7:05 ` Jeff Merkey
2001-11-21 8:49 ` Alan Cox
2001-11-21 18:28 ` Jeff Merkey
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=3AF7A5AF.789AC083@idb.hist.no \
--to=helgehaf@idb.hist.no \
--cc=jamagallon@able.es \
--cc=linux-kernel@vger.kernel.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: link
Be 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