[PATCH] D24426: DebugInfo: Pass non-zero alignment to DIBuilder only if aligment was forced
Victor Leschuk via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 13 12:57:25 PDT 2016
I think it's better to pass amount in bytes here, as specified by user
(alignas takes bytes, not bits).
On 09/13/2016 09:00 PM, Robinson, Paul wrote:
>
> I hadn't thought Clang wanted to be *quite* so knowledgeable about
> targets, and similarly not so tightly tied to byte-addressable
> targets. But if both of those things are actually okay, then it's
> fine to set the alignment value here to what would be passed through
> to DWARF.
>
> --paulr
>
> *From:*David Blaikie [mailto:dblaikie at gmail.com]
> *Sent:* Monday, September 12, 2016 6:11 PM
> *To:* Robinson, Paul;
> reviews+D24426+public+6ee6274d38fdf0d6 at reviews.llvm.org;
> vleschuk at accesssoftek.com; echristo at gmail.com; aprantl at apple.com;
> mehdi.amini at apple.com
> *Cc:* cfe-commits (cfe-commits at lists.llvm.org)
> *Subject:* Re: [PATCH] D24426: DebugInfo: Pass non-zero alignment to
> DIBuilder only if aligment was forced
>
> On Mon, Sep 12, 2016 at 6:01 PM Robinson, Paul <paul.robinson at sony.com
> <mailto:paul.robinson at sony.com>> wrote:
>
> The text in the committee draft is different (e.g., the
> exhortation about non-default alignment is gone), with an example
> to the effect that a value of 8 means the entity's address is a
> multiple of 8 (not 2^8). So, alignment is conceived in terms of
> address bits, whatever those represent (not always bytes).
>
> Not sure I quite follow. OK, so in an octet addressable world (which
> LLVM is - there have been some attempts to support non-octet
> addressing, but I don't think any have been near to successful) then
> DW_AT_alignment is byte alignment (1 means there are no zero bits in
> the address, 2 means there's 1 trailing zero bit in the address, etc).
>
> If Clang is being infested with more target knowledge, okay, but
> that means tolerating the weirder targets in these cases.
> Dividing by CHAR_BITS makes an assumption that isn't necessarily
> correct.
>
> Clang has the knowledge already - it knows the alignment of the types
> its allocating, etc. So I'm not sure what infestation you're referring to.
>
> I've sort of lost track of what we're discussing here.
>
> Essentially what I'm suggesting is that Clang should put whatever
> number is going to go in the DWARF, into the metadata. I don't believe
> the LLVM backends have greater knowledge than the frontend does in
> this domain - have I missed something there, are there examples where
> that could/would be true?
>
> - David
>
> --paulr
>
> P.S. The committee is hoping to get a draft out for public comment
> Real Soon Now.
>
> Looking forward to it :)
>
> *From:*cfe-commits [mailto:cfe-commits-bounces at lists.llvm.org
> <mailto:cfe-commits-bounces at lists.llvm.org>] *On Behalf Of *David
> Blaikie via cfe-commits
> *Sent:* Monday, September 12, 2016 5:12 PM
> *To:* reviews+D24426+public+6ee6274d38fdf0d6 at reviews.llvm.org
> <mailto:reviews%2BD24426%2Bpublic%2B6ee6274d38fdf0d6 at reviews.llvm.org>;
> vleschuk at accesssoftek.com <mailto:vleschuk at accesssoftek.com>;
> echristo at gmail.com <mailto:echristo at gmail.com>; aprantl at apple.com
> <mailto:aprantl at apple.com>; mehdi.amini at apple.com
> <mailto:mehdi.amini at apple.com>
> *Cc:* cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
> *Subject:* Re: [PATCH] D24426: DebugInfo: Pass non-zero alignment
> to DIBuilder only if aligment was forced
>
> On Mon, Sep 12, 2016 at 5:00 PM Paul Robinson
> <paul.robinson at sony.com <mailto:paul.robinson at sony.com>> wrote:
>
> probinson added a subscriber: probinson.
>
> ================
> Comment at: lib/CodeGen/CGDebugInfo.cpp:3691
> @@ -3635,1 +3690,3 @@
> + if (D->hasAttr<AlignedAttr>())
> + AlignInBits = D->getMaxAlignment();
> StringRef DeclName, LinkageName;
> ----------------
> dblaikie wrote:
> > is max alignment the right thing here? Should it be min
> alignment?
> > (is alignment in bits the desired thing across all of this
> too? It looked like in the backend patch there was some
> division by CHAR_BITS, etc?)
> I should think bits is the right choice here; seems more the
> province of the backend to convert it into the appropriate
> addressable units (commonly but not universally chars).
>
>
> The alternative thinking is that we've a generally sense we want
> to make more of this type information opaque to LLVM - so I'm
> somewhat inclined to make the frontend do the work of choosing
> what to emit and the backend just being as simple as possible.
>
> Hmm, seems like the DWARF spec details I can find:
> http://www.dwarfstd.org/ShowIssue.php?issue=140528.1 don't really
> specify what the value of DW_AT_alignment is, it's sort of
> assumed, by the looks of it? I'm assuming it's bytes, the same as
> the byte_size attribute.
>
>
>
>
> https://reviews.llvm.org/D24426
>
--
Best Regards,
Victor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160913/cc2132f4/attachment-0001.html>
More information about the cfe-commits
mailing list