[PATCH] D104080: [LLD][LLVM] CG Graph profile using relocations

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 23 15:36:23 PDT 2021


MaskRay requested changes to this revision.
MaskRay added inline comments.
This revision now requires changes to proceed.


================
Comment at: lld/ELF/InputFiles.cpp:674
+      if (sec.sh_info == cgProfileSectionIndex)
+        cgProfileRela = CHECK(getObj().relas(sec), this);
       this->sections[i] = createInputSection(sec);
----------------
ayermolo wrote:
> ayermolo wrote:
> > jrtc27 wrote:
> > > ayermolo wrote:
> > > > jrtc27 wrote:
> > > > > What if it's SHT_REL? This won't fail nicely, it'll give an error about sh_entsize not matching. You should either handle SHT_REL properly (i.e. support it) or not even attempt to get an Elf_Rela for it.
> > > > Something like this?
> > > Why not error?
> > With error it will prevent binary from being linked. I thought warning would be more appropriate so that result will still be a valid binary minus this optimization. I can change to error if you and @MaskRay think that is more appropriate.
> > With error it will prevent binary from being linked. I thought warning would be more appropriate so that result will still be a valid binary minus this optimization. I can change to error if you and @MaskRay think that is more appropriate.
> 
> readCallGraphsFromObjectFiles will also need to be modified, otherwise it will fatal there due to obj->cgProfileRela.size() != obj->cgProfile.size() * 2
Why doesn't SHT_REL work?

A warning is appropriate, as it is an optional optimization anyway.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104080



More information about the llvm-commits mailing list