Page MenuHomePhabricator

inglorion (Bob Haarman)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 15 2015, 10:55 AM (192 w, 1 h)

Recent Activity

Fri, Aug 16

inglorion updated the diff for D65964: [lld-link] implement -lto-obj-path.

changed flag name to -lto-obj-path:

Fri, Aug 16, 4:22 PM · Restricted Project

Mon, Aug 12

inglorion closed D66037: Remove builder clang-with-thin-lto-windows.

Landed in r368612 / d47622.

Mon, Aug 12, 6:07 PM
inglorion committed rG6e18c7f8d4b5: [lld] Remove unnecessary "class Lazy" (authored by inglorion).
[lld] Remove unnecessary "class Lazy"
Mon, Aug 12, 6:03 PM
inglorion committed rL368644: [lld] Remove unnecessary "class Lazy".
[lld] Remove unnecessary "class Lazy"
Mon, Aug 12, 6:03 PM
inglorion added a comment to D65964: [lld-link] implement -lto-obj-path.

'll call the Config field ltoObjPath, same as in the ELF linker.

Mon, Aug 12, 4:50 PM · Restricted Project
inglorion added a comment to D65964: [lld-link] implement -lto-obj-path.

After discussion in person, we decided on -lto-obj-path: similar to the naming in the ELF linker, and we'

Mon, Aug 12, 4:50 PM · Restricted Project
inglorion committed rL368612: Remove builder clang-with-thin-lto-windows.
Remove builder clang-with-thin-lto-windows
Mon, Aug 12, 12:55 PM
inglorion added a comment to D65964: [lld-link] implement -lto-obj-path.

@rnk, what do you think of the name I proposed?

Mon, Aug 12, 11:38 AM · Restricted Project

Fri, Aug 9

inglorion created D66037: Remove builder clang-with-thin-lto-windows.
Fri, Aug 9, 3:49 PM

Thu, Aug 8

inglorion added a comment to D65964: [lld-link] implement -lto-obj-path.

In ELF, the config name is ltoObjPath, and the flag is -plugin-opt=obj-path=

Thu, Aug 8, 4:09 PM · Restricted Project
inglorion created D65964: [lld-link] implement -lto-obj-path.
Thu, Aug 8, 11:33 AM · Restricted Project

Wed, Aug 7

inglorion committed rG885fa02da97a: Revert r367501 "Create unique, but identically-named ELF sections..." (authored by inglorion).
Revert r367501 "Create unique, but identically-named ELF sections..."
Wed, Aug 7, 1:46 PM
inglorion added a reverting change for rGfbc563e2cb6c: Create unique, but identically-named ELF sections for explicitly-sectioned…: rG885fa02da97a: Revert r367501 "Create unique, but identically-named ELF sections...".
Wed, Aug 7, 1:46 PM
inglorion committed rL368204: Revert r367501 "Create unique, but identically-named ELF sections...".
Revert r367501 "Create unique, but identically-named ELF sections..."
Wed, Aug 7, 1:44 PM
inglorion added a comment to D65478: Create unique, but identically-named ELF sections for explicitly-sectioned functions and globals when using -function-sections and -data-sections..

Unfortunately, this causes some problems. It looks like the sections are created with different attributes than the original. This causes problems such as sections being writable when the original was read-only, including https://crbug.com/990942 where that causes program crashes. There is some more discussion on that bug report.

Wed, Aug 7, 1:30 PM · Restricted Project

Thu, Aug 1

inglorion abandoned D65619: [lit] use built-in clear_environment instead of external env command.

Heh, I just missed the revert. @jdenny, feel free to use this as inspiration.

Thu, Aug 1, 4:43 PM · Restricted Project
inglorion created D65619: [lit] use built-in clear_environment instead of external env command.
Thu, Aug 1, 4:31 PM · Restricted Project

Fri, Jul 26

