David Greene via llvm-dev
2019-May-03 19:58 UTC
[llvm-dev] RFC: On removing magic numbers assuming 8-bit bytes
Jeroen Dobbelaere via llvm-dev <llvm-dev at lists.llvm.org> writes:> Hi Jesper, > >> Thanks, these are interesting differences. The CHAR_BIT and byte >> relation is established in the C standard and I would prefer the byte >> terminology. It means the same thing as addressable unit but is a bit >> shorter and probably more widely known. > > Looking purely from a c/c++ language viewpoint, this makes sense. We > settled on using 'addressable unit size', but any abstraction will > already be helpful.Given that f18 has just been accepted as an LLVM project, we probably shouldn't be using C/C++ or any specific language terminology in LLVM. It seems useful to distinguish "addressable unit size" from "data size" and talk about things using such abstract terminology. -David
Finkel, Hal J. via llvm-dev
2019-May-03 20:17 UTC
[llvm-dev] RFC: On removing magic numbers assuming 8-bit bytes
On 5/3/19 2:58 PM, llvm-dev wrote:
Jeroen Dobbelaere via llvm-dev <llvm-dev at lists.llvm.org> writes:
Hi Jesper,
Thanks, these are interesting differences. The CHAR_BIT and byte
relation is established in the C standard and I would prefer the byte
terminology. It means the same thing as addressable unit but is a bit
shorter and probably more widely known.
Looking purely from a c/c++ language viewpoint, this makes sense. We
settled on using 'addressable unit size', but any abstraction will
already be helpful.
Given that f18 has just been accepted as an LLVM project, we probably
shouldn't be using C/C++ or any specific language terminology in LLVM.
Regardless of f18, we shouldn't anyway, unless it's terminology we
independently define in our language reference. LLVM has supported many
different language frontends for a long time :-)
-Hal
It seems useful to distinguish "addressable unit size" from "data
size"
and talk about things using such abstract terminology.
-David
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190503/ae6989ea/attachment.html>
Jesper Antonsson via llvm-dev
2019-May-06 08:25 UTC
[llvm-dev] RFC: On removing magic numbers assuming 8-bit bytes
I agree, addressable unit size is probably a better abstraction.
However, in the lib/CodeGen directory alone, there's some 785 uses of
the word "byte" and a significant fraction of the code that we want to
modify is using the byte terminology today. An example of unmodified
code from my showcase patch set:
assert(!(Shift & 0x7) == 0 &&
"Shifts not aligned on Bytes are not supported.");
uint64_t Offset = Shift / 8;
unsigned TySizeInBytes = Origin->getValueSizeInBits(0) / 8;
assert(!(Origin->getValueSizeInBits(0) & 0x7) == 0 &&
"The size of the original loaded type is not a
"multiple of a byte.");
How would you prefer we handle this? If we only remove the magic
numbers using getAddressableUnitSize() instead of getBitsPerByte() we'd
get some mixed terminology. If the community is ok with that, we're
happy to do this. If we would go for changing the terminology overall,
then the work and the patch sizes would grow considerably.
BR,
Jesper
On Fri, 2019-05-03 at 20:17 +0000, Finkel, Hal J. via llvm-dev
wrote:> On 5/3/19 2:58 PM, llvm-dev wrote:
> > Jeroen Dobbelaere via llvm-dev <llvm-dev at lists.llvm.org>
writes:
> >
> > > Hi Jesper,
> > >
> > > > Thanks, these are interesting differences. The CHAR_BIT and
> > > > byte
> > > > relation is established in the C standard and I would prefer
> > > > the byte
> > > > terminology. It means the same thing as addressable unit but
is
> > > > a bit
> > > > shorter and probably more widely known.
> > >
> > > Looking purely from a c/c++ language viewpoint, this makes
> > > sense. We
> > > settled on using 'addressable unit size', but any
abstraction
> > > will
> > > already be helpful.
> >
> > Given that f18 has just been accepted as an LLVM project, we
> > probably
> > shouldn't be using C/C++ or any specific language terminology in
> > LLVM.
>
> Regardless of f18, we shouldn't anyway, unless it's terminology we
> independently define in our language reference. LLVM has supported
> many different language frontends for a long time :-)
> -Hal
>
> > It seems useful to distinguish "addressable unit size" from
"data
> > size"
> > and talk about things using such abstract terminology.
> >
> > -David
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev