9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Charles Forsyth <charles.forsyth@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)
Date: Sat,  5 May 2012 18:48:37 +0100	[thread overview]
Message-ID: <CAOw7k5gFmRQvoR8Z5e+x99ZmV=yq9E3uuHiaXYeAfg8h2Dgchw@mail.gmail.com> (raw)
In-Reply-To: <1411330.QJAbfBr5F9@blitz>

[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]

many existing C programs (and not just on Plan 9) think long is 32 bits, or
don't care.
those that do care don't work. for those that don't care, it doesn't matter.
it's quite difficult to decide automatically (eg, in a compiler) into which
category a program falls.
a compiler can't easily detect that a program expected 32 bits only and
will malfunction with 64.
libflate was full of that, but it wasn't the only one. of course, in time,
those can be changed to using
u32int (or u64int) to make intentions clear.

by contrast, if long remains 32 bits (thus satisfying most existing
programs for integer operations),
but pointers are 64 bits, it's easy for a compiler to spot conversion of a
pointer to an integer type that
is too small, and the plan 9 compilers will do that. there are very few
such cases in the plan 9 code, and
thanks to the compiler diagnostic, we know exactly where they are and
whether they matter, and have
converted them to use uintptr.

if it's performance you're worried about, for programs that don't care
about width, i'd expect 32 bits at least
to match performance with 64 bits (if there's a measurable difference). for
one thing, cache lines will contain
more values, and several will be fetched at once when cache lines are
filled.

[-- Attachment #2: Type: text/html, Size: 1495 bytes --]

  parent reply	other threads:[~2012-05-05 17:48 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAL3m8eAf2Yjpg77wtykTSPnyKHxKHYc5YWfWH2L8CNjc86P1kA@mail.gmail.c>
2012-04-25 14:28 ` [9fans] AMD64 system erik quanstrom
2012-04-25 18:04   ` Strake
2012-04-25 18:27     ` Lyndon Nerenberg
2012-04-25 18:49       ` Matthew Veety
2012-04-25 19:09         ` Strake
2012-04-25 19:15           ` John Floren
2012-04-25 19:57             ` Strake
2012-04-25 20:04               ` John Floren
2012-04-25 20:30                 ` Strake
2012-04-25 20:43                   ` John Floren
2012-04-26  1:11                     ` Strake
2012-04-26  1:21                       ` andrey mirtchovski
2012-04-26  1:24                         ` andy zerger
2012-04-26  1:49                       ` John Floren
2012-04-26  3:41                         ` Strake
2012-04-25 19:19           ` Lyndon Nerenberg
2012-04-25 20:01             ` Strake
2012-04-25 20:05               ` Gorka Guardiola
2012-04-25 20:08               ` Lyndon Nerenberg
     [not found]         ` <CAL3m8eCJughpHZ6htHyLyq9vORA+z5ajpWMbWjnCTVZ+YZRv9g@mail.gmail.c>
2012-04-25 19:36           ` erik quanstrom
     [not found]       ` <CA+4OWrwGgkYfuj2t4dkWsZHFex4oFTveDq_9A+yr=TsNpG0C8g@mail.gmail.c>
2012-04-25 18:56         ` erik quanstrom
2012-04-25 19:16           ` Strake
     [not found]           ` <CAL3m8eDJEo6o+srxuYpKSGDmM+0KgQhC15u7Qxg4TvnpO57Zgw@mail.gmail.c>
2012-04-25 19:32             ` erik quanstrom
2012-04-25 20:13               ` Strake
2012-04-25 20:20                 ` Lyndon Nerenberg
2012-04-26  3:38                 ` Russ Cox
2012-04-26  4:04                   ` Devon H. O'Dell
2012-04-26  4:13                     ` andrey mirtchovski
2012-04-26  4:36                   ` Strake
2012-05-05 15:02                   ` Ethan Grammatikidis
2012-05-05 15:33               ` [9fans] integer width on AMD64 (was: Re: AMD64 system) dexen deVries
2012-05-05 16:41                 ` David du Colombier
2012-05-05 17:42                 ` erik quanstrom
2012-05-05 17:48                 ` Charles Forsyth [this message]
2012-05-05 17:52                   ` dexen deVries
2012-05-05 21:06                   ` Comeau At9Fans
2012-05-06  2:58                     ` [9fans] integer width on AMD64 Joel C. Salomon
2012-05-06  3:13                       ` Bruce Ellis
2012-05-06  8:46                       ` Comeau At9Fans
     [not found]                       ` <CAE9W7-gmaSYzx+4TK0LKtiHaZYC-4xz_DTbC_wqhsGo_7zXc0Q@mail.gmail.c>
2012-05-06 13:10                         ` erik quanstrom
2012-05-06 13:57                           ` Comeau At9Fans
2012-05-06  9:20                   ` [9fans] integer width on AMD64 (was: Re: AMD64 system) steve
2012-05-06 11:43                     ` Comeau At9Fans
2012-05-07  8:53                       ` steve
2012-05-07 10:01                         ` dexen deVries
2012-05-07 10:16                           ` Charles Forsyth
2012-05-07 10:27                           ` Charles Forsyth
2012-05-07 10:36                             ` dexen deVries
2012-05-08 19:04                               ` Comeau At9Fans
     [not found]                           ` <CAOw7k5h9QVUCrKr4jYU++sSWE6DHqbA_oFRwajyKbj7A0AjBWg@mail.gmail.c>
2012-05-07 12:11                             ` erik quanstrom
2012-05-07 12:32                           ` erik quanstrom
2012-05-07 12:44                         ` erik quanstrom
2012-05-08 19:14                           ` Comeau At9Fans
2012-05-05 21:00                 ` Comeau At9Fans
     [not found]   ` <CAL3m8eDMXC2STjFjBUurmdY5DynCOrpqwE-ViRuSubfF6HjBOw@mail.gmail.c>
2012-04-25 18:11     ` [9fans] AMD64 system erik quanstrom

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='CAOw7k5gFmRQvoR8Z5e+x99ZmV=yq9E3uuHiaXYeAfg8h2Dgchw@mail.gmail.com' \
    --to=charles.forsyth@gmail.com \
    --cc=9fans@9fans.net \
    /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;
as well as URLs for NNTP newsgroup(s).