Page MenuHomePhabricator

int3 (Jez Ng)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 22 2020, 2:12 PM (174 w, 3 d)

Recent Activity

Thu, May 18

int3 added inline comments to D150697: [lld-macho] Remove linking bitcode support.
Thu, May 18, 11:25 AM · Restricted Project, Restricted Project, Restricted Project

Wed, May 17

int3 accepted D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

lgtm

Wed, May 17, 10:00 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
int3 added inline comments to D150544: [lld-macho] Remove partially supported 32-bit ARM arch.
Wed, May 17, 9:52 AM · Restricted Project, Restricted Project, Restricted Project

Mon, May 15

int3 added inline comments to D150544: [lld-macho] Remove partially supported 32-bit ARM arch.
Mon, May 15, 10:14 AM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D150544: [lld-macho] Remove partially supported 32-bit ARM arch.

Thanks :D

Mon, May 15, 10:12 AM · Restricted Project, Restricted Project, Restricted Project

Tue, May 2

int3 accepted D149630: [ThinLTO] Loosen up variable importing correctness checks.

Thank you! :D

Tue, May 2, 7:37 AM · Restricted Project, Restricted Project

Apr 20 2023

int3 committed rG9df7daa5ef91: [lld-macho] Tweak the names we give to archive members (authored by int3).
[lld-macho] Tweak the names we give to archive members
Apr 20 2023, 2:25 PM · Restricted Project
int3 closed D148828: [lld-macho] Tweak the names we give to archive members.
Apr 20 2023, 2:24 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D148828: [lld-macho] Tweak the names we give to archive members.

I agree it's more readable but following ld64 is more useful for us 😅

Apr 20 2023, 1:31 PM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D148828: [lld-macho] Tweak the names we give to archive members.
Apr 20 2023, 11:56 AM · Restricted Project, Restricted Project, Restricted Project

Apr 10 2023

int3 added inline comments to D147960: [lld-macho] Cache discovered dylib paths.
Apr 10 2023, 6:29 PM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D147960: [lld-macho] Cache discovered dylib paths.

Thanks for looking into this!

Apr 10 2023, 4:15 PM · Restricted Project, Restricted Project, Restricted Project

Apr 5 2023

int3 added inline comments to D147663: [lld-macho] Add new -reproducible flag.
Apr 5 2023, 6:45 PM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D147663: [lld-macho] Add new -reproducible flag.

Thanks!

Apr 5 2023, 6:43 PM · Restricted Project, Restricted Project, Restricted Project
int3 committed rG46f7a2ad1c3c: [lld-macho][nfc] std::find_if -> llvm::find_if (authored by int3).
[lld-macho][nfc] std::find_if -> llvm::find_if
Apr 5 2023, 4:51 AM · Restricted Project
int3 committed rGc4d9df9f78f3: [lld-macho][nfc] Clean up a bunch of clang-tidy issues (authored by int3).
[lld-macho][nfc] Clean up a bunch of clang-tidy issues
Apr 5 2023, 4:51 AM · Restricted Project

Apr 4 2023

int3 committed rGf7bc79c1c71f: [lld-macho] Check if DWARF offset is too large for compact unwind (authored by int3).
[lld-macho] Check if DWARF offset is too large for compact unwind
Apr 4 2023, 6:30 AM · Restricted Project
int3 closed D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.
Apr 4 2023, 6:30 AM · Restricted Project, Restricted Project, Restricted Project
int3 updated the summary of D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.
Apr 4 2023, 6:25 AM · Restricted Project, Restricted Project, Restricted Project
int3 updated the diff for D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.

update

Apr 4 2023, 6:24 AM · Restricted Project, Restricted Project, Restricted Project
int3 added inline comments to D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.
Apr 4 2023, 6:20 AM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.

I think both linkers expect the EH frame section to be a contiguous array of CFI entries. Using the .space 1000 thing causes ld64 to crash and LLD to silently drop all subsequent EH frames

Apr 4 2023, 5:57 AM · Restricted Project, Restricted Project, Restricted Project

Apr 3 2023

int3 requested review of D147505: [lld-macho] Check if DWARF offset is too large for compact unwind.
Apr 3 2023, 11:32 PM · Restricted Project, Restricted Project, Restricted Project

Mar 31 2023

int3 committed rG855d3cb8e3e8: [lld-macho] Gate category checking behind --check-category-conflicts (authored by int3).
[lld-macho] Gate category checking behind --check-category-conflicts
Mar 31 2023, 10:21 AM · Restricted Project
int3 closed D147341: [lld-macho] Gate category checking behind --check-category-conflicts.
Mar 31 2023, 10:20 AM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D147341: [lld-macho] Gate category checking behind --check-category-conflicts.
Mar 31 2023, 10:17 AM · Restricted Project, Restricted Project, Restricted Project

Mar 30 2023

int3 committed rG3c787d5a254e: [lld-macho] Don't emit spurious dupe method warnings for +load methods (authored by int3).
[lld-macho] Don't emit spurious dupe method warnings for +load methods
Mar 30 2023, 11:34 AM · Restricted Project
int3 committed rG96d087512ea7: [lld-macho][objc] Don't crash when rodata isn't statically linked (authored by int3).
[lld-macho][objc] Don't crash when rodata isn't statically linked
Mar 30 2023, 11:34 AM · Restricted Project
int3 committed rG453102a028a2: [lld-macho][re-land] Warn on method name collisions from category definitions (authored by int3).
[lld-macho][re-land] Warn on method name collisions from category definitions
Mar 30 2023, 11:34 AM · Restricted Project
int3 closed D147230: [lld-macho] Don't emit spurious dupe method warnings for +load methods.
Mar 30 2023, 11:34 AM · Restricted Project, Restricted Project, Restricted Project
int3 closed D147229: [lld-macho][objc] Don't crash when rodata isn't statically linked.
Mar 30 2023, 11:34 AM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D147229: [lld-macho][objc] Don't crash when rodata isn't statically linked.

Wanna stamp D147230 too? Otherwise you'll see spurious warnings when I land this :p

Mar 30 2023, 11:03 AM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D147229: [lld-macho][objc] Don't crash when rodata isn't statically linked.

P.S: Wait, this should be stacked on top of the previous patch, yes? (the one that supported emitting the warnings?)

Mar 30 2023, 7:53 AM · Restricted Project, Restricted Project, Restricted Project
int3 updated subscribers of D147229: [lld-macho][objc] Don't crash when rodata isn't statically linked.

@oontvoo wanna test this on the previous crashes you were seeing before I land it?

Mar 30 2023, 6:13 AM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D147230: [lld-macho] Don't emit spurious dupe method warnings for +load methods.
Mar 30 2023, 6:12 AM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D147229: [lld-macho][objc] Don't crash when rodata isn't statically linked.
Mar 30 2023, 6:12 AM · Restricted Project, Restricted Project, Restricted Project

Mar 29 2023

int3 added a comment to D142916: [lld-macho] Warn on method name collisions from category definitions.

JFYI I have a repro of this -- will put up the fix soon (I found other issues along the way)

Mar 29 2023, 12:19 PM · Restricted Project, Restricted Project, Restricted Project

Mar 27 2023

int3 committed rG4f086218ddc3: [lld-macho] Support re-exports of individual symbols (authored by int3).
[lld-macho] Support re-exports of individual symbols
Mar 27 2023, 1:40 PM · Restricted Project
int3 closed D144153: [lld-macho] Support re-exports of individual symbols.
Mar 27 2023, 1:40 PM · Restricted Project, Restricted Project, Restricted Project
int3 updated the diff for D144153: [lld-macho] Support re-exports of individual symbols.

move logic to handleExplicitExports; also add test to show -unexported_symbol has no effect on dylibs

Mar 27 2023, 1:36 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144153: [lld-macho] Support re-exports of individual symbols.

