Page MenuHomePhabricator

ikudrin (Igor Kudrin)
User

Projects

User Details

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

Recent Activity

Dec 18 2018

ikudrin abandoned D55817: [ELF][ARM] Process ARM build attributes of dynamic libraries..

Thanks again, Peter!

Dec 18 2018, 6:19 AM · lld
ikudrin added a comment to D55817: [ELF][ARM] Process ARM build attributes of dynamic libraries..

Thank you for the explanation, Peter!

Dec 18 2018, 5:43 AM · lld
ikudrin created D55817: [ELF][ARM] Process ARM build attributes of dynamic libraries..
Dec 18 2018, 3:19 AM · lld

Sep 20 2018

ikudrin added a comment to D50560: [LLD] Enable Visual Studio compatible diagnostics..

With overloaded operators we can write something like

error("relocation " + toString(Type) +
        " cannot refer to absolute symbol: " + toString(Sym) +
        definedAt(toObjLoc(Sym.File)) +
        referencedBy(S.getSymLoc(Sym, RelOff)));

How would you prefer it to look like?
I don't insist on the current style, but I believe it is important to be discussed prior to rewriting the code because the decision will influence the design directly.

Sep 20 2018, 7:00 PM · lld
ikudrin added a comment to D50560: [LLD] Enable Visual Studio compatible diagnostics..

@chrisjackson @arichardson @ruiu, thank you for the feedback! I am going to continue working on the patch somewhere in October. I would really appreciate any additional comments meanwhile.

Sep 20 2018, 12:38 AM · lld

Aug 13 2018

ikudrin added a comment to D50632: [LLD][ELF] - Simplify TLS LD handling code..

If I calculate it right, your code has the same cyclomatic complexity as the original one. At the same time, it is one level deeper, taking into account the number of conditions for the particular lines.

Aug 13 2018, 7:34 AM
ikudrin added inline comments to D50494: [LLD] Reserve memory in implicitly set LMARegions.
Aug 13 2018, 5:55 AM
ikudrin added inline comments to D50569: Change how we handle -wrap..
Aug 13 2018, 4:07 AM
ikudrin added a comment to D50419: [ELF] Skip non-InputSection's in getErrPlace.

Is it possible to add a test case?

Aug 13 2018, 2:27 AM

Aug 10 2018

ikudrin added a comment to D47540: [lld] Enable Visual Studio compatible output.

Please see D50560 for my variant.

Aug 10 2018, 6:44 AM
ikudrin created D50560: [LLD] Enable Visual Studio compatible diagnostics..
Aug 10 2018, 6:43 AM · lld

Jul 26 2018

ikudrin added a comment to D47540: [lld] Enable Visual Studio compatible output.

While more structured, I think this approach could be even more invasive than that suggested. Do you have an example implementation?

Jul 26 2018, 8:27 PM

Jul 24 2018

ikudrin committed rCRT337826: [profile] Fix finding the first and last directory separators on Windows..
[profile] Fix finding the first and last directory separators on Windows.
Jul 24 2018, 6:06 AM
ikudrin committed rL337826: [profile] Fix finding the first and last directory separators on Windows..
[profile] Fix finding the first and last directory separators on Windows.
Jul 24 2018, 6:06 AM
ikudrin closed D49664: [profile] Fix finding the first and last directory separators on Windows..
Jul 24 2018, 6:06 AM
ikudrin committed rCRT337823: [profile] Fix a possible memory leak in parseFilenamePattern()..
[profile] Fix a possible memory leak in parseFilenamePattern().
Jul 24 2018, 5:30 AM
ikudrin committed rL337823: [profile] Fix a possible memory leak in parseFilenamePattern()..
[profile] Fix a possible memory leak in parseFilenamePattern().
Jul 24 2018, 5:29 AM
ikudrin closed D49666: [profile] Fix a possible memory leak in parseFilenamePattern()..
Jul 24 2018, 5:29 AM

Jul 23 2018

ikudrin added a comment to D49664: [profile] Fix finding the first and last directory separators on Windows..

Unfortunately, we don't run the profile test suite on Windows.

Jul 23 2018, 8:43 PM
ikudrin created D49666: [profile] Fix a possible memory leak in parseFilenamePattern()..
Jul 23 2018, 4:55 AM
ikudrin created D49664: [profile] Fix finding the first and last directory separators on Windows..
Jul 23 2018, 4:50 AM
ikudrin added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Did you consider dividing the patch into two separate changes to solve the two described issues independently?

Jul 23 2018, 12:30 AM

Jul 20 2018

ikudrin added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

You may want to add a test for placement new, no?

Jul 20 2018, 3:42 AM

Jul 11 2018