inglorion committed rG6baac18a760d: add 'a' to chmod in llvm-lipo executability tests (authored by inglorion).
add 'a' to chmod in llvm-lipo executability tests
Fri, Jul 26, 11:47 AM
inglorion committed rL367142: add 'a' to chmod in llvm-lipo executability tests.
add 'a' to chmod in llvm-lipo executability tests
Fri, Jul 26, 11:43 AM
inglorion closed D65342: add 'a' to chmod in llvm-lipo executability tests.
Fri, Jul 26, 11:43 AM · Restricted Project
inglorion created D65342: add 'a' to chmod in llvm-lipo executability tests.
Fri, Jul 26, 11:40 AM · Restricted Project
inglorion committed rG51dcb292cc00: [lld-link] diagnose undefined symbols before LTO when possible (authored by inglorion).
[lld-link] diagnose undefined symbols before LTO when possible
Fri, Jul 26, 10:57 AM
inglorion committed rL367136: [lld-link] diagnose undefined symbols before LTO when possible.
[lld-link] diagnose undefined symbols before LTO when possible
Fri, Jul 26, 10:57 AM
inglorion closed D62434: [lld-link] diagnose undefined symbols before LTO when possible.
Fri, Jul 26, 10:57 AM · Restricted Project

Thu, Jul 25

inglorion added inline comments to D62434: [lld-link] diagnose undefined symbols before LTO when possible.
Thu, Jul 25, 8:55 AM · Restricted Project

Jul 19 2019

inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

replaced assert with llvm_unreachable

Jul 19 2019, 2:53 PM · Restricted Project

Jul 18 2019

inglorion added a comment to D62434: [lld-link] diagnose undefined symbols before LTO when possible.

Linking ThinLTO chrome.dll with an undefined symbol:

Jul 18 2019, 2:30 PM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

added comment explaining BitcodeFiles::instances.empty() check

Jul 18 2019, 10:59 AM · Restricted Project
inglorion added inline comments to D62434: [lld-link] diagnose undefined symbols before LTO when possible.
Jul 18 2019, 10:53 AM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

addressed @ruiu's comments

Jul 18 2019, 10:52 AM · Restricted Project

Jul 17 2019

inglorion added a comment to D62434: [lld-link] diagnose undefined symbols before LTO when possible.

The basic idea here is:

Jul 17 2019, 6:27 PM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

don't process bitcode files in resolveRemainindUndefines

Jul 17 2019, 6:27 PM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

removed redundant check

Jul 17 2019, 6:13 PM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

Ready for review now.

Jul 17 2019, 6:05 PM · Restricted Project
inglorion updated the diff for D62434: [lld-link] diagnose undefined symbols before LTO when possible.

rebase

Jul 17 2019, 3:51 PM · Restricted Project

Jul 15 2019

inglorion committed rG492ce8cc8b08: reland "add -fthinlto-index= option to clang-cl" (authored by inglorion).
reland "add -fthinlto-index= option to clang-cl"
Jul 15 2019, 6:37 PM
inglorion committed rL366165: reland "add -fthinlto-index= option to clang-cl".
reland "add -fthinlto-index= option to clang-cl"
Jul 15 2019, 6:36 PM
inglorion committed rG199f8721e6a1: add -fthinlto-index= option to clang-cl (authored by inglorion).
add -fthinlto-index= option to clang-cl
Jul 15 2019, 3:54 PM
inglorion committed rL366146: add -fthinlto-index= option to clang-cl.
add -fthinlto-index= option to clang-cl
Jul 15 2019, 3:50 PM
inglorion closed D64458: add -fthinlto-index= option to clang-cl.
Jul 15 2019, 3:50 PM · Restricted Project, Restricted Project
inglorion updated the diff for D64458: add -fthinlto-index= option to clang-cl.

Simplified after rebasing on top of r366127.

Jul 15 2019, 2:10 PM · Restricted Project, Restricted Project
inglorion committed rG794346460afa: [clang] allow -fthinlto-index= without -x ir (authored by inglorion).
[clang] allow -fthinlto-index= without -x ir
Jul 15 2019, 1:54 PM
inglorion committed rL366127: [clang] allow -fthinlto-index= without -x ir.
[clang] allow -fthinlto-index= without -x ir
Jul 15 2019, 1:53 PM
inglorion closed D64610: [clang] allow -fthinlto-index= without -x ir.
Jul 15 2019, 1:53 PM · Restricted Project, Restricted Project
inglorion updated the diff for D64610: [clang] allow -fthinlto-index= without -x ir.

