[PATCH] D153215: [Object] Add ELF section type SHT_LLVM_LTO for fat LTO

Paul Kirth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 21 10:10:00 PDT 2023


paulkirth added inline comments.


================
Comment at: llvm/include/llvm/BinaryFormat/ELF.h:1039
   SHT_LLVM_OFFLOADING = 0x6fff4c0b,         // LLVM device offloading data.
+  SHT_LLVM_LTO = 0x6fff4c0c,                // .llvm.lto for fat LTO.
   // Android's experimental support for SHT_RELR sections.
----------------
jhenderson wrote:
> paulkirth wrote:
> > jhenderson wrote:
> > > Perhaps `SHT_LLVM_FAT_LTO` so that it is a little more self-descriptive? (Equivalent comment applies to the section name and similar bits of data)
> > While this is for FatLTO now, I don't see why the section flag needs that distinction, since its a bit more generic (i.e., it's bitcode for LTO whether you use it for FatLTO or not). I don't have super strong feelings here, but I don't see much value in labeling it differently.
> Fair point. In which case, `SHT_LLVM_BITCODE` seems more self-descriptive (describing what it is rather than one potential use for it)? I imagine you could do things other than LTO with it in the future too after all :)
> 
> I'm not necessarily opposed to `SHT_LLVM_LTO`, but as this name is going to live a very long time, it's important we get it right!
> Fair point. In which case, `SHT_LLVM_BITCODE` seems more self-descriptive (describing what it is rather than one potential use for it)?

Those are all good points, but I think we want to describe that it's bitcode that is LTO ready. Using `.llvmbc` code is problematic for LTO use, so I could easily imagine that if this is `SHT_LLVM_BITCODE` that would lead to confusion or to the `.lvmbc` section being marked that way...

>I imagine you could do things other than LTO with it in the future too after all :)
> 
 Yeah, it sounds like a mismatch to imagine using the section for analysis if you're not doing LTO.

> I'm not necessarily opposed to `SHT_LLVM_LTO`, but as this name is going to live a very long time, it's important we get it right!

Naming is hard :(

Regardless of what we arrive at, lets be sure we document what its intended uses are, and why we chose that. As long as we do that, I think it will be fine, so I'm not going to oppose alternate names.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153215/new/

https://reviews.llvm.org/D153215



More information about the llvm-commits mailing list