ruiu (Rui Ueyama)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 18 2013, 12:16 AM (278 w, 3 d)

Recent Activity

Today

ruiu added inline comments to D50899: [LLD][ELF] - Check the architecture of lazy objects earlier..
Sun, Aug 19, 10:00 PM
ruiu added inline comments to D50729: [WebAssembly] Don't compress LEBs by default.
Sun, Aug 19, 9:55 PM

Fri, Aug 10

ruiu updated the diff for D50569: Change how we handle -wrap..
  • use ParallelForEach to rewrite symbols in object files
Fri, Aug 10, 2:23 PM
ruiu updated the summary of D50569: Change how we handle -wrap..
Fri, Aug 10, 2:16 PM
ruiu updated the diff for D50569: Change how we handle -wrap..
  • Do not touch BinaryFiles
  • Use DenseMap to make it faster
Fri, Aug 10, 2:15 PM
ruiu accepted D50577: Add R_HEX_8_X relocation support.

LGTM

Fri, Aug 10, 2:10 PM
ruiu updated the diff for D50569: Change how we handle -wrap..
  • Do not visit BinaryFiles and BitcodeFiles
Fri, Aug 10, 11:02 AM
ruiu accepted D50371: Split-stack support for cross-linking shared-libraries..

LGTM

Fri, Aug 10, 10:42 AM
ruiu updated the diff for D50569: Change how we handle -wrap..
  • removed unrelated space changes
Fri, Aug 10, 10:18 AM
ruiu created D50569: Change how we handle -wrap..
Fri, Aug 10, 10:15 AM

Thu, Aug 9

ruiu added a comment to D50494: [LLD] Reserve memory in implicitly set LMARegions.

