ikudrin (Igor Kudrin)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 6 2015, 10:51 PM (123 w, 6 d)

Recent Activity

Sun, Jan 14

ikudrin added a comment to D41993: [ELF] - Change shift2 constant of GNU_HASH from 6->11..
In D41993#975015, @ruiu wrote:

I also wonder how these initial values (6 and 5) were decided.

Sun, Jan 14, 6:28 PM

Tue, Jan 9

ikudrin committed rLLD322066: [ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"….
[ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"…
Tue, Jan 9, 1:46 AM
ikudrin committed rL322066: [ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"….
[ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"…
Tue, Jan 9, 1:45 AM

Dec 20 2017

ikudrin committed rLLD321154: [ELF] Fix an assignment command at the end of an .ARM.exidx section..
[ELF] Fix an assignment command at the end of an .ARM.exidx section.
Dec 20 2017, 12:57 AM
ikudrin committed rL321154: [ELF] Fix an assignment command at the end of an .ARM.exidx section..
[ELF] Fix an assignment command at the end of an .ARM.exidx section.
Dec 20 2017, 12:57 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Dec 20 2017, 12:56 AM · lld

Dec 18 2017

ikudrin updated the diff for D41234: [ELF] Fix placement of a sentinel entry in the .ARM.exidx section..

Thanks for the review, @rafael!

Dec 18 2017, 9:21 PM · lld
ikudrin updated the diff for D41234: [ELF] Fix placement of a sentinel entry in the .ARM.exidx section..

Thanks for the comments!

Dec 18 2017, 2:25 AM · lld

Dec 15 2017

ikudrin updated the diff for D41234: [ELF] Fix placement of a sentinel entry in the .ARM.exidx section..
  • Add a sentinel entry earlier so that it can be arranged in a regular way.
Dec 15 2017, 4:55 AM · lld

Dec 14 2017

ikudrin created D41234: [ELF] Fix placement of a sentinel entry in the .ARM.exidx section..
Dec 14 2017, 5:45 AM · lld

Dec 13 2017

ikudrin committed rL320671: Fix a build bot failure..
Fix a build bot failure.
Dec 13 2017, 11:29 PM
ikudrin committed rLLD320671: Fix a build bot failure..
Fix a build bot failure.
Dec 13 2017, 11:28 PM
ikudrin committed rL320668: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..
[ELF] Prevent crash in writing an .ARM.exidx sentinel entry.
Dec 13 2017, 10:24 PM
ikudrin committed rLLD320668: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..
[ELF] Prevent crash in writing an .ARM.exidx sentinel entry.
Dec 13 2017, 10:24 PM
This revision was not accepted when it landed; it landed in state Needs Review.
Dec 13 2017, 10:24 PM · lld
ikudrin updated the diff for D41105: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..
  • Limited the patch to fix only the crash in ARMExidxSentinelSection::writeTo().
Dec 13 2017, 2:53 AM · lld

Dec 12 2017

ikudrin planned changes to D41105: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..

Thanks for the example, Peter! It looks like I have to think on these corner cases a bit more.

Dec 12 2017, 3:15 AM · lld

Dec 11 2017

ikudrin updated the diff for D41105: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..
  • Added a comment.
Dec 11 2017, 10:19 PM · lld
ikudrin created D41105: [ELF] Prevent crash in writing an .ARM.exidx sentinel entry..
Dec 11 2017, 9:49 PM · lld

Dec 6 2017

ikudrin committed rL320006: [ELF] Handle multiple "--version-script" options..
[ELF] Handle multiple "--version-script" options.
Dec 6 2017, 7:26 PM
ikudrin committed rLLD320006: [ELF] Handle multiple "--version-script" options..
[ELF] Handle multiple "--version-script" options.
Dec 6 2017, 7:26 PM
ikudrin closed D40878: Handle multiple "--version-script" options. by committing rLLD320006: [ELF] Handle multiple "--version-script" options..
Dec 6 2017, 7:26 PM · lld

Dec 5 2017

ikudrin created D40878: Handle multiple "--version-script" options..
Dec 5 2017, 11:11 PM · lld

Nov 28 2017

ikudrin committed rL319154: Revert r319008, "[ELF] Do not keep symbols if they referenced only from….
Revert r319008, "[ELF] Do not keep symbols if they referenced only from…
Nov 28 2017, 12:40 AM

Nov 26 2017

ikudrin committed rL319008: [ELF] Do not keep symbols if they referenced only from discarded sections..
[ELF] Do not keep symbols if they referenced only from discarded sections.
Nov 26 2017, 9:51 PM
ikudrin closed D38790: [ELF] Do not keep symbols if they referenced only from discarded sections. by committing rL319008: [ELF] Do not keep symbols if they referenced only from discarded sections..
Nov 26 2017, 9:51 PM · lld

Nov 24 2017

ikudrin updated the diff for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
  • Rebased on the tip.
  • This is mostly Rafael's version of the patch.
  • Added a check for a weak symbol when setting IsNeeded.
  • Added the test to check that a weak symbol doesn't cause adding DT_NEEDED; this test might be extracted to a separate patch.
Nov 24 2017, 2:38 AM · lld

Nov 23 2017

ikudrin committed rL318939: [ELF] Make tests with undefined symbols more explicit..
[ELF] Make tests with undefined symbols more explicit.
Nov 23 2017, 10:43 PM
ikudrin closed D40253: [ELF] Make tests with undefined symbols more explicit. by committing rL318939: [ELF] Make tests with undefined symbols more explicit..
Nov 23 2017, 10:43 PM · lld

Nov 21 2017

ikudrin removed a dependency for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections.: D40240: Garbage-collected symbols shouldn't make DSOs alive..
Nov 21 2017, 12:36 AM · lld
ikudrin removed a dependent revision for D40240: Garbage-collected symbols shouldn't make DSOs alive.: D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Nov 21 2017, 12:36 AM
ikudrin updated the diff for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
  • Do not depend on D40240.
  • Mark test/ELF/gc-sections-shared.s to be in an intermediate state.
Nov 21 2017, 12:36 AM · lld

Nov 20 2017

ikudrin added a dependent revision for D40253: [ELF] Make tests with undefined symbols more explicit.: D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Nov 20 2017, 8:11 AM · lld
ikudrin added a dependent revision for D40240: Garbage-collected symbols shouldn't make DSOs alive.: D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Nov 20 2017, 8:11 AM
ikudrin added dependencies for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections.: D40253: [ELF] Make tests with undefined symbols more explicit., D40240: Garbage-collected symbols shouldn't make DSOs alive..
Nov 20 2017, 8:11 AM · lld
ikudrin added a comment to D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
In D38790#930021, @ruiu wrote:

I feel like this patch is a bit too complicated, but I can't really point out why I felt like that. This patch actually does two different things, no? Do you mind if I ask you to split it? I think one patch can be something like this https://reviews.llvm.org/D40240, and you can create another patch not to add dead symbols to the symbol table later.

Nov 20 2017, 8:07 AM · lld
ikudrin updated the diff for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
  • Extract corrections in the existing tests into D40253.
  • Use handling of DT_NEEDED from D40240.
  • Don't try to maintain actual Live flag for all symbols. Just mark symbols used in relocations in live sections and make the final decision later in includeInSymtab.
Nov 20 2017, 7:59 AM · lld
ikudrin created D40253: [ELF] Make tests with undefined symbols more explicit..
Nov 20 2017, 7:39 AM · lld
ikudrin added inline comments to D40240: Garbage-collected symbols shouldn't make DSOs alive..
Nov 20 2017, 7:09 AM

Nov 16 2017

ikudrin added inline comments to D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Nov 16 2017, 3:41 AM · lld

Nov 9 2017

ikudrin abandoned D25608: [libclang] Make tests for python bindings pass on Windows..
Nov 9 2017, 8:27 PM
ikudrin abandoned D34612: [ELF] Do not add a .tbss section into a PT_LOAD segment in case of using a linker script..
Nov 9 2017, 8:27 PM · lld
ikudrin updated the diff for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
  • Rebase on the top.
  • Add flag 'Live' to Symbol.
  • Determine most of the alive symbols during GC phase.
Nov 9 2017, 3:17 AM · lld

Oct 27 2017

ikudrin added inline comments to D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Oct 27 2017, 6:05 AM · lld

Oct 26 2017

ikudrin added a comment to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

I believe that the complexity in both cases is similar. Here we have two kinds of edges with distinct traversal functions. There we have to convert these edges in advance so that we can use only one traversal function. And distinct traversal function is not that different from the conversion function. But conversion always requires additional space and time to store edges, while the traversal function might be called several times. But my opinion might be biased.

Oct 26 2017, 5:02 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
  • Address review comments;
  • Rebase on the tip.
Oct 26 2017, 4:34 AM · lld

Oct 25 2017

ikudrin added a comment to D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..

The symbol is not in a dead section but referenced from it. Right now I don't know any existing way to say if a symbol is referenced only from dead sections or not.

Oct 25 2017, 9:22 PM · lld
ikudrin added a comment to D39278: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows..

Thanks! If you don't mind, I'll leave the mentioned improvements to ones who understand python and lit better than me.

Oct 25 2017, 7:38 PM · lld
ikudrin committed rL316635: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows..
[lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows.
Oct 25 2017, 7:32 PM
ikudrin closed D39278: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows. by committing rL316635: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows..
Oct 25 2017, 7:31 PM · lld
ikudrin added inline comments to D39278: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows..
Oct 25 2017, 4:33 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Ping. Is there anything I can do to improve this patch? I suppose I am hardly able to make D38391 quicker than this one.

Oct 25 2017, 1:43 AM · lld
ikudrin updated the diff for D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
  • Rebased on the tip.
  • Slightly improved tests.
Oct 25 2017, 1:12 AM · lld

Oct 24 2017

ikudrin created D39278: [lit] Respect LLVM_LIT_TOOLS_DIR when looking for 'tar' on Windows..
Oct 24 2017, 11:44 PM · lld

Oct 11 2017

ikudrin created D38790: [ELF] Do not keep symbols if they referenced only from discarded sections..
Oct 11 2017, 2:26 AM · lld

Oct 3 2017

ikudrin closed D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Oct 3 2017, 5:30 AM · lld
ikudrin added 1 commit(s) for D37332: [lld] Avoid promoting an undefined weak entry symbol to global.: rL314790: [ELF] Avoid promoting an undefined weak entry symbol to global..
Oct 3 2017, 5:29 AM · lld
ikudrin added an edge to rL314790: [ELF] Avoid promoting an undefined weak entry symbol to global.: D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Oct 3 2017, 5:29 AM
ikudrin committed rL314790: [ELF] Avoid promoting an undefined weak entry symbol to global..
[ELF] Avoid promoting an undefined weak entry symbol to global.
Oct 3 2017, 5:25 AM
ikudrin committed rL314789: [ELF] Keep symbols specified by '-u' over LTO..
[ELF] Keep symbols specified by '-u' over LTO.
Oct 3 2017, 5:19 AM
ikudrin closed D38348: [ELF] Keep symbols specified by '-u' over LTO. by committing rL314789: [ELF] Keep symbols specified by '-u' over LTO..
Oct 3 2017, 5:19 AM · lld

Oct 1 2017

ikudrin added a comment to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

I guess the same. Moreover:

  • This patch process any CIE once while D38391 has to store a pointer to it for each corresponding input section.
  • D38391 also stores pointers to personality function sections and LSDA sections for each input section which use them.
Oct 1 2017, 9:38 PM · lld
ikudrin added a comment to D38348: [ELF] Keep symbols specified by '-u' over LTO..
In D38348#885488, @ruiu wrote:

I'm not sure if this is the right thing to do. It feels like I could argue either this is correct or this is incorrect.

Oct 1 2017, 9:22 PM · lld

Sep 29 2017

ikudrin added a comment to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
In D37626#882892, @ruiu wrote:

How about this?

  1. Add a new member, EhSectionPieces vector, to InputSection. It holds the input section's FDEs and CIEs if exists. At the beginning of markLive, scan all .eh_frame sections to initialize the vectors.
  2. To represent edges between InputSections through .eh_frame section pieces, explicitly add these dependencies to InputSection::DependentSections. For example, if a function has .eh_frame pieces, its personality function is added to its DependentSection. You can initialize it at the beginning of markLive.

    After doing the above two things, all dependencies are explicitly represented, and all you have to do is to traverse the graph, make .eh_frame pieces alive, and visit DependentSections as usual. I think this is a cleaner way of doing garbage-collecting.
Sep 29 2017, 1:52 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Addressed review comments.

Sep 29 2017, 1:31 AM · lld
ikudrin created D38391: [ELF] Scan .eh_frame sections to prepare a dependency tree before traversing alive sections in markLive()..
Sep 29 2017, 1:29 AM

Sep 28 2017

ikudrin added a dependent revision for D38348: [ELF] Keep symbols specified by '-u' over LTO.: D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Sep 28 2017, 2:48 AM · lld
ikudrin added a dependency for D37332: [lld] Avoid promoting an undefined weak entry symbol to global.: D38348: [ELF] Keep symbols specified by '-u' over LTO..
Sep 28 2017, 2:48 AM · lld
ikudrin updated the diff for D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

Extract handling of '-u' symbols into a separate patch, see D38348.

Sep 28 2017, 2:47 AM · lld
ikudrin created D38348: [ELF] Keep symbols specified by '-u' over LTO..
Sep 28 2017, 2:44 AM · lld

Sep 27 2017

ikudrin added a comment to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

I assumed that here...

Sep 27 2017, 8:46 PM · lld
ikudrin added a comment to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

Ping. What can I do to improve the patch?

Sep 27 2017, 8:05 AM · lld
ikudrin added a comment to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Ping. Is there anything I can do to proceed the patch?

Sep 27 2017, 8:02 AM · lld

Sep 21 2017

ikudrin added inline comments to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
Sep 21 2017, 7:18 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
  • Update to the current tip.
  • Address review comments.
Sep 21 2017, 6:50 AM · lld

Sep 18 2017

ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Formatted.

Sep 18 2017, 8:44 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Refactored scanEhFrameSection.

Sep 18 2017, 1:46 AM · lld

Sep 15 2017

ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..

Update the patch to incorporate the latest changes in the master branch.

Sep 15 2017, 7:38 AM · lld

Sep 12 2017

ikudrin added inline comments to D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
Sep 12 2017, 7:35 AM · lld
ikudrin updated the diff for D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
  • Substituted a sorted vector for a DenseMap.
  • Improved (hopefully) comments.
Sep 12 2017, 7:20 AM · lld

Sep 8 2017

ikudrin created D37626: [ELF] Scan .eh_frame sections precisely in order to eliminate unused LSDAs and personality routines..
Sep 8 2017, 8:01 AM · lld

Sep 7 2017

ikudrin added inline comments to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Sep 7 2017, 9:29 PM · lld
ikudrin accepted D36813: [Coverage] Build sorted and unique segments.

LGTM.

Sep 7 2017, 7:58 PM
ikudrin added inline comments to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Sep 7 2017, 6:09 AM · lld
ikudrin updated the diff for D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

Use fetchIfLazy() instead of addEntrySymbol().

Sep 7 2017, 5:52 AM · lld
ikudrin added inline comments to D36813: [Coverage] Build sorted and unique segments.
Sep 7 2017, 3:26 AM

Sep 6 2017

ikudrin added a comment to D37387: [Coverage] Report errors when reading malformed source regions.

It looks like Phabricator doesn't let me download binary files. But overall the patch looks good.

Sep 6 2017, 4:49 AM
ikudrin added inline comments to D36813: [Coverage] Build sorted and unique segments.
Sep 6 2017, 4:46 AM
ikudrin updated the diff for D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

Did you mean something like this?
I am inclined not to mix an entry symbol into Config->Undefined in order to preserve clarity.

Sep 6 2017, 12:17 AM · lld

Sep 5 2017

ikudrin added inline comments to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Sep 5 2017, 4:57 PM · lld

Sep 4 2017

ikudrin updated the diff for D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

Yes, this variant is more straightforward. However, as addUndefined() implicitly marks the symbol to be preserved by LTO, we now have to set that flag directly; overwise, many tests in the lto test-suite fail. Moreover, without that flag, the entry field in the ELF header is not filled correctly in case of LTO because symbol _start is missing.

Sep 4 2017, 3:29 AM · lld

Sep 1 2017

ikudrin added a comment to D36813: [Coverage] Build sorted and unique segments.

Yes, if it's possible, I'd like to see all the patches (one way or another), just to have the whole picture.

Sep 1 2017, 12:00 AM

Aug 31 2017

ikudrin added a comment to D37332: [lld] Avoid promoting an undefined weak entry symbol to global..

We came across the issue in our environment, where an ELF linker is used only as an intermediate step and the value of entry field in the header is ignored. But in one of the libraries, we have a weak reference to _start, because sometimes this symbol might be defined for a special purpose. I can guess that for some other embedded environments and third-party libraries the same situation might take place.

Aug 31 2017, 10:19 PM · lld
ikudrin created D37332: [lld] Avoid promoting an undefined weak entry symbol to global..
Aug 31 2017, 6:07 AM · lld
ikudrin added a comment to D36813: [Coverage] Build sorted and unique segments.

The patch doesn't apply to the current tip clearly. And after applying it manually and fix compilation errors, I have two failing tests for llvm-cov: tools/llvm-cov/showLineExecutionCounts.cpp and tools/llvm-cov/threads.c, both of which fail with "Coverage segments not unique or sorted" assertion.

Aug 31 2017, 4:44 AM

Aug 20 2017

ikudrin added a comment to D36901: [Coverage] Add an expensive test for the segment builder.

LGTM

Aug 20 2017, 10:34 PM

Aug 17 2017

ikudrin added inline comments to D36813: [Coverage] Build sorted and unique segments.
Aug 17 2017, 12:25 AM

Aug 3 2017

ikudrin added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

I'd like to say that I'm quite happy with this set of patches. We use them for Arm32 target with relatively large executables, and they seem to work well. It'd be great if these patches are ported to the release branch as well.

Aug 3 2017, 11:41 PM

Jul 21 2017

ikudrin committed rL308728: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo()..
[ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo().
Jul 21 2017, 4:27 AM
ikudrin closed D35537: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo(). by committing rL308728: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo()..
Jul 21 2017, 4:27 AM · lld