Page MenuHomePhabricator
Feed Advanced Search

Jul 10 2019

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
inglorion added a comment to D61461: When removing inalloca, convert to static alloca.

I think Eli raises a good point, and I'm inclined to just say "if the alloca (before hoisting) is not in the same BB as the call, don't hoist it". That avoids changing the stack behavior of the code. It also means we miss out on an optimization, but it's an optimization that we're not performing today anyway.

May 2 2019, 4:22 PM · Restricted Project
inglorion added inline comments to D61461: When removing inalloca, convert to static alloca.
May 2 2019, 4:04 PM · Restricted Project
inglorion updated the diff for D61461: When removing inalloca, convert to static alloca.
  • updated with more sensible test case
  • improvements suggested by @rnk
May 2 2019, 3:52 PM · Restricted Project
inglorion created D61461: When removing inalloca, convert to static alloca.
May 2 2019, 1:49 PM · Restricted Project

May 1 2019

inglorion committed rGa78ab77b6b78: remove inalloca parameters in globalopt and simplify argpromotion (authored by inglorion).
remove inalloca parameters in globalopt and simplify argpromotion
May 1 2019, 5:37 PM
inglorion committed rL359743: remove inalloca parameters in globalopt and simplify argpromotion.
remove inalloca parameters in globalopt and simplify argpromotion
May 1 2019, 5:37 PM
inglorion closed D61286: remove inalloca parameters in globalopt and simplify argpromotion.
May 1 2019, 5:37 PM · Restricted Project
inglorion updated the diff for D61286: remove inalloca parameters in globalopt and simplify argpromotion.

Correcting earlier upload to preserve original inalloca.ll tests and
add new tests in a separate file.

May 1 2019, 2:01 PM · Restricted Project
inglorion updated the diff for D61286: remove inalloca parameters in globalopt and simplify argpromotion.

Remove inallocas in globalopt and simplify argpromotion by just
bailing on inallocas.

May 1 2019, 1:32 PM · Restricted Project

Apr 30 2019

inglorion added a comment to D61286: remove inalloca parameters in globalopt and simplify argpromotion.

Yeah, I kind of wanted to do the least intrusive thing that would fix the problem I observed and then think about the larger picture. But given that we're thinking about removing the inalloca attribute, the way I would like to do that is remove it in globalopt and then we can perform further optimizations (in globalopt and here) predicated on no inalloca being present. That takes care of half the FIXME for inalloca in globalopt, so after that it becomes really tempting to do follow-up with the other half and hoist the alloca to the entry block.

Apr 30 2019, 1:21 PM · Restricted Project
inglorion updated the diff for D61286: remove inalloca parameters in globalopt and simplify argpromotion.

Updated in response to @efriedma's comments. We now don't run
argpromotion on functions with inallocas. I've deleted some code
(mostly comments) that refers to them, and modified the test
which previously checked that we do perform the optimization in some
cases to instead check that we don't perform the optimization in
the case I found to be unsafe.

Apr 30 2019, 11:09 AM · Restricted Project

Apr 29 2019

inglorion added a comment to D61286: remove inalloca parameters in globalopt and simplify argpromotion.

Eli, I saw after I wrote this that you suggested a slightly different approach on the bug (skip argpromote for functions with inallocas). If you'd rather have me do that instead of the change here, I'd be happy to. I just figured I'd put up the one I had already written for consideration.

Apr 29 2019, 4:58 PM · Restricted Project
inglorion created D61286: remove inalloca parameters in globalopt and simplify argpromotion.
Apr 29 2019, 4:57 PM · Restricted Project

Apr 22 2019

inglorion committed rG2eea99a4b982: [Support] unflake TempFileCollisions test (authored by inglorion).
[Support] unflake TempFileCollisions test
Apr 22 2019, 12:45 PM
inglorion committed rL358914: [Support] unflake TempFileCollisions test.
[Support] unflake TempFileCollisions test
Apr 22 2019, 12:44 PM
inglorion closed D56336: [Support] unflake TempFileCollisions test.
Apr 22 2019, 12:44 PM · Restricted Project