ikudrin committed rL336799: [ELF] Update addends in non-allocatable sections for REL targets when creating….
[ELF] Update addends in non-allocatable sections for REL targets when creating…
Jul 11 2018, 5:57 AM
ikudrin committed rLLD336799: [ELF] Update addends in non-allocatable sections for REL targets when creating….
[ELF] Update addends in non-allocatable sections for REL targets when creating…
Jul 11 2018, 5:57 AM
ikudrin closed D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..
Jul 11 2018, 5:57 AM · lld
ikudrin added inline comments to D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..
Jul 11 2018, 5:05 AM · lld

Jul 10 2018

ikudrin added a comment to D47540: [lld] Enable Visual Studio compatible output.

Can we try the approach where the final style of diagnostic messages is determined in the reporting module and all other code just don't care about it?
Right now, we have a bunch of functions here and there which prepare some parts of the message in a specific style. Maybe it will be more semantically clear if there is a distinct place where the resulting message is prepared while all other parts of the linker provide only basic parts of the message (like message text, source location(s), code location(s), etc.) in a structured form. In this case, we can adjust only that distinct place to add any required message styles.

Jul 10 2018, 5:43 AM
ikudrin added a comment to D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..

Ping.

Jul 10 2018, 5:06 AM · lld

Jul 5 2018

ikudrin updated the diff for D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..
  • Shortened relocateNonAllocForRelocatable();
  • Made it static;
  • Removed an unused argument;
  • Changed an expression for Bits.
Jul 5 2018, 9:23 PM · lld

Jul 4 2018