I don't really think a test for that is super necessary, the -exported_symbols_list is simply command-line sugar over -exported_symbol, and I don't think every variation of how -exported_symbol gets used needs to have a corresponding _list test...

Mar 27 2023, 12:53 PM · Restricted Project, Restricted Project, Restricted Project

Mar 23 2023

int3 added a comment to D137217: [LTO][COFF] Use bitcode file names in lto native object file names..

I'm trying to add similar support to lld-macho, hence the question :)

Mar 23 2023, 3:51 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project
int3 added inline comments to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..
Mar 23 2023, 9:09 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 10 2023

int3 committed rGdd78e7334fc5: [lld-macho] Don't include zero-size private label symbols in map file (authored by int3).
[lld-macho] Don't include zero-size private label symbols in map file
Mar 10 2023, 10:40 PM · Restricted Project
int3 committed rGbb69a66ced27: [lld-macho] Coalesce local symbol aliases along with their aliased weak def (authored by int3).
[lld-macho] Coalesce local symbol aliases along with their aliased weak def
Mar 10 2023, 10:40 PM · Restricted Project
int3 committed rG5b21395cc242: [lld-macho] Print archive names in linker map (authored by int3).
[lld-macho] Print archive names in linker map
Mar 10 2023, 10:40 PM · Restricted Project
int3 closed D145654: [lld-macho] Don't include zero-size private label symbols in map file.
Mar 10 2023, 10:40 PM · Restricted Project, Restricted Project, Restricted Project
int3 closed D145623: [lld-macho] Print archive names in linker map.
Mar 10 2023, 10:40 PM · Restricted Project, Restricted Project, Restricted Project
int3 closed D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.
Mar 10 2023, 10:40 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144589: [lld-macho] Don't emit symbols into the symtab multiple times.

Turns out D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def is a massive perf win because the old 'solution' was actually a perf regression... heh

Mar 10 2023, 10:39 PM · Restricted Project, Restricted Project, Restricted Project
int3 updated the diff for D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.

update commit message with perf numbers

Mar 10 2023, 10:38 PM · Restricted Project, Restricted Project, Restricted Project
int3 committed rG015c43178f9d: [lld] Pass random.randint stop parameter as int. (authored by jacek).
[lld] Pass random.randint stop parameter as int.
Mar 10 2023, 6:58 PM · Restricted Project
int3 closed D145826: [lld] Pass random.randint stop parameter as int..
Mar 10 2023, 6:58 PM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D145826: [lld] Pass random.randint stop parameter as int..

Thanks!

Mar 10 2023, 1:27 PM · Restricted Project, Restricted Project, Restricted Project

Mar 9 2023

int3 committed rG8be84e1e3112: [LTO] Add debug logging for module ID <-> path mapping (authored by int3).
[LTO] Add debug logging for module ID <-> path mapping
Mar 9 2023, 1:26 PM · Restricted Project, Restricted Project
int3 closed D145541: [LTO] Add debug logging for module ID <-> path mapping.
Mar 9 2023, 1:26 PM · Restricted Project, Restricted Project
int3 updated the diff for D145541: [LTO] Add debug logging for module ID <-> path mapping.

address comment

Mar 9 2023, 1:13 PM · Restricted Project, Restricted Project
int3 updated the diff for D145623: [lld-macho] Print archive names in linker map.

make static

Mar 9 2023, 1:09 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D145654: [lld-macho] Don't include zero-size private label symbols in map file.

Oh, I think I know what is happening -- this diff in my local repo is rebased upon D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def, which switches up the order of the symbols. I will land them all EOW when I have had a chance to run benchmarks on the other diff

Mar 9 2023, 12:13 PM · Restricted Project, Restricted Project, Restricted Project

Mar 8 2023

int3 updated the diff for D145654: [lld-macho] Don't include zero-size private label symbols in map file.

add comments

Mar 8 2023, 11:29 PM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D145654: [lld-macho] Don't include zero-size private label symbols in map file.
Mar 8 2023, 10:42 PM · Restricted Project, Restricted Project, Restricted Project
int3 updated the diff for D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.