Apr 18 2019

inglorion added a comment to D56336: [Support] unflake TempFileCollisions test.

Does this look good now?

Apr 18 2019, 1:00 PM · Restricted Project

Apr 15 2019

inglorion committed rG8b1ec798b562: [LLD][COFF] use offset in archive to disambiguate archive members (authored by inglorion).
[LLD][COFF] use offset in archive to disambiguate archive members
Apr 15 2019, 12:47 PM
inglorion committed rL358440: [LLD][COFF] use offset in archive to disambiguate archive members.
[LLD][COFF] use offset in archive to disambiguate archive members
Apr 15 2019, 12:46 PM
inglorion committed rLLD358440: [LLD][COFF] use offset in archive to disambiguate archive members.
[LLD][COFF] use offset in archive to disambiguate archive members
Apr 15 2019, 12:46 PM
inglorion closed D60549: [LLD][COFF] use offset in archive to disambiguate archive members.
Apr 15 2019, 12:46 PM · Restricted Project

Apr 11 2019

inglorion added inline comments to D60549: [LLD][COFF] use offset in archive to disambiguate archive members.
Apr 11 2019, 2:27 PM · Restricted Project
inglorion updated the diff for D60549: [LLD][COFF] use offset in archive to disambiguate archive members.

without second constructor

Apr 11 2019, 2:24 PM · Restricted Project

Apr 10 2019

inglorion created D60549: [LLD][COFF] use offset in archive to disambiguate archive members.
Apr 10 2019, 5:33 PM · Restricted Project

Apr 9 2019

inglorion updated the diff for D56336: [Support] unflake TempFileCollisions test.

Updated as suggested by @rsmith (thanks!)

Apr 9 2019, 5:19 PM · Restricted Project

Apr 4 2019

inglorion closed D60159: Revert "[DAGCombine] Improve Lifetime node chains." and follow-ups.
Apr 4 2019, 11:51 AM · Restricted Project

Apr 2 2019

inglorion created D60159: Revert "[DAGCombine] Improve Lifetime node chains." and follow-ups.
Apr 2 2019, 3:39 PM · Restricted Project

Feb 19 2019

inglorion committed rG61e8735f17fd: [lld-link] preserve @llvm.used symbols in LTO (authored by inglorion).
[lld-link] preserve @llvm.used symbols in LTO
Feb 19 2019, 4:26 PM
inglorion committed rLLD354410: [lld-link] preserve @llvm.used symbols in LTO.
[lld-link] preserve @llvm.used symbols in LTO
Feb 19 2019, 4:25 PM
inglorion committed rL354410: [lld-link] preserve @llvm.used symbols in LTO.
[lld-link] preserve @llvm.used symbols in LTO
Feb 19 2019, 4:25 PM
inglorion closed D58255: [lld-link] preserve @llvm.used symbols in LTO.
Feb 19 2019, 4:25 PM · Restricted Project
inglorion added inline comments to D58255: [lld-link] preserve @llvm.used symbols in LTO.
Feb 19 2019, 2:36 PM · Restricted Project

Feb 14 2019

inglorion created D58255: [lld-link] preserve @llvm.used symbols in LTO.
Feb 14 2019, 3:04 PM · Restricted Project

Feb 8 2019

inglorion committed rG3edf63c55a1e: [lld-link] better error message when failing to open archive members (authored by inglorion).
[lld-link] better error message when failing to open archive members
Feb 8 2019, 2:02 PM
inglorion committed rLLD353572: [lld-link] better error message when failing to open archive members.
[lld-link] better error message when failing to open archive members
Feb 8 2019, 2:00 PM
inglorion committed rL353572: [lld-link] better error message when failing to open archive members.
[lld-link] better error message when failing to open archive members
Feb 8 2019, 1:59 PM
inglorion closed D57974: [lld-link] better error message when failing to open archive members.
Feb 8 2019, 1:59 PM · Restricted Project
inglorion added inline comments to D57974: [lld-link] better error message when failing to open archive members.
Feb 8 2019, 1:52 PM · Restricted Project
inglorion updated the diff for D57974: [lld-link] better error message when failing to open archive members.

