Page MenuHomePhabricator

thevinster (Vincent Lee)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 30 2021, 10:55 PM (74 w, 1 d)

Recent Activity

Tue, Nov 22

thevinster added inline comments to D133633: [CMake] Add ClangBootstrap configuration.
Tue, Nov 22, 11:00 PM · Restricted Project, Restricted Project

Sep 30 2022

thevinster committed rG58edaef3fe08: [lld-macho] Do not error out on dead stripped duplicate symbols (authored by thevinster).
[lld-macho] Do not error out on dead stripped duplicate symbols
Sep 30 2022, 3:10 PM · Restricted Project
thevinster closed D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.
Sep 30 2022, 3:10 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the diff for D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

Rename dupSymReporter to dupSymDiags

Sep 30 2022, 3:07 PM · Restricted Project, Restricted Project, Restricted Project
thevinster added inline comments to D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.
Sep 30 2022, 2:27 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the diff for D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

Fixed up nits and naming

Sep 30 2022, 2:26 PM · Restricted Project, Restricted Project, Restricted Project

Sep 29 2022

thevinster updated the diff for D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

Update comment

Sep 29 2022, 3:34 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the summary of D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.
Sep 29 2022, 3:31 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the diff for D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

Add flag to gate dead stripped duplicate symbols

Sep 29 2022, 3:29 PM · Restricted Project, Restricted Project, Restricted Project

Sep 28 2022

thevinster added a comment to D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

Do you have data how much harder these are to fix than (say) the text deduping failures?

Sep 28 2022, 2:19 PM · Restricted Project, Restricted Project, Restricted Project
thevinster added a comment to D134794: [lld-macho] Do not error out on dead stripped duplicate symbols.

FWIW, I don't agree with this argument, and our doc listing intentional differences doesn't either. (Not deduping strings by default is a big difference and we're stricter in various other areas too.)

Sep 28 2022, 9:51 AM · Restricted Project, Restricted Project, Restricted Project
thevinster published D134794: [lld-macho] Do not error out on dead stripped duplicate symbols for review.
Sep 28 2022, 12:08 AM · Restricted Project, Restricted Project, Restricted Project

Sep 17 2022

thevinster added inline comments to D134058: [lld-macho] Support -dyld_env.
Sep 17 2022, 10:57 PM · Restricted Project, Restricted Project, Restricted Project

Sep 14 2022

thevinster added inline comments to D133825: [lld-macho] Add support for N_INDR symbols.
Sep 14 2022, 11:41 AM · Restricted Project, Restricted Project, Restricted Project
thevinster accepted D133825: [lld-macho] Add support for N_INDR symbols.

Overall, lgtm. Thanks!

Sep 14 2022, 1:54 AM · Restricted Project, Restricted Project, Restricted Project

Sep 12 2022

thevinster committed rG79e5c5004e9a: [llvm-lipo] Fix create-arch-asm test by requiring x86 and aarch64 target (authored by thevinster).
[llvm-lipo] Fix create-arch-asm test by requiring x86 and aarch64 target
Sep 12 2022, 7:00 PM · Restricted Project, Restricted Project
thevinster committed rG61e54384982a: [llvm-lipo] Support object files with bitcode asm (authored by thevinster).
[llvm-lipo] Support object files with bitcode asm
Sep 12 2022, 6:15 PM · Restricted Project, Restricted Project
thevinster closed D133729: [llvm-lipo] Support object files with bitcode asm.
Sep 12 2022, 6:14 PM · Restricted Project, Restricted Project
thevinster published D133729: [llvm-lipo] Support object files with bitcode asm for review.
Sep 12 2022, 3:17 PM · Restricted Project, Restricted Project
thevinster accepted D133717: [lld-macho][docs] Cosmetic changes.
Sep 12 2022, 12:47 PM · Restricted Project, Restricted Project, Restricted Project

Aug 29 2022

thevinster accepted D132845: [MachO] Don't fold compact unwind entries with LSDA.
Aug 29 2022, 11:51 AM · Restricted Project, Restricted Project, Restricted Project
thevinster added a comment to D132845: [MachO] Don't fold compact unwind entries with LSDA.

Some minor comments. Overall, LGTM, I'll leave it to people more familiar with the code to stamp.

Aug 29 2022, 9:53 AM · Restricted Project, Restricted Project, Restricted Project

Aug 25 2022

thevinster added a comment to D132489: [MachO] Fix dead-stripping __eh_frame.

@int3 Thanks for the clarification! In that case, this change LGTM.

Aug 25 2022, 11:39 AM · Restricted Project, Restricted Project, Restricted Project

Aug 24 2022

thevinster added a comment to D132489: [MachO] Fix dead-stripping __eh_frame.

we would actually produce an invalid __eh_frame section in that case because the CIE associated with the unnecessary FDE would still get dead-stripped and we'd end up with a dangling FDE

Aug 24 2022, 1:17 AM · Restricted Project, Restricted Project, Restricted Project

Aug 14 2022

thevinster added a comment to D131781: [lld/mac] Stop accepting arbitrary suffixes on --(no-)warn-dylib-install-name.

Whoops, this might've been a copy paste error on my end. Thanks for catching it!

Aug 14 2022, 10:36 PM · Restricted Project, Restricted Project, Restricted Project

Aug 3 2022

thevinster committed rGc77db8161680: [CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER (authored by thevinster).
[CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER
Aug 3 2022, 11:24 AM · Restricted Project, Restricted Project
thevinster closed D131051: [CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER.
Aug 3 2022, 11:24 AM · Restricted Project, Restricted Project
thevinster published D131051: [CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER for review.
Aug 3 2022, 12:07 AM · Restricted Project, Restricted Project

Jul 28 2022

thevinster committed rGf030132c72d9: [lld-macho] Allow linking with ABI compatible architectures (authored by thevinster).
[lld-macho] Allow linking with ABI compatible architectures
Jul 28 2022, 5:17 PM · Restricted Project
thevinster closed D130683: [lld-macho] Allow linking with ABI compatible architectures.
Jul 28 2022, 5:16 PM · Restricted Project, Restricted Project, Restricted Project
thevinster accepted D130429: [lld-macho] `-exported_symbols` should hide symbols before LTO runs.
Jul 28 2022, 11:59 AM · Restricted Project, Restricted Project, Restricted Project

Jul 27 2022

thevinster updated the summary of D130683: [lld-macho] Allow linking with ABI compatible architectures.
Jul 27 2022, 11:51 PM · Restricted Project, Restricted Project, Restricted Project
thevinster published D130683: [lld-macho] Allow linking with ABI compatible architectures for review.
Jul 27 2022, 11:48 PM · Restricted Project, Restricted Project, Restricted Project

Jul 20 2022

thevinster added a comment to D130180: [lld-macho] Optimize rebase opcode generation.

Could we run a benchmark on this just to see if it has any impact on link speed? I remember bind opcodes optimization had a slight link speed regression which was then put behind an -O2 flag since it isn't worth it for debug builds. I'm wondering if we need to do the same for the rebase opcodes.

Jul 20 2022, 11:22 AM · Restricted Project, Restricted Project, Restricted Project

Jul 15 2022

thevinster accepted D129894: [lld-macho][nfc] Add more tests + comments around ICF + unwind info interaction.
Jul 15 2022, 3:16 PM · Restricted Project, Restricted Project, Restricted Project

May 25 2022

thevinster accepted D126046: [lld-macho] Support -non_global_symbols_strip_list, -non_global_symbols_no_strip_list, -x.

LGTM

May 25 2022, 1:45 AM · Restricted Project, Restricted Project, Restricted Project

May 24 2022

thevinster added inline comments to D126046: [lld-macho] Support -non_global_symbols_strip_list, -non_global_symbols_no_strip_list, -x.
May 24 2022, 11:45 AM · Restricted Project, Restricted Project, Restricted Project
thevinster added inline comments to D126046: [lld-macho] Support -non_global_symbols_strip_list, -non_global_symbols_no_strip_list, -x.
May 24 2022, 3:25 AM · Restricted Project, Restricted Project, Restricted Project

May 11 2022

thevinster accepted D125250: [lld/macho] Fixes the -ObjC flag.

LGTM

May 11 2022, 4:04 PM · Restricted Project, Restricted Project, Restricted Project

Apr 22 2022

thevinster committed rG9f2272ff51b1: [lld-macho] Allow dead_strip to work with exported private extern symbols (authored by thevinster).
[lld-macho] Allow dead_strip to work with exported private extern symbols
Apr 22 2022, 6:46 PM · Restricted Project
thevinster closed D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols.
Apr 22 2022, 6:46 PM · Restricted Project, Restricted Project, Restricted Project
thevinster retitled D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols from [lld-macho] Allow dead_strip to work with autohide symbols that cannot be exported to [lld-macho] Allow dead_strip to work with exported private extern symbols.
Apr 22 2022, 2:01 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the diff for D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols.

Fixed up comments and renaming

Apr 22 2022, 1:57 PM · Restricted Project, Restricted Project, Restricted Project
thevinster accepted D124223: [lld-macho] Fix ICF crash when comparing symbol relocs.
Apr 22 2022, 12:15 PM · Restricted Project, Restricted Project, Restricted Project

Apr 21 2022

thevinster added inline comments to D124223: [lld-macho] Fix ICF crash when comparing symbol relocs.
Apr 21 2022, 9:55 PM · Restricted Project, Restricted Project, Restricted Project
thevinster added inline comments to D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols.
Apr 21 2022, 12:29 PM · Restricted Project, Restricted Project, Restricted Project
thevinster updated subscribers of D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols.
Apr 21 2022, 12:21 PM · Restricted Project, Restricted Project, Restricted Project
thevinster added inline comments to D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols.
Apr 21 2022, 10:30 AM · Restricted Project, Restricted Project, Restricted Project

Apr 20 2022

thevinster published D124143: [lld-macho] Allow dead_strip to work with exported private extern symbols for review.
Apr 20 2022, 8:12 PM · Restricted Project, Restricted Project, Restricted Project

Mar 22 2022

thevinster added inline comments to D122156: [lld][Macho][NFC] Encapsulate priorities map in a priority class.
Mar 22 2022, 8:52 AM · Restricted Project, Restricted Project, Restricted Project

Feb 18 2022

thevinster accepted D119767: [lld-macho] Improve hiding of unnamed_addr symbols.
Feb 18 2022, 8:50 AM · Restricted Project, Restricted Project

Feb 10 2022

thevinster committed rGef764ee20746: [lld-macho][nfc] Centralize usages of ld64.lld in tests (authored by thevinster).
[lld-macho][nfc] Centralize usages of ld64.lld in tests
Feb 10 2022, 5:27 PM
thevinster closed D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.
Feb 10 2022, 5:27 PM · Restricted Project, Restricted Project
thevinster added a comment to D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

Overall, I gave it some thought on the naming. To be consistent with a part of the naming (e.g. no_fatal_warnings_), it makes sense to have no-arg be as the prefix as well. We do have a mix of - and _ (e.g. lld-watchos and no_fatal_warnings_lld). I broke the tie and slightly prefer -. Hence, the result no-arg-lld.

Feb 10 2022, 5:25 PM · Restricted Project, Restricted Project
thevinster updated the diff for D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

Rename to no-arg-lld

Feb 10 2022, 5:22 PM · Restricted Project, Restricted Project
thevinster updated the diff for D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

Switch name to lld-noarg

Feb 10 2022, 11:25 AM · Restricted Project, Restricted Project

Feb 9 2022

thevinster added a comment to D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

why doesn't re-using %lld plus additional args, which would override the defalut ones provided by %lld anyways, work?

Feb 9 2022, 5:54 PM · Restricted Project, Restricted Project
thevinster added a comment to D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

Unfortunately, we can't start with %lld anymore otherwise it would get replaced with the value of %lld and then just append -noarg which makes the command invalid. I'm happy to change it to %no-arg-lld.

Feb 9 2022, 5:50 PM · Restricted Project, Restricted Project
thevinster added a comment to D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.

Bikeshedding: How about %lld-noarg? It's a bit more descriptive and only two characters longer.

Feb 9 2022, 5:45 PM · Restricted Project, Restricted Project
thevinster updated the summary of D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests.
Feb 9 2022, 5:37 PM · Restricted Project, Restricted Project
thevinster published D119394: [lld-macho][nfc] Centralize usages of ld64.lld in tests for review.
Feb 9 2022, 5:09 PM · Restricted Project, Restricted Project

Feb 7 2022

thevinster accepted D118931: [llvm-libtool-darwin] Add -warnings_as_errors.

LGTM

Feb 7 2022, 1:01 AM · Restricted Project

Jan 31 2022

thevinster added inline comments to D118646: [lld-macho][test] Add test for UUID format.
Jan 31 2022, 3:34 PM · Restricted Project, Restricted Project

Jan 27 2022

thevinster accepted D114737: [lld][Macho] Include dead-stripped symbols in mapfile.
Jan 27 2022, 3:09 PM · Restricted Project, Restricted Project

Jan 18 2022

thevinster committed rGe5347f2556cb: [lld-macho] Allow deduplicate-literals to be overridden (authored by thevinster).
[lld-macho] Allow deduplicate-literals to be overridden
Jan 18 2022, 3:43 PM
thevinster closed D117387: [lld-macho] Allow deduplicate-literals to be overridden.
Jan 18 2022, 3:43 PM · Restricted Project, Restricted Project
thevinster updated the diff for D117387: [lld-macho] Allow deduplicate-literals to be overridden.

Update differences in rst

Jan 18 2022, 12:59 PM · Restricted Project, Restricted Project
thevinster added a comment to D117387: [lld-macho] Allow deduplicate-literals to be overridden.

It's worth noting that -no_deduplicate in ld64 actually turns off ICF, not string merging. I don't know if ld64 even has a way to turn off string merging, since IIRC it's implemented in the symbol table itself.

Jan 18 2022, 12:46 PM · Restricted Project, Restricted Project

Jan 14 2022

thevinster published D117387: [lld-macho] Allow deduplicate-literals to be overridden for review.
Jan 14 2022, 11:19 PM · Restricted Project, Restricted Project

Jan 13 2022

thevinster added a comment to D117250: [lld-macho] Mention string literal deduplication as a difference from ld64.

After reading through this thread, I'm going to try and argue for both fronts here and then give my final opinion at the end.

Jan 13 2022, 6:41 PM · Restricted Project, Restricted Project

Jan 10 2022

thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.
Jan 10 2022, 12:26 AM · Restricted Project, Restricted Project
thevinster committed rG7a161eb43b28: [lld-macho] Fix shadowed variable (authored by thevinster).
[lld-macho] Fix shadowed variable
Jan 10 2022, 12:25 AM

Jan 6 2022

thevinster committed rGa963bc490d68: [lld-macho] Increase slops to prevent thunk out of range (authored by thevinster).
[lld-macho] Increase slops to prevent thunk out of range
Jan 6 2022, 12:29 PM
thevinster closed D116705: [lld-macho] Increase slops to prevent thunk out of range.
Jan 6 2022, 12:29 PM · Restricted Project, Restricted Project, Restricted Project
thevinster added a comment to D114737: [lld][Macho] Include dead-stripped symbols in mapfile.

Do you think this needs to be changed?

Jan 6 2022, 12:25 PM · Restricted Project, Restricted Project
thevinster updated the summary of D116705: [lld-macho] Increase slops to prevent thunk out of range.
Jan 6 2022, 11:57 AM · Restricted Project, Restricted Project, Restricted Project
thevinster updated the diff for D116705: [lld-macho] Increase slops to prevent thunk out of range.

Increase to 256

Jan 6 2022, 11:56 AM · Restricted Project, Restricted Project, Restricted Project
thevinster added a comment to D116705: [lld-macho] Increase slops to prevent thunk out of range.

Maybe make it configurable too?

Jan 6 2022, 11:51 AM · Restricted Project, Restricted Project, Restricted Project

Jan 5 2022

thevinster updated subscribers of D116705: [lld-macho] Increase slops to prevent thunk out of range.
Jan 5 2022, 9:54 PM · Restricted Project, Restricted Project, Restricted Project
thevinster published D116705: [lld-macho] Increase slops to prevent thunk out of range for review.
Jan 5 2022, 3:08 PM · Restricted Project, Restricted Project, Restricted Project

Jan 2 2022

thevinster added a comment to D114737: [lld][Macho] Include dead-stripped symbols in mapfile.

The output from ld64 doesn't look like what lld produces. Also the command you linked above doesn't pass in dead_strip. Is ld64 always outputting dead stripped symbols regardless of the flag or is the summary a typo?

Jan 2 2022, 8:39 PM · Restricted Project, Restricted Project

Dec 15 2021

thevinster committed rGd17b092fe690: [lld-macho] Make writing map file asynchronous (authored by thevinster).
[lld-macho] Make writing map file asynchronous
Dec 15 2021, 4:41 PM
thevinster closed D115416: [lld-macho] Make writing map file asynchronous.
Dec 15 2021, 4:41 PM · Restricted Project, Restricted Project
thevinster updated the diff for D115416: [lld-macho] Make writing map file asynchronous.

Don't enqueue if null osec

Dec 15 2021, 4:36 PM · Restricted Project, Restricted Project
thevinster retitled D115416: [lld-macho] Make writing map file asynchronous from [lld-macho] Prevent writing map files on the critical path to [lld-macho] Make writing map file asynchronous.
Dec 15 2021, 4:35 PM · Restricted Project, Restricted Project

Dec 14 2021

thevinster updated the diff for D115416: [lld-macho] Make writing map file asynchronous.

Address feedback + use option 2

Dec 14 2021, 3:16 PM · Restricted Project, Restricted Project

Dec 13 2021

thevinster added inline comments to D115416: [lld-macho] Make writing map file asynchronous.
Dec 13 2021, 9:23 PM · Restricted Project, Restricted Project
thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.
Dec 13 2021, 6:36 PM · Restricted Project, Restricted Project
thevinster planned changes to D115416: [lld-macho] Make writing map file asynchronous.
Dec 13 2021, 6:27 PM · Restricted Project, Restricted Project
thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.

Not meant as a commit for submitting, but wanted to poll the audience on what pattern we'd like to use with threadPool. We essentially have three options here:

  • Option 1 - continue using parallelForEach methods
  • Option 2 - Re-use our declared class level threadPool, but areas where we only want to wait on a subset of threads, we have to re-implement the fork-join model by declaring some vector and waiting on those threads that are pushed back to the vector (See L1040-1050)
  • Option 3 - Declare class-level and method-level threadPools. Simpifies the for loop from Option 2, but might be harder to manage since we now have to control N number of threadPools with a potential of N different concurrency settings. (See L1103-1115)
Dec 13 2021, 6:26 PM · Restricted Project, Restricted Project
thevinster updated the diff for D115416: [lld-macho] Make writing map file asynchronous.

Show two different ways of using threadPool

Dec 13 2021, 6:20 PM · Restricted Project, Restricted Project
thevinster planned changes to D115416: [lld-macho] Make writing map file asynchronous.
Dec 13 2021, 11:15 AM · Restricted Project, Restricted Project
thevinster added inline comments to D115416: [lld-macho] Make writing map file asynchronous.
Dec 13 2021, 11:04 AM · Restricted Project, Restricted Project

Dec 12 2021

thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.

Looks cool, but have you tried optimizing the map writing code a bit first? IIRC it's fairly unoptimized.

Dec 12 2021, 11:37 PM · Restricted Project, Restricted Project

Dec 10 2021

thevinster updated the summary of D115416: [lld-macho] Make writing map file asynchronous.
Dec 10 2021, 6:31 PM · Restricted Project, Restricted Project
thevinster updated the diff for D115416: [lld-macho] Make writing map file asynchronous.

Use threadpool

Dec 10 2021, 6:30 PM · Restricted Project, Restricted Project
thevinster planned changes to D115416: [lld-macho] Make writing map file asynchronous.
Dec 10 2021, 11:17 AM · Restricted Project, Restricted Project

Dec 9 2021

thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.

I'll admit your suggestion is clever, but I think it sacrifices on readability. How would something like this be modeled in the parallelForEach statement?

std::async(func1);
func2();
std::async(func3);
func4();
Dec 9 2021, 11:25 AM · Restricted Project, Restricted Project
thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.

Do you have a source for this?

Dec 9 2021, 10:43 AM · Restricted Project, Restricted Project

Dec 8 2021

thevinster added a comment to D115416: [lld-macho] Make writing map file asynchronous.

I'm assuming writeOutputFile takes longer than writeMapAsync anyway

Dec 8 2021, 8:53 PM · Restricted Project, Restricted Project