Page MenuHomePhabricator

ruiu (Rui Ueyama)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 18 2013, 12:16 AM (313 w, 6 d)

Recent Activity

Today

ruiu accepted D61006: [ELF] Delete a redundant SHT_NOBITS -> SHT_PROGBITS after D60131.

LGTM

Wed, Apr 24, 6:54 AM · Restricted Project
ruiu added a comment to D61058: [PPC64] Consider localentry offset when computing branch distance.

Nice. Even if the probability of a failure for each relocation is very low, we have huge number of relocations. Apparently the latter overwhelms the former!

Wed, Apr 24, 6:48 AM · Restricted Project
ruiu accepted D61058: [PPC64] Consider localentry offset when computing branch distance.
Wed, Apr 24, 6:48 AM · Restricted Project

Yesterday

ruiu accepted D60998: [PPC][PPC64] Improve some llvm-objdump -d -D tests.

Thank you for doing this.

Tue, Apr 23, 2:00 AM · Restricted Project

Mon, Apr 22

ruiu accepted D60994: [PPC64] Allow R_PPC64_DTPREL* to preemptable local-dynamic symbols.

LGTM

Mon, Apr 22, 11:24 PM · Restricted Project
ruiu accepted D60992: [WebAssembly] Fix typo in relocation checking.

It is a good idea to add a test to catch this though.

Mon, Apr 22, 10:16 PM · Restricted Project
ruiu accepted D60989: Use llvm::stable_sort.

LGTM

Mon, Apr 22, 7:00 PM · Restricted Project
ruiu added inline comments to D60958: [PPC64] toc-indirect to toc-relative relaxation.
Mon, Apr 22, 3:16 AM · Restricted Project
ruiu accepted D60959: [LLD][ELF] - Do not forget to use ch_addralign field after decompressing the sections..

LGTM

Mon, Apr 22, 3:06 AM · Restricted Project
ruiu added inline comments to D60959: [LLD][ELF] - Do not forget to use ch_addralign field after decompressing the sections..
Mon, Apr 22, 2:15 AM · Restricted Project
ruiu accepted D60882: [WebAssembly] Error on relocations against undefined data symbols..

LGTM

Mon, Apr 22, 1:31 AM · Restricted Project

Sun, Apr 21

ruiu added a comment to D60945: [ELF][X86] Allow R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} to preemptable local-dynamic symbols.

OK, then moving just below

Sun, Apr 21, 11:09 PM · Restricted Project
ruiu added inline comments to D60945: [ELF][X86] Allow R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} to preemptable local-dynamic symbols.
Sun, Apr 21, 10:41 PM · Restricted Project
ruiu accepted D60945: [ELF][X86] Allow R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} to preemptable local-dynamic symbols.

LGTM

Sun, Apr 21, 7:42 PM · Restricted Project
ruiu accepted D60941: [ELF][X86] Rename R_RELAX_TLS_GD_TO_IE_END to R_RELAX_TLS_GD_TO_IE_GOTPLT.

LGTM

Sun, Apr 21, 7:34 PM · Restricted Project
ruiu accepted D60901: [LLD][ELF] - Handle quoted strings in the linker scripts correctly.

LGTM

Sun, Apr 21, 7:31 PM · Restricted Project

Thu, Apr 18

ruiu accepted D60860: [LLD] [MinGW] Add an --appcontainer flag, passed through to lld-link.

I'm curious what kind of application you want to use this option for.

Thu, Apr 18, 11:00 PM · Restricted Project
ruiu added a comment to D59780: Support Intel Control-flow Enforcement Technology.

I believe that your benchmark is inappropriate and does not correctly capture correct performance characteristics of PLT entries of different sizes.

Thu, Apr 18, 9:13 PM · Restricted Project
ruiu added a comment to D60882: [WebAssembly] Error on relocations against undefined data symbols..