Use [=] instead of explicitly passing StringRefs to ReportBufferError.

Feb 8 2019, 1:52 PM · Restricted Project
inglorion added a comment to D57974: [lld-link] better error message when failing to open archive members.

(Following the same archive(member) format also used by toString() in InputFiles.cpp)

Feb 8 2019, 1:39 PM · Restricted Project
inglorion added a comment to D57974: [lld-link] better error message when failing to open archive members.

Before:

lld-link: error: could not get the buffer for the member defining symbol spvDiagnosticDestroy: No such file or directory
Feb 8 2019, 1:37 PM · Restricted Project
inglorion created D57974: [lld-link] better error message when failing to open archive members.
Feb 8 2019, 1:37 PM · Restricted Project

Feb 7 2019

inglorion accepted D57844: Handle CalledProcessError without a Python stack.

LGTM

Feb 7 2019, 11:08 AM · Restricted Project
inglorion requested changes to D57844: Handle CalledProcessError without a Python stack.

See earlier comment.

Feb 7 2019, 10:14 AM · Restricted Project

Feb 6 2019

inglorion added inline comments to D57844: Handle CalledProcessError without a Python stack.
Feb 6 2019, 3:16 PM · Restricted Project

Jan 30 2019

inglorion accepted D57395: [ThinLTO] Rename COMDATs for COFF when promoting/renaming COMDAT leader.

lgtm, thanks!

Jan 30 2019, 5:07 PM

Jan 29 2019

inglorion accepted D57414: Switch sanitizer-windows bot to annotator scripts.

LGTM, with some suggestions in the comments.

Jan 29 2019, 3:23 PM

Jan 24 2019

inglorion committed rL352142: simplify COFF module assembly test and move it to Object.
simplify COFF module assembly test and move it to Object
Jan 24 2019, 4:34 PM
inglorion closed D57192: simplify COFF module assembly test and move it to Object.
Jan 24 2019, 4:33 PM
inglorion added a comment to D57192: simplify COFF module assembly test and move it to Object.

Thank you!

Jan 24 2019, 4:33 PM
inglorion updated the diff for D57192: simplify COFF module assembly test and move it to Object.

Re-upload only the test change.

Jan 24 2019, 4:03 PM
inglorion updated the diff for D57192: simplify COFF module assembly test and move it to Object.

Simpler test. This crashes without D57073 and passes with D57073.

Jan 24 2019, 4:03 PM
inglorion added inline comments to D57192: simplify COFF module assembly test and move it to Object.
Jan 24 2019, 3:23 PM
inglorion added a comment to D57073: allow COFF .def directive in module assembly when using ThinLTO.

pcc, does D57192 implement your suggestion?

Jan 24 2019, 2:09 PM
inglorion created D57192: simplify COFF module assembly test and move it to Object.
Jan 24 2019, 2:08 PM
inglorion added a comment to D57073: allow COFF .def directive in module assembly when using ThinLTO.

Just saw your comment, pcc. I'll look into that.

Jan 24 2019, 1:50 PM
inglorion committed rL352112: allow COFF .def directive in module assembly when using ThinLTO.
allow COFF .def directive in module assembly when using ThinLTO
Jan 24 2019, 1:41 PM
inglorion closed D57073: allow COFF .def directive in module assembly when using ThinLTO.
Jan 24 2019, 1:41 PM

Jan 23 2019

inglorion updated the diff for D57073: allow COFF .def directive in module assembly when using ThinLTO.

add missing .1

Jan 23 2019, 4:48 PM
inglorion updated the diff for D57073: allow COFF .def directive in module assembly when using ThinLTO.

replaced .c test with an .ll test

Jan 23 2019, 1:19 PM

Jan 22 2019

inglorion created D57073: allow COFF .def directive in module assembly when using ThinLTO.
Jan 22 2019, 5:17 PM