[LLVMdev] LLD: representation of a power of two value

Rui Ueyama ruiu at google.com
Tue Mar 24 17:51:44 PDT 2015


On Tue, Mar 24, 2015 at 5:40 PM, Nick Kledzik <kledzik at apple.com> wrote:

>
> On Mar 24, 2015, at 5:09 PM, Rui Ueyama <ruiu at google.com> wrote:
>
> > It's not a big deal, but it always annoyed me a bit when I hit it, so
> I'll bring it up here.
> >
> > LLD represents an alignment X as log2(X) in some places and just X in
> other places. It's a bit confusing. Because I always think alignments in my
> mind in terms of 1, 2, 4, 8, ..., instead of 2^1, 2^2, 2^3, ..., I'd like
> to propose to always use real values.
> Can you give some examples?
>
> The DefinedAtom class has struct:
>
>     struct Alignment {
>         uint16_t powerOf2;
>         uint16_t modulus;
>     };
>
> That use seems clear.   But, yes, if there is “int alignment” somewhere,
> that is ambiguous.
>

At least in ELF, alignment values are represented not by exponents but by
just numbers in files, so we convert them back and force. "Alignment" is
used for both exponents and actual values there.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150324/4ad185ae/attachment.html>


More information about the llvm-dev mailing list