fix double-unwindEntry assertion

Mar 8 2023, 10:35 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D142916: [lld-macho] Warn on method name collisions from category definitions.

Reverted. A repro would be helpful!

Mar 8 2023, 3:59 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a reverting change for rGef122753db7f: [lld-macho] Warn on method name collisions from category definitions: rGecad968f4a51: Revert "[lld-macho] Warn on method name collisions from category definitions".
Mar 8 2023, 3:58 PM · Restricted Project
int3 committed rGecad968f4a51: Revert "[lld-macho] Warn on method name collisions from category definitions" (authored by int3).
Revert "[lld-macho] Warn on method name collisions from category definitions"
Mar 8 2023, 3:58 PM · Restricted Project
int3 added a reverting change for D142916: [lld-macho] Warn on method name collisions from category definitions: rGecad968f4a51: Revert "[lld-macho] Warn on method name collisions from category definitions".
Mar 8 2023, 3:58 PM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D145623: [lld-macho] Print archive names in linker map.
Mar 8 2023, 3:50 PM · Restricted Project, Restricted Project, Restricted Project

Mar 7 2023

int3 added reviewers for D145541: [LTO] Add debug logging for module ID <-> path mapping: MaskRay, lebedev.ri, kyulee.
Mar 7 2023, 8:54 PM · Restricted Project, Restricted Project
int3 requested review of D145541: [LTO] Add debug logging for module ID <-> path mapping.
Mar 7 2023, 8:52 PM · Restricted Project, Restricted Project
int3 committed rGdd4a9c463b35: [lld-macho][nfc] Convert more alignTo() to alignToPowerOf2() (authored by int3).
[lld-macho][nfc] Convert more alignTo() to alignToPowerOf2()
Mar 7 2023, 5:00 PM · Restricted Project
int3 closed D145261: [lld-macho][nfc] Convert more alignTo() to alignToPowerOf2().
Mar 7 2023, 4:59 PM · Restricted Project, Restricted Project, Restricted Project
int3 updated the diff for D145261: [lld-macho][nfc] Convert more alignTo() to alignToPowerOf2().

clang-format

Mar 7 2023, 4:27 PM · Restricted Project, Restricted Project, Restricted Project
int3 committed rGef122753db7f: [lld-macho] Warn on method name collisions from category definitions (authored by int3).
[lld-macho] Warn on method name collisions from category definitions
Mar 7 2023, 2:50 PM · Restricted Project
int3 closed D142916: [lld-macho] Warn on method name collisions from category definitions.
Mar 7 2023, 2:49 PM · Restricted Project, Restricted Project, Restricted Project
int3 updated the summary of D142916: [lld-macho] Warn on method name collisions from category definitions.
Mar 7 2023, 2:35 PM · Restricted Project, Restricted Project, Restricted Project

Mar 6 2023

int3 updated the diff for D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.

update

Mar 6 2023, 6:39 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144589: [lld-macho] Don't emit symbols into the symtab multiple times.

As promised: D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def

Mar 6 2023, 6:05 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.

TODO: add tests for the non-subsections-via-symbols case

Mar 6 2023, 6:04 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a reviewer for D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def: lgrey.
Mar 6 2023, 6:02 PM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D145455: [lld-macho] Coalesce local symbol aliases along with their aliased weak def.
Mar 6 2023, 6:01 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

With a goal of simplicity, I think we should just go back to the earlier proposal: Clang emits all functions with a personality other than the 3 canonical personalities as DWARF unwind ONLY. Agreed we can have a flag to opt-into compact unwind here, if a user knows it'll be ok in their build.

Mar 6 2023, 4:41 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

So in other words for case #1, we'd end up with one "unused" CU slot.

Mar 6 2023, 1:56 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 3 2023

int3 added inline comments to D145268: [lld-macho] Fix default LTO triple.
Mar 3 2023, 1:41 PM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D145273: [lld-macho] Avoid running LTO pipeline for no files.