Fix typo pointed out by MaskRay (thanks!)

Jul 15 2019, 1:47 PM · Restricted Project, Restricted Project

Jul 11 2019

inglorion added a comment to D64610: [clang] allow -fthinlto-index= without -x ir.

This was suggested on D64458.

Jul 11 2019, 6:04 PM · Restricted Project, Restricted Project
inglorion created D64610: [clang] allow -fthinlto-index= without -x ir.
Jul 11 2019, 5:58 PM · Restricted Project, Restricted Project
inglorion committed rG5011b832373f: [lld-link] implement -thinlto-{prefix,object-suffix}-replace (authored by inglorion).
[lld-link] implement -thinlto-{prefix,object-suffix}-replace
Jul 11 2019, 11:51 AM
inglorion committed rL365807: [lld-link] implement -thinlto-{prefix,object-suffix}-replace.
[lld-link] implement -thinlto-{prefix,object-suffix}-replace
Jul 11 2019, 11:51 AM
inglorion closed D64542: [lld-link] implement -thinlto-{prefix,object-suffix}-replace.
Jul 11 2019, 11:51 AM · Restricted Project
inglorion updated the diff for D64542: [lld-link] implement -thinlto-{prefix,object-suffix}-replace.

rebased and updated variable naming convention

Jul 11 2019, 11:47 AM · Restricted Project
inglorion added a comment to D64121: Rename variables so that they start with a lowercase letter..

Just chiming in to say this change makes me very happy. I'm pleasantly surprised by how much easier to read I'm finding the code. Thanks for doing this!

Jul 11 2019, 11:35 AM · Restricted Project
inglorion committed rG63efb28f4761: [lld-link] implement -thinlto-index-only (authored by inglorion).
[lld-link] implement -thinlto-index-only
Jul 11 2019, 11:04 AM
inglorion committed rL365800: [lld-link] implement -thinlto-index-only.
[lld-link] implement -thinlto-index-only
Jul 11 2019, 11:03 AM
inglorion closed D64461: [lld-link] implement -thinlto-index-only.
Jul 11 2019, 11:03 AM · Restricted Project
inglorion updated the diff for D64461: [lld-link] implement -thinlto-index-only.

new variable naming style

Jul 11 2019, 11:03 AM · Restricted Project
inglorion updated the diff for D64461: [lld-link] implement -thinlto-index-only.

removed getThinLTOOutputFile identity function

Jul 11 2019, 10:27 AM · Restricted Project

Jul 10 2019

inglorion added a parent revision for D64542: [lld-link] implement -thinlto-{prefix,object-suffix}-replace: D64461: [lld-link] implement -thinlto-index-only.
Jul 10 2019, 5:17 PM · Restricted Project
inglorion added a child revision for D64461: [lld-link] implement -thinlto-index-only: D64542: [lld-link] implement -thinlto-{prefix,object-suffix}-replace.
Jul 10 2019, 5:17 PM · Restricted Project
inglorion created D64542: [lld-link] implement -thinlto-{prefix,object-suffix}-replace.
Jul 10 2019, 5:17 PM · Restricted Project
inglorion added inline comments to D64461: [lld-link] implement -thinlto-index-only.
Jul 10 2019, 3:42 PM · Restricted Project
inglorion added inline comments to D64461: [lld-link] implement -thinlto-index-only.
Jul 10 2019, 3:42 PM · Restricted Project
inglorion added a comment to D64458: add -fthinlto-index= option to clang-cl.

Do we really need to support clang-cl syntax here? Can't the user of -fthinlto-index= use the regular clang driver?

Jul 10 2019, 1:52 PM · Restricted Project, Restricted Project

Jul 9 2019

inglorion created D64461: [lld-link] implement -thinlto-index-only.
Jul 9 2019, 5:45 PM · Restricted Project
inglorion added a comment to D64458: add -fthinlto-index= option to clang-cl.

