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).
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. --paulr P.S. The committee is hoping to get a draft out for public comment Real Soon Now. From: cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] On Behalf Of David Blaikie via cfe-commits Sent: Monday, September 12, 2016 5:12 PM To: reviews+d24426+public+6ee6274d38fdf...@reviews.llvm.org; vlesc...@accesssoftek.com; echri...@gmail.com; apra...@apple.com; mehdi.am...@apple.com Cc: cfe-commits@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.robin...@sony.com<mailto:paul.robin...@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
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits