Page MenuHomePhabricator
Feed Advanced Search

Dec 15 2021

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
thevinster published D115416: [lld-macho] Make writing map file asynchronous for review.
Dec 8 2021, 6:33 PM · Restricted Project, Restricted Project

Nov 30 2021

thevinster added inline comments to D114842: [lld-macho] Remove old macho darwin lld.
Nov 30 2021, 10:46 PM · Restricted Project, Restricted Project, Restricted Project
thevinster committed rGb83a4222b1ab: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table (authored by thevinster).
[ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table
Nov 30 2021, 4:16 PM
thevinster closed D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.
Nov 30 2021, 4:16 PM · Restricted Project
thevinster updated the diff for D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.

Addressing nits

Nov 30 2021, 3:07 PM · Restricted Project
thevinster added inline comments to D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.
Nov 30 2021, 3:03 PM · Restricted Project

Nov 23 2021

thevinster updated the diff for D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.

format...

Nov 23 2021, 8:24 PM · Restricted Project
thevinster updated the diff for D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.

Update to use sizeof() instead of hard-coded number

Nov 23 2021, 8:23 PM · Restricted Project
thevinster added inline comments to D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table.
Nov 23 2021, 8:22 PM · Restricted Project
thevinster accepted D114397: [lld-macho] Mark dylib symbols coming from -weak_framework as weak-ref.

Sweet! LG

Nov 23 2021, 7:44 PM · Restricted Project, Restricted Project
thevinster added inline comments to D114397: [lld-macho] Mark dylib symbols coming from -weak_framework as weak-ref.
Nov 23 2021, 6:17 PM · Restricted Project, Restricted Project
thevinster added a comment to D114397: [lld-macho] Mark dylib symbols coming from -weak_framework as weak-ref.

Probably should look at the failing tests. Seems to be related to your changes. [EDIT] - looks like it's fixed but my comment below still stands.

Nov 23 2021, 1:35 PM · Restricted Project, Restricted Project

Nov 22 2021

thevinster published D114410: [ObjectYAML/obj2yaml/yaml2obj][MachO] Support indirect symbol table for review.
Nov 22 2021, 8:06 PM · Restricted Project

Nov 19 2021

thevinster added inline comments to D114275: [test][lld-macho] Improve LC_FUNCTION_STARTS test coverage.
Nov 19 2021, 6:55 PM · Restricted Project, Restricted Project

Nov 17 2021

thevinster committed rGadfbb5411b0b: [lld-macho] Add warn flags to enable/disable warnings on -install_name (authored by thevinster).
[lld-macho] Add warn flags to enable/disable warnings on -install_name
Nov 17 2021, 4:18 PM
thevinster closed D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.
Nov 17 2021, 4:18 PM · Restricted Project, Restricted Project
thevinster updated the diff for D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

s/warn-no/no-warn

Nov 17 2021, 3:15 PM · Restricted Project, Restricted Project
thevinster retitled D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name from [lld-macho] Avoid warning on -install-name if -dylib is not provided to [lld-macho] Add warn flags to enable/disable warnings on -install_name.
Nov 17 2021, 3:13 PM · Restricted Project, Restricted Project
thevinster added a comment to D114017: [lld-macho][nfc] Factor-out NFC changes from main __eh_frame diff.

Minor nits and stuff. Overall, generally looks good

Nov 17 2021, 11:25 AM · Restricted Project, Restricted Project
thevinster added inline comments to D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.
Nov 17 2021, 11:04 AM · Restricted Project, Restricted Project

Nov 16 2021

thevinster updated the summary of D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.
Nov 16 2021, 11:58 PM · Restricted Project, Restricted Project
thevinster updated the diff for D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

Include both pos and neg form of the warning, default to neg

Nov 16 2021, 11:57 PM · Restricted Project, Restricted Project
thevinster added a comment to D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

but I'd probably also add a --warn-dylib-install-name to override the no form

Nov 16 2021, 9:24 AM · Restricted Project, Restricted Project

Nov 15 2021

thevinster added a comment to D113241: [lld-macho][nfc] rename parsed-section types & variables.

Gucci.

👜 ???

Nov 15 2021, 12:42 PM · Restricted Project, Restricted Project
thevinster accepted D113241: [lld-macho][nfc] rename parsed-section types & variables.

Gucci.

Nov 15 2021, 12:34 PM · Restricted Project, Restricted Project
thevinster retitled D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name from [lld-macho] Introduce LLD custom warnings with --warn-strict to [lld-macho] Avoid warning on -install-name if -dylib is not provided.
Nov 15 2021, 12:25 PM · Restricted Project, Restricted Project
thevinster updated the diff for D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

Use dedicated warning instead of umbrella

Nov 15 2021, 12:22 PM · Restricted Project, Restricted Project
thevinster added inline comments to D113738: [LTO] Allow passing -Os/-Oz as the optimization level.
Nov 15 2021, 12:00 AM · Restricted Project, Restricted Project, Restricted Project

Nov 11 2021

thevinster added inline comments to D113167: [lld-macho]Allow exporting weak_def_can_be_hidden(AKA "autohide") symbols.
Nov 11 2021, 10:30 AM · Restricted Project, Restricted Project

Nov 10 2021

thevinster accepted D113541: [lld-macho] Fix trailing slash in oso_prefix.

Nice find!

Nov 10 2021, 7:57 PM · Restricted Project, Restricted Project
thevinster retitled D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name from [lld-macho] Do not warn on install_name for bundles to [lld-macho] Introduce LLD custom warnings with --warn-strict.
Nov 10 2021, 4:45 PM · Restricted Project, Restricted Project
thevinster updated the diff for D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

Introduce --warn-strict flag to enable custom warnings for LLD

Nov 10 2021, 4:41 PM · Restricted Project, Restricted Project

Nov 9 2021

thevinster added a comment to D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name.

Maybe we should instead have a flag to disable the warning?

Nov 9 2021, 6:45 PM · Restricted Project, Restricted Project
thevinster published D113534: [lld-macho] Add warn flags to enable/disable warnings on -install_name for review.
Nov 9 2021, 6:22 PM · Restricted Project, Restricted Project

Nov 7 2021

thevinster added a comment to D113241: [lld-macho][nfc] rename parsed-section types & variables.

OTOH, SegmentCommand is not overloaded, and used only once. Nlist is not overloaded, and isn't even a header but rather an element in a vector.

Nov 7 2021, 1:19 PM · Restricted Project, Restricted Project
thevinster added a comment to D113241: [lld-macho][nfc] rename parsed-section types & variables.

I'm a big fan of the variable names switching from s/subsections/sections, s/subsectionMap/subsections. It's clearer to me that there are layers whereas the original subsections->subsectionMap layer is not as easily decipherable. Section->SectionHeader makes sense to me, but I would like it if we had some consistency, which means also renaming SegmentCommand->SegmentCommandHeader, NList->NListHeader, etc.

Nov 7 2021, 11:55 AM · Restricted Project, Restricted Project

Nov 4 2021

thevinster added a comment to D113130: [llvm-libtool-darwin] Print a warning if object file names are repeated.

I agree with jhenderson@ here. I'm not sure why we want to error on this when it's only warning for cctools libtool. This is a backwards incompatible change for those who want to do a drop in replacement of the tool.

Nov 4 2021, 11:25 PM · Restricted Project
thevinster added a comment to D113127: [NFC][llvm-libtool-darwin] Encapsulate the process of adding a new member in a class.

Title should also be more specific. "Refactor code" is too generic and doesn't say much about what you are introducing here and why it's needed.

Nov 4 2021, 10:40 PM · Restricted Project

Nov 3 2021

thevinster added inline comments to D112977: [lld-macho] Handle weak vs strong case in symbol resolution.
Nov 3 2021, 10:31 PM · Restricted Project, Restricted Project

Oct 27 2021

thevinster committed rGd54360cd3228: [lld-macho] Implement -S (authored by thevinster).
[lld-macho] Implement -S
Oct 27 2021, 5:10 PM
thevinster closed D112594: [lld-macho] Implement -S.
Oct 27 2021, 5:10 PM · Restricted Project, Restricted Project
thevinster updated the diff for D112594: [lld-macho] Implement -S.

nit feedback

Oct 27 2021, 4:26 PM · Restricted Project, Restricted Project
thevinster added inline comments to D112594: [lld-macho] Implement -S.
Oct 27 2021, 4:11 PM · Restricted Project, Restricted Project

Oct 26 2021

thevinster published D112594: [lld-macho] Implement -S for review.
Oct 26 2021, 9:46 PM · Restricted Project, Restricted Project

Oct 25 2021

thevinster added inline comments to D111164: Regenerate LC_CODE_SIGNATURE during llvm-objcopy operations.
Oct 25 2021, 1:14 AM · Restricted Project, Restricted Project, Restricted Project

Oct 22 2021

thevinster accepted D112291: [lld-macho] Implement -oso_prefix.
Oct 22 2021, 12:20 PM · Restricted Project, Restricted Project
thevinster added inline comments to D112291: [lld-macho] Implement -oso_prefix.
Oct 22 2021, 1:09 AM · Restricted Project, Restricted Project

Oct 8 2021

thevinster added inline comments to D110904: [lld-macho] Downgrade missing -arch initially to error..
Oct 8 2021, 9:46 PM · Restricted Project, Restricted Project

Oct 7 2021

thevinster accepted D111361: [lld][test] Remove /usr/local/lib test requirement.
Oct 7 2021, 3:15 PM · Restricted Project, Restricted Project
thevinster accepted D111268: [lld][test] Fix darwin REQUIRES (NFC).
Oct 7 2021, 11:28 AM · Restricted Project, Restricted Project

Oct 6 2021

thevinster added inline comments to D111268: [lld][test] Fix darwin REQUIRES (NFC).
Oct 6 2021, 11:48 PM · Restricted Project, Restricted Project

Sep 24 2021

thevinster added inline comments to D110464: [lld-macho][nfc] Added some notes on deliberate differences btw LLD vs LD64.
Sep 24 2021, 9:39 PM · Restricted Project, Restricted Project

Sep 20 2021

thevinster added inline comments to D110018: [lld-macho] Speed up markLive().
Sep 20 2021, 12:11 AM · Restricted Project, Restricted Project, Restricted Project

Sep 15 2021

thevinster added inline comments to D109803: Extract LC_CODE_SIGNATURE related implementation out of LLD.
Sep 15 2021, 12:15 PM · Restricted Project, Restricted Project
thevinster added inline comments to D109840: Add MachO signature verification test.
Sep 15 2021, 11:57 AM · Restricted Project, Restricted Project

Sep 13 2021

thevinster added a comment to D105431: [LLD] Fix a padding bug in the old Mach-O backend in LLD..

@sheredom Following up on here. Any plans to migrate off the old MachO port over to the new port? I would also love to learn more about what some of the problems are for migrating over to the new MachO port. Part of doing this is also out of selfish reasons as it's been messing up with my IDE and harder for newer devs to ramp up on the new LLD for Mach-O.

Sep 13 2021, 6:18 PM · Restricted Project, Restricted Project, lld

Sep 8 2021

thevinster added a comment to D107533: [lld-macho] Handle encoding personalities of same names but different kinds.

I only reviewed the mechanical changes as I'm not too familiar with the functional changes. I'll let someone more experienced comment on that.

Sep 8 2021, 10:25 PM · Restricted Project, Restricted Project

Sep 4 2021

thevinster accepted D109274: [lld-macho] Initialize LTO backend with diagnostic handler.

Thanks! This seems to check out with the stack trace line that I was seeing.

Sep 4 2021, 12:49 PM · Restricted Project, Restricted Project

Aug 28 2021

thevinster added inline comments to D108780: [lld-macho] Refactor archive loading.
Aug 28 2021, 4:32 PM · Restricted Project, Restricted Project

Aug 16 2021

thevinster committed rG08d55c5c0156: [lld-macho] Refactor parseSections to avoid creating isec on LLVM segments (authored by thevinster).
[lld-macho] Refactor parseSections to avoid creating isec on LLVM segments
Aug 16 2021, 6:48 PM
thevinster closed D108167: [lld-macho] Refactor parseSections to avoid creating isec on LLVM segments.
Aug 16 2021, 6:48 PM · Restricted Project, Restricted Project
thevinster updated the diff for D108167: [lld-macho] Refactor parseSections to avoid creating isec on LLVM segments.

Lint

Aug 16 2021, 6:02 PM · Restricted Project, Restricted Project
thevinster added inline comments to D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms.
Aug 16 2021, 3:24 PM · Restricted Project, Restricted Project
thevinster published D108167: [lld-macho] Refactor parseSections to avoid creating isec on LLVM segments for review.
Aug 16 2021, 3:23 PM · Restricted Project, Restricted Project
thevinster committed rG15dc93e61c21: [lld-macho] Ignore LLVM segments to prevent duplicate syms (authored by thevinster).
[lld-macho] Ignore LLVM segments to prevent duplicate syms
Aug 16 2021, 12:42 PM
thevinster closed D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms.
Aug 16 2021, 12:41 PM · Restricted Project, Restricted Project
thevinster updated the summary of D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms.
Aug 16 2021, 12:39 PM · Restricted Project, Restricted Project
thevinster updated the diff for D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms.

Fix minor nits on tests

Aug 16 2021, 11:49 AM · Restricted Project, Restricted Project
thevinster updated the diff for D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms.

Address feedback

Aug 16 2021, 9:46 AM · Restricted Project, Restricted Project

Aug 12 2021

thevinster published D108016: [lld-macho] Ignore LLVM segments to prevent duplicate syms for review.
Aug 12 2021, 11:20 PM · Restricted Project, Restricted Project

Jul 26 2021

thevinster added a comment to D106213: [lld-macho] Enable copy-on-write for input buffers.

Looks pretty good to me, other than the comment about the casting.

Jul 26 2021, 2:02 PM · Restricted Project, Restricted Project, Restricted Project

Jul 20 2021

thevinster committed rG33ab995617d0: Recommit "[lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes" (authored by thevinster).
Recommit "[lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes"
Jul 20 2021, 1:46 PM
thevinster closed D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.
Jul 20 2021, 1:46 PM · Restricted Project, Restricted Project
thevinster updated the diff for D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

use for range loop

Jul 20 2021, 10:50 AM · Restricted Project, Restricted Project
thevinster added a comment to D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

Fix looks good but can we figure out how it was happening in the first place? I would guess that we were running optimizeOpcodes on an empty vector, but I'm not sure how that would happen in the given test...

Jul 20 2021, 10:49 AM · Restricted Project, Restricted Project

Jul 19 2021

thevinster retitled D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes from Recommit "[lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes" to [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.
Jul 19 2021, 7:48 PM · Restricted Project, Restricted Project
thevinster retitled D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes from [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes to Recommit "[lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes".
Jul 19 2021, 7:47 PM · Restricted Project, Restricted Project
thevinster updated the diff for D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

Fixing ASAN

Jul 19 2021, 7:43 PM · Restricted Project, Restricted Project
thevinster committed rG321b2bef0985: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes (authored by thevinster).
[lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes
Jul 19 2021, 4:19 PM
thevinster closed D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.
Jul 19 2021, 4:19 PM · Restricted Project, Restricted Project
thevinster updated the diff for D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

Add comments for clarity and address minor comments

Jul 19 2021, 3:24 PM · Restricted Project, Restricted Project
thevinster added a comment to D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

one nit about the commit title / description: there are lots of opcodes with immediates, I think it would be clearer to mention DO_BIND_ADD_ADDR_IMM_SCALED specifically in the title. Also "Implement pass 3 of bind opcodes from ld64" should be followed by a short description of what pass 3 does -- we shouldn't expect future readers to have to look it up :)

Jul 19 2021, 2:54 PM · Restricted Project, Restricted Project
thevinster retitled D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes from [lld-macho] Use immediate encodings for bind opcodes to [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.
Jul 19 2021, 2:50 PM · Restricted Project, Restricted Project
thevinster updated the diff for D106128: [lld-macho] Use DO_BIND_ADD_ADDR_IMM_SCALED for bind opcodes.

Address more comments

Jul 19 2021, 2:15 AM · Restricted Project, Restricted Project