Thanks!! I think we should follow LLD-ELF whenever reasonable/possible, so I like this better

Mar 3 2023, 1:40 PM · Restricted Project, Restricted Project, Restricted Project
int3 accepted D145263: [lld-macho] Remove duplicate minimum version info.

Thanks Keith!

Mar 3 2023, 1:12 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D145268: [lld-macho] Fix default LTO triple.

Huh, I'm surprised that setting -object_path_lto has a functional difference; I thought it was only to make debugging the intermediate object files easier. Did you figure out why?

Mar 3 2023, 12:46 PM · Restricted Project, Restricted Project, Restricted Project
int3 added inline comments to D145263: [lld-macho] Remove duplicate minimum version info.
Mar 3 2023, 12:39 PM · Restricted Project, Restricted Project, Restricted Project
int3 requested review of D145261: [lld-macho][nfc] Convert more alignTo() to alignToPowerOf2().
Mar 3 2023, 11:58 AM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144589: [lld-macho] Don't emit symbols into the symtab multiple times.

Yeah sorry been a bit swamped but I'll try to put up something by Monday. Basically my plan is to sort the symbols such that weak defs appear after all other definitions, so that when we do weak def coalescing we can bring along all the other local symbols as well. I think it should work, just a matter of how messy the implementation is...

Mar 3 2023, 10:25 AM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D139552: [NFC] Optimize vector usage in lld.

Just noticed I'd messed up the author attribution in the commit. Sorry ):

Mar 3 2023, 9:51 AM · Restricted Project, Restricted Project, lld, Restricted Project
int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

Oops, I'd glossed over that in the commit message. (Also, wow, that is a *long* bug discussion.)

Mar 3 2023, 9:45 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
int3 accepted D145200: [lld-macho] Ignore -debug_variant flag.
Mar 3 2023, 8:47 AM · Restricted Project, Restricted Project, Restricted Project

Mar 2 2023

int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

I'm also curious about the motivation here; this wouldn't be the most trivial linker change, especially if we are trying not to regress perf. Moreover, ld64 doesn't do this; I'm not even sure it has any flags that let it support more than 3 personalities. Is it just a linker UX thing?

Mar 2 2023, 2:05 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

For gxx_personality_v0 and objc_personality_v0 (but not __gcc_personality_v0), emit only compact unwind (or only DWARF where compact-unwind isn't possible) for each function -- not both. (This saves object-file size/build time for the most common languages).

Mar 2 2023, 1:32 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 1 2023

int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

One issue is that we need to emit ONLY dwarf-unwind for those functions which use nonstandard personalities, while femit-dwarf-unwind enables emitting both compact-unwind and dwarf unwind.

Mar 1 2023, 7:46 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Feb 28 2023

int3 added a comment to D144999: [Clang][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs..

Why not let the end user decide whether to enable DWARF unwind by passing -femit-dwarf-unwind?

Feb 28 2023, 1:09 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Feb 23 2023

int3 added inline comments to D144596: [lld] Support separate native object file path in --thinlto-prefix-replace.
Feb 23 2023, 1:26 PM · Restricted Project, Restricted Project, Restricted Project
int3 added inline comments to D144596: [lld] Support separate native object file path in --thinlto-prefix-replace.
Feb 23 2023, 1:17 PM · Restricted Project, Restricted Project, Restricted Project
int3 added a comment to D144589: [lld-macho] Don't emit symbols into the symtab multiple times.

1.5% seems kinda significant. I wonder if I should rethink my approach in D139069... let me try some things

Feb 23 2023, 12:59 PM · Restricted Project, Restricted Project, Restricted Project
int3 committed rG865c2b0d153f: [MC][nfc] Don't use a value after it has been std::move()'d (authored by int3).
[MC][nfc] Don't use a value after it has been std::move()'d
Feb 23 2023, 12:15 PM · Restricted Project, Restricted Project