This is similar to r254927 for the clang driver, and reuses the tests from that commit for the backend part. On the frontend, it differs in that clang-cl does not support -x (per the comment in clang/lib/Driver/Driver.cpp line 2068: "// No driver mode exposes -x and /TC or /TP; we don't support mixing them.") Instead of requiring -x ir, the behavior added to clang-cl here is to expect that what would be detected as a native object file based on file extension is really a bitcode file. If it isn't, the backend will cause us to say "error: Invalid bitcode signature", which I think is adequate as a diagnostic.

Jul 9 2019, 5:32 PM · Restricted Project, Restricted Project
inglorion created D64458: add -fthinlto-index= option to clang-cl.
Jul 9 2019, 5:26 PM · Restricted Project, Restricted Project
inglorion committed rG6a4c2e4f0a93: [ThinLTO] only emit used or referenced CFI records to index (authored by inglorion).
[ThinLTO] only emit used or referenced CFI records to index
Jul 9 2019, 11:55 AM
inglorion committed rL365537: [ThinLTO] only emit used or referenced CFI records to index.
[ThinLTO] only emit used or referenced CFI records to index
Jul 9 2019, 11:50 AM
inglorion closed D63887: [ThinLTO] only emit used or referenced CFI records to index.
Jul 9 2019, 11:50 AM · Restricted Project
inglorion accepted D63887: [ThinLTO] only emit used or referenced CFI records to index.

Thanks for the review!

Jul 9 2019, 11:17 AM · Restricted Project
inglorion updated the diff for D63887: [ThinLTO] only emit used or referenced CFI records to index.

rebase and back out unnecessary change

Jul 9 2019, 11:17 AM · Restricted Project

Jul 3 2019

inglorion updated the diff for D63887: [ThinLTO] only emit used or referenced CFI records to index.

clang-format

Jul 3 2019, 2:05 PM · Restricted Project
inglorion updated the diff for D63887: [ThinLTO] only emit used or referenced CFI records to index.

Added test and reworded commit message.

Jul 3 2019, 2:02 PM · Restricted Project

Jul 1 2019

inglorion added a comment to D63887: [ThinLTO] only emit used or referenced CFI records to index.

As an example of what this does, I build Chrome (crrev.com/c/1673234 + crrev.com/c/1654198)'s base_unittests with and without this patch and looked at the sizes of the files generated for ThinLTO (.thinlto.bc, imports files, and native .o files).

Jul 1 2019, 5:57 PM · Restricted Project

Jun 28 2019

inglorion updated the diff for D63887: [ThinLTO] only emit used or referenced CFI records to index.

Use ModuleToSummariesForIndex to find GUIDs defined or used by the module

Jun 28 2019, 12:56 PM · Restricted Project

Jun 27 2019

inglorion created D63887: [ThinLTO] only emit used or referenced CFI records to index.
Jun 27 2019, 10:52 AM · Restricted Project

Jun 6 2019

inglorion accepted D62975: Require stdcall etc parameters to be complete on ODR use.