Although I understand that reporting an error is sometimes useful, are you sure that that's the behavior that users want? I wonder if we would end up adding --really-allow-undefined in the future to override this new behavior.

Thu, Apr 18, 6:39 PM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

By the way I think your finding that this struct can be 12 bytes long instead of 16 bytes long is pretty interesting. Previously, we found that making this struct as small as possible does matter in terms of performance perhaps due to memory locality. So, shaving off 4 bytes from this might make a noticeable difference in speed. Do you want to try? (If not I'll do that sometime in the future.)

I tested it https://reviews.llvm.org/differential/diff/195689/ Making SectionPiece 12 bytes has some negative impact on the performance (likely due to extra OutputSec packing/unpacking instructions). So it isn't worth to do that.

Before: 17.177 +- 0.133 seconds time elapsed ( +- 0.77% )
After: 17.279 +- 0.171 seconds time elapsed ( +- 0.99% )

Thu, Apr 18, 2:15 AM · Restricted Project
ruiu accepted D55423: [LLD][ELF] - A fix for "linker script assignment loses relative nature of section" bug..

LGTM

Thu, Apr 18, 2:15 AM · Restricted Project
ruiu accepted D60785: [ELF] Align file offset for .bss if first section in a PT_LOAD.

LGTM

Thu, Apr 18, 2:10 AM · Restricted Project
ruiu accepted D59986: [ELF] Respect NonAlloc when copying flags from the previous sections.

LGTM

Thu, Apr 18, 1:56 AM · Restricted Project
ruiu added a comment to D59780: Support Intel Control-flow Enforcement Technology.

We are Ok with with the 2-PLT scheme.

I think I'd like **more opinions from others**.  **there are announcements but no design discussions**

Hi, Fangrui, the 2-PLT scheme has pass the ABI discussions, not H.J just made it by only himself.

**gives performance numbers demonstrating this second PLT scheme has indeed the cache-locality merit and is better than the alternative 24-byte PLT entry scheme**.

Yes, We really have not performance evidence, but this design is really more performance in theory, and this scheme has done years , and nothing went wrong.
The 24-bit plt is beautiful, but it is not the overwhelming reason to overthrow the big previous works.

Thu, Apr 18, 1:28 AM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

By the way I think your finding that this struct can be 12 bytes long instead of 16 bytes long is pretty interesting. Previously, we found that making this struct as small as possible does matter in terms of performance perhaps due to memory locality. So, shaving off 4 bytes from this might make a noticeable difference in speed. Do you want to try? (If not I'll do that sometime in the future.)

Thu, Apr 18, 12:56 AM · Restricted Project
ruiu accepted D60131: [ELF] Change default output section type to SHT_PROGBITS.

No, the actual issue is that a non-empty PT_LOAD segment that starts with an empty symbol only section does not have a file offset that is congruent modulo the page size. As a result, the output is not a valid ELF.

Thu, Apr 18, 12:36 AM · Restricted Project
ruiu accepted D60273: [ELF] Change findOrphanPos to only consider live sections.

Please commit this first.

Thu, Apr 18, 12:30 AM · Restricted Project
ruiu accepted D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

Notice that {get,set}OutputOff don't race with accesses to InputOff/Hash/TailHash/Live. So the goal has achieved. Also with this scheme we don't sacrifice the bits of Hash -- Hash member still has the full 32 bits.

I get your idea now: splitting OutputOff to make space for Hash (to keep it 32 bits). However, the benchmark shows 31-bit Hash works just fine.

For a huge internal executable (1.6GiB clang -O3), Strings in StringTableBuilder::finalizeStringTable contains at most 310253 elements.
Every pair has a probability 2^(-31) of colliding. The expected number of pair-wise collisions is 2^(-31) * C(310253,2) ~= 22.41. Note, this number is pair-wise - if 5 elements hash to the same value, they count as C(5,2) collisions. Assume every but one bucket has at most 1 element, that bucket with collision has at most 7 elements => The degraded performance is nearly nothing.

So for simplicity, I prefer leaving OutputOff as is.

Thu, Apr 18, 12:27 AM · Restricted Project

Wed, Apr 17

ruiu accepted D55550: [LLD][ELF] - Fix the different behavior of the linker script symbols on different platforms..

Changes to the linker script processor oftentimes has subtle implications and in order to review such change I have to stop and think. But for this patch I took too much time. Apologies for the delay.

Wed, Apr 17, 11:51 PM · Restricted Project
ruiu added a comment to D60131: [ELF] Change default output section type to SHT_PROGBITS.

IIUC, you are fixing an issue that a segment whose size is 0 doesn't have a file offset that is congruent modulo page size. Is this correct?

Wed, Apr 17, 11:05 PM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

It doesn't race. Since OutputOffHi is not a bitfield, it takes a different memory location. Concurrent accesses to different memory locations don't race. I still don't understand the split of OutputOff. If you pack other members adjacent to OutputOffHi and read them, it may race with the write of OutputOffHi.

Wed, Apr 17, 10:32 PM · Restricted Project
ruiu committed rG14ef9b30b683: lld: elf: Fix sections with explict addresses in regions (authored by ruiu).
lld: elf: Fix sections with explict addresses in regions
Wed, Apr 17, 7:35 PM
ruiu committed rLLD358638: lld: elf: Fix sections with explict addresses in regions.
lld: elf: Fix sections with explict addresses in regions
Wed, Apr 17, 7:35 PM
ruiu committed rL358638: lld: elf: Fix sections with explict addresses in regions.
lld: elf: Fix sections with explict addresses in regions
Wed, Apr 17, 7:35 PM
ruiu closed D60744: lld: elf: Fix sections with explict addresses in regions.
Wed, Apr 17, 7:35 PM · Restricted Project
ruiu added a comment to D60744: lld: elf: Fix sections with explict addresses in regions.

Committed as r358638.

Wed, Apr 17, 7:35 PM · Restricted Project
ruiu added a comment to D59491: Fix relative thin archive path handling.

Sorry, I though that I replied to this thread.

Wed, Apr 17, 7:27 PM · Restricted Project
ruiu added a comment to D60095: [LLD][COFF] Move PDB type server loading from PDB.cp early into InputFiles.cpp and introduce PDBInputFile.

InputFile abstracts the concept of a file containing symbols. In each parse() function, we parse a symbol table and then insert symbols to the symbol table. parse() is part of a symbol resolution process step.

Wed, Apr 17, 7:06 PM · Restricted Project
ruiu abandoned D60759: Add an assertion that parallelForEach doesn't nest..
Wed, Apr 17, 6:46 PM · Restricted Project
ruiu added inline comments to D60758: Add an assertion that parallelForEach doesn't nest..
Wed, Apr 17, 6:46 PM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

The point of my last comment was that, with the new layout, accesses to OutputOffHi don't race with accesses to Live or Hash, as they are now in different non-integer-bitmap struct members.

I don't understand the split of uint64_t OutputOff -> uint8_t OutputOffHi+uint32_t OutputOffLo (40 bits).

uint32_t InputOff;

uint32_t Hash;
uint8_t Live : 1;
uint8_t TailShardId : 5;
uint8_t OutputOffHi;  // this may be written concurrently with the read of `Live` -> race

uint32_t OutputOffLo;
Wed, Apr 17, 1:45 AM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

The point of my last comment was that, with the new layout, accesses to OutputOffHi don't race with accesses to Live or Hash, as they are now in different non-integer-bitmap struct members.

Wed, Apr 17, 1:00 AM · Restricted Project
ruiu added a comment to D60744: lld: elf: Fix sections with explict addresses in regions.

LGTM, please commit.

Wed, Apr 17, 12:51 AM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.
uint32_t Hash;
uint8_t Live : 1;
uint8_t TailShardId : 5;
uint8_t OutputOffHi;
uint32_t OutputOffLo;

Do you mean

// 16 bytes -> 12 bytes
uint32_t InputOff;

uint32_t Live : 1
uint32_t Hash : 18;
uint32_t TailShardId : 5;
uint32_t OutputOffHi : 8;

uint32_t OutputOffLo;

Looks fine.

Wed, Apr 17, 12:39 AM · Restricted Project
ruiu accepted D60813: [ELF] Use llvm::bsearch. NFC.

LGTM

Wed, Apr 17, 12:39 AM · Restricted Project

Tue, Apr 16

ruiu committed rG5081e41bdae2: Fix a crash bug caused by a nested call of parallelForEach. (authored by ruiu).
Fix a crash bug caused by a nested call of parallelForEach.
Tue, Apr 16, 7:14 PM
ruiu committed rLLD358547: Fix a crash bug caused by a nested call of parallelForEach..
Fix a crash bug caused by a nested call of parallelForEach.
Tue, Apr 16, 7:14 PM
ruiu committed rL358547: Fix a crash bug caused by a nested call of parallelForEach..
Fix a crash bug caused by a nested call of parallelForEach.
Tue, Apr 16, 7:14 PM
ruiu closed D60757: Fix a crash bug caused by a nested call of parallelForEach..
Tue, Apr 16, 7:14 PM · Restricted Project
ruiu added a comment to D60757: Fix a crash bug caused by a nested call of parallelForEach..

There should not be a fundamental reason for parallelForEach to not be reentrant, so we eventually want to fix it so that we can call the function without worrying the nested condition. For the time being, we should be able to detect the error condition more easily by adding the assertions.

Tue, Apr 16, 7:03 PM · Restricted Project
ruiu committed rG7f8ca6e3679b: lld: Fix initial Mach-O load commands size calculation omitting… (authored by ruiu).
lld: Fix initial Mach-O load commands size calculation omitting…
Tue, Apr 16, 6:53 PM
ruiu committed rLLD358545: lld: Fix initial Mach-O load commands size calculation omitting….
lld: Fix initial Mach-O load commands size calculation omitting…
Tue, Apr 16, 6:45 PM
ruiu committed rL358545: lld: Fix initial Mach-O load commands size calculation omitting….
lld: Fix initial Mach-O load commands size calculation omitting…
Tue, Apr 16, 6:45 PM
ruiu added a comment to D59780: Support Intel Control-flow Enforcement Technology.

The root cause of the problem here is that the API doesn't have enough rationale to choose a complex format than a simpler one, even though it was set just a few years ago and there's no historical burden to do so. I was repeatedly told that it is too late to change the ABI but that wasn't convincing (that's why the same topic came up many times in the thread) because no one said how much it is too late -- what thing is already done and if we redo it how long does it likely to take, etc. So, Carlos, thank you for giving some examples of the stuff that's already done to some programs.

Tue, Apr 16, 3:13 AM · Restricted Project
ruiu added a comment to D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together.

This change seems fine as long as it doesn't cause any performance regression. Did you run lld with this change to see if the increase of hash collision doesn't have a negative impact?

Tue, Apr 16, 2:37 AM · Restricted Project
ruiu accepted D60744: lld: elf: Fix sections with explict addresses in regions.

This change seems correct, although it is a bit tricky and perhaps unnecessary to move . backwards in many linker scripts.

Tue, Apr 16, 2:27 AM · Restricted Project
ruiu added a comment to D60758: Add an assertion that parallelForEach doesn't nest..

If you worry about the cost of assigning a boolean value to the thread-local variable, I'd think that's really cheap and negligible. This function is not called too casually, because distributing jobs to threads waiting in the thread pool is not cheap. Compared to that, these assignments are virtually nothing.

Tue, Apr 16, 1:18 AM · Restricted Project
ruiu added a comment to D60757: Fix a crash bug caused by a nested call of parallelForEach..

I will keep this patch for a day to give sbc100 to take a look.

Tue, Apr 16, 1:08 AM · Restricted Project
ruiu created D60759: Add an assertion that parallelForEach doesn't nest..
Tue, Apr 16, 1:08 AM · Restricted Project
ruiu created D60758: Add an assertion that parallelForEach doesn't nest..
Tue, Apr 16, 1:08 AM · Restricted Project
ruiu accepted D60342: ELF: Move build id computation to Writer. NFCI..

Sorry, I missed this one.

Tue, Apr 16, 1:02 AM · Restricted Project
ruiu created D60757: Fix a crash bug caused by a nested call of parallelForEach..
Tue, Apr 16, 12:54 AM · Restricted Project

Mon, Apr 15

ruiu accepted D59530: [LLD][COFF] Fix /linkrepro with options that take a filename or path.

LGTM

Mon, Apr 15, 5:44 PM · Restricted Project
ruiu added inline comments to D60306: Fix -emit-reloc against local symbols..
Mon, Apr 15, 2:19 AM · Restricted Project
ruiu accepted D60628: [LLD] [COFF] Link crtend.o as the last object file.

LGTM

Mon, Apr 15, 2:19 AM · Restricted Project
ruiu updated the diff for D38528: Parallelize tail-merge string table construction..
  • 80 columns
Mon, Apr 15, 1:44 AM · Restricted Project
ruiu added inline comments to D38528: Parallelize tail-merge string table construction..
Mon, Apr 15, 1:44 AM · Restricted Project
ruiu updated the diff for D38528: Parallelize tail-merge string table construction..
  • address review comments
  • simplify
Mon, Apr 15, 1:44 AM · Restricted Project
ruiu added a comment to D38528: Parallelize tail-merge string table construction..

This patch naturally changes the order how strings are placed in a merged string section. In addition to that, with this change, strings equal to or shorter than 4 bytes long are not merged. This is why.

Mon, Apr 15, 1:30 AM · Restricted Project
ruiu added inline comments to D60628: [LLD] [COFF] Link crtend.o as the last object file.
Mon, Apr 15, 1:30 AM · Restricted Project

Sun, Apr 14

ruiu added a comment to D60628: [LLD] [COFF] Link crtend.o as the last object file.

I don't think you have to call std::stable_sort. Something like this should suffice.

Sun, Apr 14, 11:34 PM · Restricted Project
ruiu added a comment to D60628: [LLD] [COFF] Link crtend.o as the last object file.

This patches changes the order how input files are parsed. The other approach is to parse input files normally and then sort the list of object files so that crtend.o is at the end of the input list. I wonder if the latter is simpler. What do you think?

Sun, Apr 14, 11:00 PM · Restricted Project
ruiu added a comment to D60646: [lld] Add double-braces for std::array to suppress warnings. NFC..

Yeah, if recent versions of clang and gcc are happy with the code, I wouldn't add the extra braces as Fangrui suggested. Thank you for your effort to fix warnings, though. It's important to keep our code warning-free.

Sun, Apr 14, 10:38 PM · Restricted Project
ruiu updated the diff for D38528: Parallelize tail-merge string table construction..
  • rebased
Sun, Apr 14, 10:08 PM · Restricted Project

Thu, Apr 11

ruiu accepted D60549: [LLD][COFF] use offset in archive to disambiguate archive members.

LGTM

Thu, Apr 11, 6:44 PM · Restricted Project
ruiu created D60557: Explain --reproduce option..
Thu, Apr 11, 2:26 AM · Restricted Project
ruiu updated the diff for D60509: Mark non-alloc sections after marking alloc sections.
  • address review comment
Thu, Apr 11, 1:17 AM · Restricted Project

Wed, Apr 10

ruiu added inline comments to D60549: [LLD][COFF] use offset in archive to disambiguate archive members.
Wed, Apr 10, 5:36 PM · Restricted Project
ruiu updated the diff for D60509: Mark non-alloc sections after marking alloc sections.
  • remove dead code
Wed, Apr 10, 5:43 AM · Restricted Project
ruiu retitled D60509: Mark non-alloc sections after marking alloc sections from Mark non-alloc sections after marking alloc sections. Previously, we mark non-alloc sections except debug info sections, mark alloc sections, and optionally mark debug sections. This patch simplifies the step by marking alloc sections first. to Mark non-alloc sections after marking alloc sections.
Wed, Apr 10, 5:38 AM · Restricted Project
ruiu created D60509: Mark non-alloc sections after marking alloc sections.
Wed, Apr 10, 5:37 AM · Restricted Project
ruiu accepted D39323: [lld] Support dynamic linking in RISC-V.

LGTM

Wed, Apr 10, 5:35 AM · Restricted Project, lld
ruiu committed rG3a8bb7cd2c75: Discard debuginfo for object files empty after GC (authored by ruiu).
Discard debuginfo for object files empty after GC
Wed, Apr 10, 3:36 AM
ruiu committed rLLD358069: Discard debuginfo for object files empty after GC.
Discard debuginfo for object files empty after GC
Wed, Apr 10, 3:35 AM
ruiu committed rL358069: Discard debuginfo for object files empty after GC.
Discard debuginfo for object files empty after GC
Wed, Apr 10, 3:35 AM
ruiu closed D54747: Discard debuginfo for object files empty after GC.
Wed, Apr 10, 3:35 AM · Restricted Project, lld
ruiu accepted D39324: [lld] Support TLS in RISC-V.

LGTM

Wed, Apr 10, 3:29 AM · lld
ruiu added a comment to D54747: Discard debuginfo for object files empty after GC.

I will do that.

Wed, Apr 10, 3:27 AM · Restricted Project, lld
ruiu added a comment to D39323: [lld] Support dynamic linking in RISC-V.

Overall looking good.

Wed, Apr 10, 3:27 AM · Restricted Project, lld
ruiu added a comment to D59780: Support Intel Control-flow Enforcement Technology.

Hi MaskRay, I tested your idea by changing the patch:

diff --git a/ELF/Arch/X86_64.cpp b/ELF/Arch/X86_64.cpp
index 7d7cc00..14fb6b2 100644
--- a/ELF/Arch/X86_64.cpp
+++ b/ELF/Arch/X86_64.cpp
@@ -553,11 +553,11 @@ void IntelCET::writePlt(uint8_t *Buf, uint64_t GotPltEntryAddr,
                         unsigned RelOff) const {
   const uint8_t Inst[] = {
       0xf3, 0x0f, 0x1e, 0xfa,       // endbr64
-      0xff, 0x25, 0,    0,    0, 0, // jmpq *got(%rip)
-      0x66, 0x0f, 0x1f, 0x44, 0, 0, // nop
+      0xf2, 0xff, 0x25, 0,    0,    0, 0, // jmpq *got(%rip)
+      0x0f, 0x1f, 0x44, 0, 0, // nop
   };
   memcpy(Buf, Inst, sizeof(Inst));
-  write32le(Buf + 6, GotPltEntryAddr - PltEntryAddr - 10);
+  write32le(Buf + 7, GotPltEntryAddr - PltEntryAddr - 11);
 }

After that, GNU objdump can symbolize .plt.sec, it is really the BND prefix factor.

[xiangzh1@shliclel100 /export/users.shared/xiangzh1/LLVM_ORG/test]$ld.lld -e func1 t.o t1.so -o tout-new
[xiangzh1@shliclel100 /export/users.shared/xiangzh1/LLVM_ORG/test]$objdump -d tout-new

tout-new:     file format elf64-x86-64


Disassembly of section .text:

0000000000201000 <func1>:
  201000:       e8 3b 00 00 00          callq  201040 <func2@plt>
  201005:       e8 46 00 00 00          callq  201050 <func3@plt>
  20100a:       c3                      retq

Disassembly of section .plt:

0000000000201010 <.plt>:
  201010:       ff 35 f2 1f 00 00       pushq  0x1ff2(%rip)        # 203008 <_DYNAMIC+0x1008>
  201016:       ff 25 f4 1f 00 00       jmpq   *0x1ff4(%rip)        # 203010 <_DYNAMIC+0x1010>
  20101c:       0f 1f 40 00             nopl   0x0(%rax)
  201020:       f3 0f 1e fa             endbr64
  201024:       68 00 00 00 00          pushq  $0x0
  201029:       e9 e2 ff ff ff          jmpq   201010 <func1+0x10>
  20102e:       66 90                   xchg   %ax,%ax
  201030:       f3 0f 1e fa             endbr64
  201034:       68 01 00 00 00          pushq  $0x1
  201039:       e9 d2 ff ff ff          jmpq   201010 <func1+0x10>
  20103e:       66 90                   xchg   %ax,%ax

Disassembly of section .plt.sec:

0000000000201040 <func2@plt>:
  201040:       f3 0f 1e fa             endbr64
  201044:       f2 ff 25 cd 1f 00 00    bnd jmpq *0x1fcd(%rip)        # 203018 <func2>
  20104b:       0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)

