Page MenuHomePhabricator

inglorion (Bob Haarman)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 15 2015, 10:55 AM (182 w, 6 d)

Recent Activity

Thu, Jun 6

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.

Thu, Jun 6, 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.

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

Thu, May 30

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

I think r320996 implements this.

Thu, May 30, 1:59 PM · Restricted Project

Fri, May 24

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

Thu, May 23

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
Thu, May 23, 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
Thu, May 23, 3:25 PM

Tue, May 21

inglorion committed rG032f87bbb3c0: Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..." (authored by inglorion).
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
Tue, May 21, 4:51 AM
inglorion committed rL361246: Revert r360902 "Resubmit: [Salvage] Change salvage debug info ...".
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
Tue, May 21, 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

Jan 4 2019

inglorion added a comment to D50126: [Support] fix TempFile infinite loop and permission denied errors.

@fedor.sergeev: You're right, thanks for pointing that out. Sent D56336 to fix that.

Jan 4 2019, 2:38 PM
inglorion created D56336: [Support] unflake TempFileCollisions test.
Jan 4 2019, 2:37 PM · Restricted Project

Sep 14 2018

inglorion added a comment to D51992: [ThinLTO]Expose cache entry expiration time option in llvm-lto and fix a test.

Thanks! For the case where you don't want the files to expire, can you instead set the expiration age to 0? That should stop the pruner from removing them.

Sep 14 2018, 2:52 PM
inglorion accepted D51746: Replace clang-x86-windows-msvc2015 with an x64 VS 2017 build script.

LGTM

Sep 14 2018, 2:47 PM

Sep 6 2018

inglorion added a comment to D51720: [COFF] don't mark lazy symbols as used in regular objects.

I was thinking that as well, and it did fix the size regression: from 151,548,928 to 141,140,992 bytes, where the non-LTO version is 140,072,960 bytes.

Sep 6 2018, 3:22 PM
inglorion committed rLLD341585: [COFF] don't mark lazy symbols as used in regular objects.
[COFF] don't mark lazy symbols as used in regular objects
Sep 6 2018, 1:30 PM
inglorion committed rL341585: [COFF] don't mark lazy symbols as used in regular objects.
[COFF] don't mark lazy symbols as used in regular objects
Sep 6 2018, 1:25 PM
inglorion closed D51720: [COFF] don't mark lazy symbols as used in regular objects.
Sep 6 2018, 1:25 PM
inglorion added a comment to D51720: [COFF] don't mark lazy symbols as used in regular objects.

Since r338767, "foo,p" and "bar,p" show up as "foo,px" and "bar,px", indicating that they are used in regular objects. However, there are no regular (non-LTO) objects in the test. Only main should have the 'x'.

Sep 6 2018, 12:11 PM
inglorion updated the diff for D51720: [COFF] don't mark lazy symbols as used in regular objects.

added test

Sep 6 2018, 12:09 PM
inglorion added a comment to D51720: [COFF] don't mark lazy symbols as used in regular objects.

Building Chromium with ThinLTO without this patch causes test_chrome_with_chromedriver.py to fail. With the patch, it runs successfully. (https://crbug.com/881036).

Sep 6 2018, 1:03 AM
inglorion created D51720: [COFF] don't mark lazy symbols as used in regular objects.
Sep 6 2018, 1:01 AM

Aug 24 2018

inglorion abandoned D46621: [Support] call FlushFileBuffers when closing raw_fd_ostream on Windows.

We don't need this. Abandoning.

Aug 24 2018, 1:48 PM

Aug 23 2018

inglorion added a comment to D48738: Add the ability to edit stream contents with llvm-pdbutil.

This is really useful. Thanks for doing this. I got a couple of questions and comments in-line.

Aug 23 2018, 4:25 PM

Aug 21 2018

inglorion committed rLLD340374: [Support][CachePruning] prune least recently accessed files first.
[Support][CachePruning] prune least recently accessed files first
Aug 21 2018, 5:53 PM