Thank you. Given that proceeding with the wrong value will result in either an undefined reference or a reference to what might well be the wrong function at link time, I think making this an error (as you've done) is strictly better.

Jun 6 2019, 3:17 PM · Restricted Project, Restricted Project
inglorion added a comment to D62975: Require stdcall etc parameters to be complete on ODR use.

Can you clarify "which will usually result in a linker error"? E.g. an example of link.exe rejecting the object file or the wrong function being called. The reason I ask is that if we can be sure at compile time that the resulting code will not work or do the wrong thing, I think giving an error is appropriate. But if that isn't the case, we would be rejecting code that cl.exe accepts and we might want to make it a Warning instead.

Jun 6 2019, 1:20 PM · Restricted Project, Restricted Project

May 30 2019

inglorion abandoned D33961: encode YAML scalars using double quotes so all values can be expressed.

I think r320996 implements this.

May 30 2019, 1:59 PM · Restricted Project

May 24 2019

inglorion created D62434: [lld-link] diagnose undefined symbols before LTO when possible.
May 24 2019, 3:52 PM · Restricted Project

May 23 2019

inglorion committed rG5554a5fcbdd7: fix accidental implicit matches in elf-disassemble-symbol-labels-rel.test (authored by inglorion).
fix accidental implicit matches in elf-disassemble-symbol-labels-rel.test
May 23 2019, 3:26 PM
inglorion committed rL361563: fix accidental implicit matches in elf-disassemble-symbol-labels-rel.test.
fix accidental implicit matches in elf-disassemble-symbol-labels-rel.test
May 23 2019, 3:25 PM

May 21 2019

inglorion committed rG032f87bbb3c0: Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..." (authored by inglorion).
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
May 21 2019, 4:51 AM
inglorion committed rL361246: Revert r360902 "Resubmit: [Salvage] Change salvage debug info ...".
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
May 21 2019, 4:51 AM

May 16 2019

inglorion added a comment to D54747: Discard debuginfo for object files empty after GC.

Reverted in r360955.

May 16 2019, 5:08 PM · Restricted Project, lld
inglorion updated subscribers of D62043: [not for review] preserve debug info in thinlto.
May 16 2019, 5:06 PM · Restricted Project
inglorion committed rG5ff1eb6418ae: Revert r358069 "Discard debuginfo for object files empty after GC" (authored by inglorion).
Revert r358069 "Discard debuginfo for object files empty after GC"
May 16 2019, 4:31 PM
inglorion committed rLLD360955: Revert r358069 "Discard debuginfo for object files empty after GC".
Revert r358069 "Discard debuginfo for object files empty after GC"
May 16 2019, 4:31 PM
inglorion committed rL360955: Revert r358069 "Discard debuginfo for object files empty after GC".
Revert r358069 "Discard debuginfo for object files empty after GC"
May 16 2019, 4:31 PM
inglorion added a comment to D54747: Discard debuginfo for object files empty after GC.

I also think we should revert this change while we think about the approach. I've been reluctant to do this because I was impressed by how many bytes of output it saves, and I didn't want to lose that just because it doesn't play nice with ThinLTO. However, after some more data gathering and talking to people, I think that:

May 16 2019, 4:17 PM · Restricted Project, lld
inglorion abandoned D62043: [not for review] preserve debug info in thinlto.

I put this up for preservation purposes, but I'm not convinced that we should actually go this route, so abandoning.

May 16 2019, 4:01 PM · Restricted Project
inglorion created D62043: [not for review] preserve debug info in thinlto.
May 16 2019, 3:55 PM · Restricted Project

May 8 2019

inglorion committed rGf3fb7fac3232: [lld-link] initialize targets and asmparsers before invoking lib (authored by inglorion).
[lld-link] initialize targets and asmparsers before invoking lib
May 8 2019, 3:09 PM
inglorion committed rLLD360295: [lld-link] initialize targets and asmparsers before invoking lib.
[lld-link] initialize targets and asmparsers before invoking lib
May 8 2019, 3:08 PM
inglorion committed rL360295: [lld-link] initialize targets and asmparsers before invoking lib.
[lld-link] initialize targets and asmparsers before invoking lib
May 8 2019, 3:08 PM
inglorion closed D61699: [lld-link] initialize targets and asmparsers before invoking lib.
May 8 2019, 3:08 PM · Restricted Project
inglorion updated the diff for D61699: [lld-link] initialize targets and asmparsers before invoking lib.

added symbols and check they are listed

May 8 2019, 2:30 PM · Restricted Project
inglorion created D61699: [lld-link] initialize targets and asmparsers before invoking lib.
May 8 2019, 1:55 PM · Restricted Project

May 3 2019

inglorion abandoned D61461: When removing inalloca, convert to static alloca.

Thanks for helping me think about this and alternative approaches. I'll be withdrawing this for now to get it out of the review queue. If I end up implementing a new approach, I'll put it up as a new diff (with a link to this one for the comments).

May 3 2019, 11:17 AM · Restricted Project

May 2 2019

inglorion updated the diff for D61461: When removing inalloca, convert to static alloca.
  • don't hoist allocas if they are not in the same BB as the function that uses them
May 2 2019, 4:22 PM · Restricted Project