I believe this code makes sense, but this is honestly a bit complicated (that's not your fault but by the nature of the linker script itself). I'm curious what program you are trying to link with this patch. Or, are you just fixing it because it's there?

Thu, Aug 9, 1:50 PM
ruiu committed rLLD339364: Support RISC-V.
Support RISC-V
Thu, Aug 9, 11:00 AM
ruiu committed rL339364: Support RISC-V.
Support RISC-V
Thu, Aug 9, 11:00 AM
ruiu closed D39322: [lld] Support RISC-V.
Thu, Aug 9, 11:00 AM · lld
ruiu accepted D50498: [LLD][ELF] - Fix crash when using empty --defsym..

LGTM

Thu, Aug 9, 10:59 AM
ruiu accepted D50520: Add support for Hexagon's R_HEX_HI16/R_HEX_LO16 relocations..

LGTM

Thu, Aug 9, 10:27 AM

Wed, Aug 8

ruiu added inline comments to D50475: ELF: Only add libcall symbols to the link if defined in bitcode..
Wed, Aug 8, 3:02 PM
ruiu accepted D50475: ELF: Only add libcall symbols to the link if defined in bitcode..

LGTM

Wed, Aug 8, 3:00 PM
ruiu added a comment to D50475: ELF: Only add libcall symbols to the link if defined in bitcode..

You don't need to call fetch again to add a file that you already have to the symbol table. You can directly add it by calling SymbolTable::addFile().

Wed, Aug 8, 2:45 PM
ruiu added inline comments to D50475: ELF: Only add libcall symbols to the link if defined in bitcode..
Wed, Aug 8, 2:38 PM
ruiu accepted D50450: Add R_HEX_6_X relocation support.

LGTM with these changes.

Wed, Aug 8, 1:50 PM · lld
ruiu added inline comments to D50450: Add R_HEX_6_X relocation support.
Wed, Aug 8, 11:25 AM · lld
ruiu added a comment to D50440: [LLD] Add missing REQUIRES x86 to tests..

LGTM

Wed, Aug 8, 11:14 AM

Tue, Aug 7

ruiu added a comment to D50404: [lld-link] Generalize handling of /debug and /debug:{none,full,fastlink,ghash,symtab}.

This code was written when we supported only /debug and /debug:dwarf. At that time handling them as two separate options was a reasonable design. Now, we have /debug and /debug:{full,ghash,dwarf,symtab}, so I believe it's time to handle this just like other options that take a value after colon.

Tue, Aug 7, 12:53 PM · lld
ruiu accepted D39322: [lld] Support RISC-V.

These tests were written in ObjectYAML format since LLVM MC support was very incomplete for RISC-V, and the latest llvm-mc from trunk still cannot assemble these tests correctly due to lack of addend handling. I did include the original assembly text in the tests so once the LLVM port is upstreamed we can just swap it to run assembler proper.

Tue, Aug 7, 11:27 AM · lld
ruiu accepted D50395: [WebAssembly] Remove use of lld -flavor flag.

LGTM!

Tue, Aug 7, 11:24 AM
ruiu accepted D50316: lld-link: Take /SUBSYSTEM into account for automatic /ENTRY detection..

LGTM

Tue, Aug 7, 11:23 AM

Mon, Aug 6

ruiu accepted D50366: [ELF] Use MathExtras.h llvm::SignExtend64.

LGTM

Mon, Aug 6, 3:40 PM
ruiu added a comment to D39322: [lld] Support RISC-V.

Apologies for my belated response. I think this patch is generally looking good. One thing I'd fix before submitting is to rewrite a test using assembly. We do not usually use YAML file for testing. Is there any reason you needed to write them in YAML?

Mon, Aug 6, 3:39 PM · lld
ruiu added inline comments to D50316: lld-link: Take /SUBSYSTEM into account for automatic /ENTRY detection..
Mon, Aug 6, 3:22 PM
ruiu accepted D50357: [LLD] [COFF] Fix a comment about automatic resolving of dllimports from within a module. NFC..

LGTM

Mon, Aug 6, 2:57 PM
ruiu committed rLLD339060: Add TARGET(foo) linker script directive..
Add TARGET(foo) linker script directive.
Mon, Aug 6, 2:30 PM
ruiu committed rL339060: Add TARGET(foo) linker script directive..
Add TARGET(foo) linker script directive.
Mon, Aug 6, 2:30 PM
ruiu closed D48153: Add TARGET(foo) linker script directive..
Mon, Aug 6, 2:30 PM
ruiu added inline comments to D48153: Add TARGET(foo) linker script directive..
Mon, Aug 6, 2:15 PM
ruiu accepted D50221: ELF: Enable address-significance tables during LTO..

LGTM

Mon, Aug 6, 1:03 PM
ruiu accepted D50289: [ELF] Don't copy STT_TLS in copy relocation.

LGTM

Mon, Aug 6, 11:09 AM
ruiu added a comment to D50297: On FreeBSD, align AArch64 and i386 image base to superpage.

Looking at this a bit more, I see that it is unconditionally setting the DefaultImage base for all platforms, which cannot be right. I didn't notice this when it was committed into FreeBSD, but it doesn't matter there, of course. I'm not sure if there is a good way to override this setting on a per-platform basis. Maybe just if (os == FreeBSD) DefaultImageBase=x?

Mon, Aug 6, 10:41 AM
ruiu added a comment to D48433: [ELF] - Report unimplemented -z options..

This flag was added for ifunc support, but I'm not 100% sure if it is needed at all. Does lld always assume a common page size of 4096 (or whatever the OS reports as PAGESIZE)?

Mon, Aug 6, 9:07 AM

Fri, Aug 3

ruiu added a comment to D50289: [ELF] Don't copy STT_TLS in copy relocation.

Why?

Fri, Aug 3, 5:25 PM
ruiu committed rL338940: Fix buildbot breakage..
Fix buildbot breakage.
Fri, Aug 3, 5:24 PM
ruiu committed rL338939: Use the same constants as zlib to represent compression level..
Use the same constants as zlib to represent compression level.
Fri, Aug 3, 5:13 PM
ruiu closed D50196: Use the same constants as zlib to represent compression level..
Fri, Aug 3, 5:13 PM
ruiu accepted D50279: [WebAssembly] Don't error when --undefined symbols are not found.

LGTM

Fri, Aug 3, 4:54 PM
ruiu added a comment to D50279: [WebAssembly] Don't error when --undefined symbols are not found.

Generally looking good.

Fri, Aug 3, 4:46 PM
ruiu added a comment to D50279: [WebAssembly] Don't error when --undefined symbols are not found.

Is this the right patch? Looks like this is the same as the another one.

Fri, Aug 3, 4:40 PM
ruiu added a comment to D50279: [WebAssembly] Don't error when --undefined symbols are not found.

In ELF, we took a different approach. What we did in the lld/ELF driver is this:

Fri, Aug 3, 4:15 PM
ruiu added a comment to D50273: All lazy symbols to be exported with --export.

I guess so. There's no reason to be different, I believe.

Fri, Aug 3, 3:26 PM
ruiu added a comment to D50273: All lazy symbols to be exported with --export.

--undefined doesn't report an error if an argument symbol is missing, at least for Unix. Is this different in lld/wasm?

Fri, Aug 3, 3:21 PM
ruiu added a comment to D50273: All lazy symbols to be exported with --export.

Doing it probably makes sense, but at the same time this new behavior is subtle. What is the issue with Emscripten without this patch?

Fri, Aug 3, 3:15 PM
ruiu accepted D50223: [Support] Don't initialize compressed buffer allocated by zlib::compress.

LGTM

Fri, Aug 3, 12:35 PM
ruiu added a comment to D50223: [Support] Don't initialize compressed buffer allocated by zlib::compress.

If you are using git, you can actually combine this patch work your another patch as a single patch.

Fri, Aug 3, 11:45 AM
ruiu added a comment to D49374: [LLF][ELF] - Support -z global.

Please add this option to the manual.

Fri, Aug 3, 11:15 AM
ruiu accepted D49136: [ELF] - Refactor readCallGraph(). NFCI..

LGTM

Fri, Aug 3, 11:12 AM
ruiu added inline comments to D50223: [Support] Don't initialize compressed buffer allocated by zlib::compress.
Fri, Aug 3, 11:09 AM
ruiu added a comment to D50223: [Support] Don't initialize compressed buffer allocated by zlib::compress.

If you are using git-svn, can you combine this patch with your another patch for lld, so that we can review this API-changing patch as one patch?

Fri, Aug 3, 11:07 AM
ruiu added a comment to D50174: [LLD][ELF] - Remove dead code from ArchiveFile..

No, that's not really the case. I strongly suspect that if you land this, you'll see some weird behavior in the wild.

Fri, Aug 3, 11:03 AM
ruiu added a comment to D50223: [Support] Don't initialize compressed buffer allocated by zlib::compress.

This is very interesting!

Fri, Aug 3, 10:39 AM
ruiu accepted D50234: [LLD][ELF][ARM] Test undefined weak symbol for Thumb narrow branch.

LGTM

Fri, Aug 3, 10:30 AM
ruiu accepted D50253: lld-link: Simplify LinkerDriver::findDefaultEntry().

LGTM

Fri, Aug 3, 10:04 AM

Thu, Aug 2

ruiu added a comment to D50052: [LLD] Improve handling of AT> linker script commands.

Could you give me a few days to review code since we are working in different time zones?

Thu, Aug 2, 3:34 PM
ruiu added a comment to D50174: [LLD][ELF] - Remove dead code from ArchiveFile..

I think this change is a bit dangerous to land because this patch removes the safeguard to not pull out the same object file more than once from an archive file. If our symbol resolution logic is as simple as you described, and if consistency between archive file index and actual object files in it is maintained for all input files, this change should be fine. But I think taking that risk is unnecessary. (I vaguely remember that there was a some problem if we don't have this code, but I can't remember it now.)

Thu, Aug 2, 3:31 PM
ruiu accepted D50184: lld-link: Fix subsystem inference for non-console apps on 32-bit, and fix entry point inference on 32-bit with /nodefaultlib.

LGTM

Thu, Aug 2, 3:24 PM
ruiu accepted D49147: Set Symbol::IsUsedInRegularObj in a consistent manor between COFF, ELF and wasm. NFC.

LGTM

Thu, Aug 2, 1:10 PM
ruiu created D50196: Use the same constants as zlib to represent compression level..
Thu, Aug 2, 11:18 AM

Wed, Aug 1

ruiu accepted D49926: Update split stack support to handle more generic prologues. Improve error handling. Add test file for better code-coverage. Update tests to be more complete..

LGTM

Wed, Aug 1, 4:38 PM
ruiu added a comment to D49926: Update split stack support to handle more generic prologues. Improve error handling. Add test file for better code-coverage. Update tests to be more complete..

Overall looking good.

Wed, Aug 1, 4:00 PM
ruiu committed rLLD338647: Re-submit r338596 with a bug fix and a test..
Re-submit r338596 with a bug fix and a test.
Wed, Aug 1, 3:32 PM
ruiu committed rL338647: Re-submit r338596 with a bug fix and a test..
Re-submit r338596 with a bug fix and a test.
Wed, Aug 1, 3:31 PM
ruiu accepted D50145: [MS Demangler] Demangle templated operator overloads.

LGTM

Wed, Aug 1, 11:06 AM
ruiu committed rLLD338600: Revert r338596: Simplify. NFC..
Revert r338596: Simplify. NFC.
Wed, Aug 1, 10:50 AM
ruiu committed rL338600: Revert r338596: Simplify. NFC..
Revert r338596: Simplify. NFC.
Wed, Aug 1, 10:50 AM
ruiu added inline comments to D50145: [MS Demangler] Demangle templated operator overloads.
Wed, Aug 1, 10:35 AM
ruiu committed rL338596: Simplify. NFC..
Simplify. NFC.
Wed, Aug 1, 10:33 AM
ruiu committed rLLD338596: Simplify. NFC..
Simplify. NFC.
Wed, Aug 1, 10:33 AM

Tue, Jul 31

ruiu accepted D50105: Allow oformat option to accept elf format.

LGTM

Tue, Jul 31, 2:51 PM
ruiu added inline comments to D50065: [LLD] Only increase LMARegion if different from MemRegion.
Tue, Jul 31, 2:43 PM
ruiu added inline comments to D50105: Allow oformat option to accept elf format.
Tue, Jul 31, 2:37 PM
ruiu added inline comments to D50077: [LLD][ELF][ARM] Add support for Armv5 and Armv6 compatible Thunks.
Tue, Jul 31, 1:58 PM
ruiu added inline comments to D49237: [PPC64] Optimize redundant instructions using R_PPC64_TOC16_HA in nop.
Tue, Jul 31, 1:38 PM
ruiu added a comment to D50076: [LLD][ELF][ARM] Add support for older Arm Architectures with smaller branch range.

Overall looking good, but who sets Config->ARMJ1J2BranchEncoding to true? Looks like the flag is currently always false.

Tue, Jul 31, 1:17 PM
ruiu added a comment to D50017: ELF: Add libcall symbols to the link when LTO is being used..
  1. The set of libcall symbols is a property of the code generator linked into lld, not the one that was used to create the bitcode file. That means that if we see an old bitcode file it would not be correct to use its libcall symbols.
Tue, Jul 31, 11:46 AM
ruiu added a comment to D50017: ELF: Add libcall symbols to the link when LTO is being used..

Ah, I misunderstood that the new code was added after addCombinedLTOObject, but the new code is actually before the call of that function. Now the code makes more sense.

Tue, Jul 31, 11:19 AM
ruiu committed rL338409: Simplify. NFC..
Simplify. NFC.
Tue, Jul 31, 11:14 AM
ruiu committed rLLD338409: Simplify. NFC..
Simplify. NFC.
Tue, Jul 31, 11:14 AM
ruiu committed rLLD338406: Make ICF log output order deterministic..
Make ICF log output order deterministic.
Tue, Jul 31, 11:05 AM
ruiu committed rL338406: Make ICF log output order deterministic..
Make ICF log output order deterministic.
Tue, Jul 31, 11:05 AM
ruiu closed D50023: Make ICF output deterministic..
Tue, Jul 31, 11:05 AM

Mon, Jul 30

ruiu accepted D50022: [docs] Sort ld.lld.1 options.

I know the total number of lines didn't change, but I wanted to double-check that you didn't modify any of these lines. Given all lines remain unchanged, LGTM.

Mon, Jul 30, 4:04 PM
ruiu added a comment to D50022: [docs] Sort ld.lld.1 options.

Is this line-move-only change?

Mon, Jul 30, 3:48 PM
ruiu added a comment to D50017: ELF: Add libcall symbols to the link when LTO is being used..

I'm wondering if we have to keep the list of symbols that could be added as undefined symbols by LTO. If LTO adds new undefined symbol, we always have to resolve them whatever they are, no?

Mon, Jul 30, 3:45 PM
ruiu created D50023: Make ICF output deterministic..
Mon, Jul 30, 3:41 PM
ruiu added a comment to D49938: [ELF] Add missing options to ld.lld.1.

Please create a small patch like this one next time for ease of code review. Thanks!

Mon, Jul 30, 3:20 PM
ruiu accepted D49938: [ELF] Add missing options to ld.lld.1.
Mon, Jul 30, 3:20 PM
ruiu accepted D50013: [MS Demangler] Demangle various C++11 features..

I picked up a few tests and double-checked that these tests are correct by using undname.

Mon, Jul 30, 3:17 PM
ruiu added a comment to D50017: ELF: Add libcall symbols to the link when LTO is being used..

It might be a silly question, but are these functions (e.g. udivhi3 or mulxf3) are functions in static archives? It seems like calling such small functions have relatively large overhead, which appears contrary to the aim of LTO. I'm wondering why LTO creates new function calls to them. Don't you want to inline these functions using LTO?

Mon, Jul 30, 3:08 PM
ruiu added inline comments to D49938: [ELF] Add missing options to ld.lld.1.
Mon, Jul 30, 2:57 PM
ruiu added inline comments to D49938: [ELF] Add missing options to ld.lld.1.
Mon, Jul 30, 2:50 PM
ruiu added inline comments to D49938: [ELF] Add missing options to ld.lld.1.
Mon, Jul 30, 2:41 PM
ruiu added inline comments to D49938: [ELF] Add missing options to ld.lld.1.
Mon, Jul 30, 2:33 PM