ikudrin added inline comments to D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..
Jul 4 2018, 4:57 AM · lld
ikudrin created D48929: [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output..
Jul 4 2018, 3:30 AM · lld

Jul 3 2018

ikudrin added a member for lld: ikudrin.
Jul 3 2018, 3:14 AM

Jun 26 2018

ikudrin added a comment to D47540: [lld] Enable Visual Studio compatible output.

I think we need to see the other places converted, too. Reports for duplicate symbols and invalid relocations will probably require additional changes, which may lead to better design when we see the whole picture.

Jun 26 2018, 7:48 AM

Jun 24 2018

ikudrin committed rC335445: [CodeGen] Provide source locations for UBSan type checks when emitting….
[CodeGen] Provide source locations for UBSan type checks when emitting…
Jun 24 2018, 10:54 PM
ikudrin committed rL335445: [CodeGen] Provide source locations for UBSan type checks when emitting….
[CodeGen] Provide source locations for UBSan type checks when emitting…
Jun 24 2018, 10:52 PM
ikudrin closed D48531: [CodeGen] Provide source locations for UBSan type checks when emitting constructor calls..
Jun 24 2018, 10:52 PM · Restricted Project
ikudrin created D48531: [CodeGen] Provide source locations for UBSan type checks when emitting constructor calls..
Jun 24 2018, 10:04 PM · Restricted Project

May 24 2018

ikudrin committed rCRT333180: [tsan] Fix a failure in test java_race_pc on AArch64 after r333071.
[tsan] Fix a failure in test java_race_pc on AArch64 after r333071
May 24 2018, 5:30 AM
ikudrin committed rL333180: [tsan] Fix a failure in test java_race_pc on AArch64 after r333071.
[tsan] Fix a failure in test java_race_pc on AArch64 after r333071
May 24 2018, 5:30 AM

May 23 2018

ikudrin committed rCRT333071: [sanitizer] Reland "Be more accurate when calculating the previous instruction….
[sanitizer] Reland "Be more accurate when calculating the previous instruction…
May 23 2018, 2:22 AM
ikudrin committed rL333071: [sanitizer] Reland "Be more accurate when calculating the previous instruction….
[sanitizer] Reland "Be more accurate when calculating the previous instruction…
May 23 2018, 2:22 AM

May 7 2018

ikudrin committed rCRT331734: Revert "[sanitizer] Be more accurate when calculating the previous instruction….
Revert "[sanitizer] Be more accurate when calculating the previous instruction…
May 7 2018, 9:42 PM
ikudrin committed rL331734: Revert "[sanitizer] Be more accurate when calculating the previous instruction….
Revert "[sanitizer] Be more accurate when calculating the previous instruction…
May 7 2018, 9:42 PM
ikudrin committed rCRT331626: [sanitizer] Be more accurate when calculating the previous instruction address….
[sanitizer] Be more accurate when calculating the previous instruction address…
May 7 2018, 3:12 AM
ikudrin committed rL331626: [sanitizer] Be more accurate when calculating the previous instruction address….
[sanitizer] Be more accurate when calculating the previous instruction address…
May 7 2018, 3:12 AM
ikudrin closed D46004: Be more accurate when calculating the previous instruction address on Arm..
May 7 2018, 3:12 AM · Restricted Project

May 3 2018

ikudrin added a comment to D46004: Be more accurate when calculating the previous instruction address on Arm..

Ping.

May 3 2018, 9:23 PM · Restricted Project

Apr 24 2018

ikudrin created D46004: Be more accurate when calculating the previous instruction address on Arm..
Apr 24 2018, 4:58 AM · Restricted Project

Feb 27 2018

ikudrin committed rL326305: [ELF] Process linker scripts deeper when declaring symbols..
[ELF] Process linker scripts deeper when declaring symbols.
Feb 27 2018, 10:00 PM
ikudrin committed rLLD326305: [ELF] Process linker scripts deeper when declaring symbols..
[ELF] Process linker scripts deeper when declaring symbols.
Feb 27 2018, 10:00 PM
ikudrin closed D43008: [ELF] Process linker scripts deeper when declaring symbols..
Feb 27 2018, 10:00 PM · lld
ikudrin added a comment to D43008: [ELF] Process linker scripts deeper when declaring symbols..

Thanks!

Feb 27 2018, 9:50 PM · lld
ikudrin added a comment to D43008: [ELF] Process linker scripts deeper when declaring symbols..

Ping. Is there anything I can improve here?

Feb 27 2018, 7:10 PM · lld

Feb 26 2018

ikudrin committed rL326176: [ELF] Create and export symbols provided by a linker script if they referenced….
[ELF] Create and export symbols provided by a linker script if they referenced…
Feb 26 2018, 11:20 PM
ikudrin committed rLLD326176: [ELF] Create and export symbols provided by a linker script if they referenced….
[ELF] Create and export symbols provided by a linker script if they referenced…
Feb 26 2018, 11:20 PM
ikudrin closed D43011: [ELF] Create and export symbols provided by a linker script if they referenced by DSOs..
Feb 26 2018, 11:20 PM · lld
ikudrin committed rC326164: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on….
[Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on…
Feb 26 2018, 6:56 PM
ikudrin committed rL326164: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on….
[Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on…
Feb 26 2018, 6:56 PM
ikudrin closed D43621: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows..
Feb 26 2018, 6:56 PM · Restricted Project
ikudrin updated the diff for D43621: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows..
  • Add a test.
Feb 26 2018, 5:51 AM · Restricted Project
ikudrin added a comment to D43621: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows..

Not all toolchains call ToolChain::GetLinkerPath. For example, MSVC toolchain uses its own code:

void visualstudio::Linker::ConstructJob(...) {
...
  StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "link");
  if (Linker.equals_lower("lld"))
    Linker = "lld-link";
...
}

In my case, I am trying to cross-compile:

> ...\clang.exe a.cpp -fuse-ld=lld -target i686-pc-linux-gnu
clang.exe: error: invalid linker name in argument '-fuse-ld=lld'
Feb 26 2018, 2:09 AM · Restricted Project

Feb 22 2018

ikudrin added inline comments to D43621: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows..
Feb 22 2018, 7:53 AM · Restricted Project
ikudrin created D43621: [Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows..
Feb 22 2018, 7:46 AM · Restricted Project

Feb 19 2018

ikudrin updated the diff for D43011: [ELF] Create and export symbols provided by a linker script if they referenced by DSOs..
  • Use DenseSet<>::count(), as George suggested.
Feb 19 2018, 10:04 PM · lld
ikudrin updated subscribers of D43008: [ELF] Process linker scripts deeper when declaring symbols..

Ping. @espindola, @ruiu, is it OK to land?

Feb 19 2018, 5:11 PM · lld

Feb 15 2018

ikudrin added a comment to D43228: [ELF] Allow redefining LMA for a section inside a segment..

I don't see anything that violates the specs. With this patch, the offset of a segment (p_offset) is still congruent to its virtual address (p_vaddr), modulo page size. This rule is enforced in lines 1850-1852 of ELF/Writer.cpp:

if (Cmd == First)
  return alignTo(Off, std::max<uint64_t>(Cmd->Alignment, Config->MaxPageSize),
                 Cmd->Addr);

and I didn't touch them.

Feb 15 2018, 9:44 PM · lld
ikudrin added a comment to D43228: [ELF] Allow redefining LMA for a section inside a segment..

It's not for an application. We use it for a kernel image.

Feb 15 2018, 9:09 PM · lld
ikudrin committed rL325313: [ELF] Fix use after free in case of using --whole-archive..
[ELF] Fix use after free in case of using --whole-archive.
Feb 15 2018, 7:29 PM
ikudrin committed rLLD325313: [ELF] Fix use after free in case of using --whole-archive..
[ELF] Fix use after free in case of using --whole-archive.
Feb 15 2018, 7:29 PM
ikudrin closed D34554: [ELF] FIx use-after-return of archive path .
Feb 15 2018, 7:28 PM · lld
ikudrin updated the diff for D34554: [ELF] FIx use-after-return of archive path .
  • Remove "tee" in the test.
Feb 15 2018, 6:10 AM · lld
ikudrin updated the diff for D34554: [ELF] FIx use-after-return of archive path .
  • Change type of ArchiveName to std::string.
  • Add a test.
Feb 15 2018, 6:05 AM · lld
ikudrin commandeered D34554: [ELF] FIx use-after-return of archive path .

I asked @evgeny777 and he let me take this revision.

Feb 15 2018, 5:57 AM · lld

Feb 14 2018

ikudrin updated the diff for D43228: [ELF] Allow redefining LMA for a section inside a segment..
  • Adjust to the tip.
Feb 14 2018, 10:59 PM · lld
ikudrin committed rLLD325213: [ELF] Simplify handling of AT section attribute..
[ELF] Simplify handling of AT section attribute.
Feb 14 2018, 10:16 PM
ikudrin committed rL325213: [ELF] Simplify handling of AT section attribute..
[ELF] Simplify handling of AT section attribute.
Feb 14 2018, 10:15 PM
ikudrin closed D43284: [ELF] Simplify handling of AT section attribute..
Feb 14 2018, 10:15 PM · lld
ikudrin accepted D43284: [ELF] Simplify handling of AT section attribute..

Accepted by @rafael in the mailing list.

Feb 14 2018, 10:12 PM · lld
ikudrin updated the diff for D43284: [ELF] Simplify handling of AT section attribute..

Update according to Rafael's comments:

  • Replace !FirstLoadSection with Load->LastSec != Out::ProgramHeaders.
  • Add a corresponding comment.
Feb 14 2018, 9:05 PM · lld
ikudrin updated the diff for D43284: [ELF] Simplify handling of AT section attribute..
  • Remove "tee". Thanks, George!
Feb 14 2018, 6:29 AM · lld
ikudrin created D43284: [ELF] Simplify handling of AT section attribute..
Feb 14 2018, 5:06 AM · lld

Feb 13 2018

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

I started a discussion in the llvm-dev mailing list to eliminate the need to scan .eh_frame sections in a special way. Please send a comment there if you have one.

Feb 13 2018, 5:18 PM · lld
ikudrin created D43228: [ELF] Allow redefining LMA for a section inside a segment..
Feb 13 2018, 2:49 AM · lld

Feb 8 2018

ikudrin updated the diff for D43011: [ELF] Create and export symbols provided by a linker script if they referenced by DSOs..
  • Move Undefs and getUndefinedSymbols() into InputFile
  • Change type of Undefs to DenseSet<StringRef> so that it can be used to search for the symbol without creating another filter container.
Feb 8 2018, 10:25 PM · lld
ikudrin updated the diff for D43008: [ELF] Process linker scripts deeper when declaring symbols..

Shorten the script in the test.

Feb 8 2018, 9:16 PM · lld

Feb 7 2018

ikudrin updated the diff for D43008: [ELF] Process linker scripts deeper when declaring symbols..

Address review comments.

Feb 7 2018, 9:49 PM · lld
ikudrin added inline comments to D43011: [ELF] Create and export symbols provided by a linker script if they referenced by DSOs..
Feb 7 2018, 8:08 PM · lld
ikudrin created D43011: [ELF] Create and export symbols provided by a linker script if they referenced by DSOs..
Feb 7 2018, 2:39 AM · lld
ikudrin created D43008: [ELF] Process linker scripts deeper when declaring symbols..
Feb 7 2018, 2:24 AM · lld

Jan 24 2018

ikudrin added a comment to D42471: [ARM] Fix lld crash introduced by r321154.

Thank you for the patch. I agree with Peter, the fix should be accomplished with a test.

Jan 24 2018, 6:49 AM · lld

Jan 22 2018

ikudrin added a comment to D39196: [ARM] Remove pre-UAL FLDM/FSTM aliases.

I fear someone will eventually cry foul that we "broke their code".

Jan 22 2018, 10:09 PM

Jan 14 2018

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.

Jan 14 2018, 6:28 PM

Jan 9 2018

ikudrin committed rLLD322066: [ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"….
[ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"…
Jan 9 2018, 1:46 AM
ikudrin committed rL322066: [ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"….
[ELF] Add a comment for ARMExidxSentinelSection::Highest; Use "= nullptr"…
Jan 9 2018, 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
ikudrin closed D41234: [ELF] Fix placement of a sentinel entry in the .ARM.exidx section..
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