0000000000201050 <func3@plt>:
  201050:       f3 0f 1e fa             endbr64
  201054:       f2 ff 25 c5 1f 00 00    bnd jmpq *0x1fc5(%rip)        # 203020 <func3>
  20105b:       0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)

But I think this is not the good reason to change the ABI, it is better to change the objdump tool's code to fit the new plt.
GCC have implemented this ABI for one year, It will be very hard to push the changing work.

Wed, Apr 10, 2:44 AM · Restricted Project
ruiu accepted D60438: [llvm-readobj] Should declare `ListScope` for `verneed` entries..

LGTM

Wed, Apr 10, 2:08 AM · Restricted Project

Tue, Apr 9

ruiu accepted D54747: Discard debuginfo for object files empty after GC.

I'd write a comment explaining why we are handling debug sections in a special way, but that can be done later. Please submit. Thank you for doing this!

Tue, Apr 9, 11:45 PM · Restricted Project, lld
ruiu accepted D60492: [WebAssembly] Assign GOT entries symbols used in data relocations.

LGTM

Tue, Apr 9, 11:42 PM · Restricted Project
ruiu added a comment to D59553: [LLD][ELF][DebugInfo] llvm-symbolizer shows incorrect source line info if --gc-sections used.
In D59553#1459554, @avl wrote:

I thought that address 0 is a good candidate to represent an invalid address, as nullptr is usually represented by address 0. I wonder why we want to use UINT64_MAX-2 instead of 0.

using 0 in this case could lead to following problems :

  1. on some platforms 0 is a valid address. i.e. image base starts from 0. In that case no way to differentiate valid address from invalid one just by checking for 0.
Tue, Apr 9, 11:41 PM · lld, Restricted Project
ruiu committed rLLD358049: Rename a variable and add a comment..
Rename a variable and add a comment.
Tue, Apr 9, 11:31 PM
ruiu committed rG0c01607bbff3: Rename a variable and add a comment. (authored by ruiu).
Rename a variable and add a comment.
Tue, Apr 9, 11:31 PM
ruiu committed rL358049: Rename a variable and add a comment..
Rename a variable and add a comment.
Tue, Apr 9, 11:31 PM
ruiu committed rGf432fa6eee84: De-template SymbolTable::addShared. (authored by ruiu).
De-template SymbolTable::addShared.
Tue, Apr 9, 1:51 AM
ruiu committed rLLD357982: De-template SymbolTable::addShared..
De-template SymbolTable::addShared.
Tue, Apr 9, 1:51 AM
ruiu committed rL357982: De-template SymbolTable::addShared..
De-template SymbolTable::addShared.
Tue, Apr 9, 1:51 AM