[PATCH] D68065: Propeller: LLD Support for Basic Block Sections
Sriraman Tallam via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 2 15:44:20 PDT 2020
tmsriram marked an inline comment as done.
tmsriram added inline comments.
================
Comment at: lld/ELF/Arch/X86_64.cpp:159
+ if (is.relocations[i].offset == offset && is.relocations[i].expr != R_NONE)
+ break;
+ }
----------------
MaskRay wrote:
> tmsriram wrote:
> > MaskRay wrote:
> > > MaskRay wrote:
> > > > tmsriram wrote:
> > > > > MaskRay wrote:
> > > > > > In an old comment, I suggested
> > > > > >
> > > > > > > See Relocations.cpp:scanRelocs. A better way is to sort relocations beforehand.
> > > > > >
> > > > > > It is not addressed.
> > > > > Could you please reconsider this? I understand what you mean here.
> > > > > This code is going to change when new psABI relocations are added. Could we re-open this then?
> > > > What is the average size of `is.relocations.size()`? It it is small in practice, the comment should mention it.
> > > ```
> > > for (unsigned i = is.relocations.size(); i != 0; ) {
> > > --i;
> > > if (is.relocations[i].offset == offset && is.relocations[i].expr != R_NONE)
> > > return i;
> > > }
> > > ```
> > This won't work because this function should return the max. size when not found. If I change that assumption, I must also change how this is consumed by its callers. Is there a reason why you want to search in the reverse direction? I mean I will change it if you could tell me why.
> ```
> for (unsigned i = is.relocations.size(); i != 0; ) {
> --i;
> if (is.relocations[i].offset == offset && is.relocations[i].expr != R_NONE)
> return i;
> }
> return is.relocations.size();
> ```
>
> An input section may have several relocations. Scanning backward can be more efficient.
We discussed this f2f and even about sorting it and you expressed that you were alright leaving it as is, maybe you forgot.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68065/new/
https://reviews.llvm.org/D68065
More information about the llvm-commits
mailing list