inglorion (Bob Haarman)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 15 2015, 10:55 AM (100 w, 5 d)

Recent Activity

Wed, Nov 15

inglorion committed rL318364: [coff] correctly emit safeseh entries for handlers defined in dlls.
[coff] correctly emit safeseh entries for handlers defined in dlls
Wed, Nov 15, 5:22 PM
inglorion closed D40102: [coff] correctly emit safeseh entries for handlers defined in dlls by committing rL318364: [coff] correctly emit safeseh entries for handlers defined in dlls.
Wed, Nov 15, 5:22 PM
inglorion added a comment to D40102: [coff] correctly emit safeseh entries for handlers defined in dlls.

No yaml support for import libraries, I take it?

Wed, Nov 15, 5:21 PM
inglorion committed rL318362: LTO: clarify why we need to gracefully handle sys::fs::rename failures.
LTO: clarify why we need to gracefully handle sys::fs::rename failures
Wed, Nov 15, 5:17 PM
inglorion closed D40094: LTO: clarify why we need to gracefully handle sys::fs::rename failures by committing rL318362: LTO: clarify why we need to gracefully handle sys::fs::rename failures.
Wed, Nov 15, 5:17 PM
inglorion updated the diff for D40094: LTO: clarify why we need to gracefully handle sys::fs::rename failures.

rebase

Wed, Nov 15, 5:17 PM
inglorion updated the diff for D40094: LTO: clarify why we need to gracefully handle sys::fs::rename failures.

@pcc, better?

Wed, Nov 15, 3:59 PM
inglorion updated the diff for D40102: [coff] correctly emit safeseh entries for handlers defined in dlls.

updated description to point to bug report

Wed, Nov 15, 3:19 PM
inglorion updated the diff for D40102: [coff] correctly emit safeseh entries for handlers defined in dlls.

updated test to check for exactly one entry instead of at least one

Wed, Nov 15, 2:56 PM
inglorion created D40102: [coff] correctly emit safeseh entries for handlers defined in dlls.
Wed, Nov 15, 2:34 PM
inglorion added a comment to D40094: LTO: clarify why we need to gracefully handle sys::fs::rename failures.

D39993 showed that it is not clear why the special case for sys::fs::rename failing with permission_denied exists. @pcc, @rafael, does this comment make it clearer?

Wed, Nov 15, 11:55 AM
inglorion created D40094: LTO: clarify why we need to gracefully handle sys::fs::rename failures.
Wed, Nov 15, 11:54 AM

Fri, Nov 10

inglorion committed rL317899: LTO: don't fatal when value for cache key already exists.
LTO: don't fatal when value for cache key already exists
Fri, Nov 10, 9:09 AM
inglorion closed D39874: LTO: don't fatal when value for cache key already exists by committing rL317899: LTO: don't fatal when value for cache key already exists.
Fri, Nov 10, 9:09 AM
inglorion updated the diff for D39874: LTO: don't fatal when value for cache key already exists.

rebased to remove unrelated changes

Fri, Nov 10, 8:59 AM

Thu, Nov 9

inglorion updated the diff for D39874: LTO: don't fatal when value for cache key already exists.

no need to inclune Support/Process.h anymore

Thu, Nov 9, 4:45 PM
inglorion updated the diff for D39874: LTO: don't fatal when value for cache key already exists.

changes requested by @pcc

Thu, Nov 9, 4:44 PM
inglorion committed rL317850: [support] allocate exact size required for mapping in Support/Windws/Path.inc.
[support] allocate exact size required for mapping in Support/Windws/Path.inc
Thu, Nov 9, 4:17 PM
inglorion closed D39876: [support] allocate exact size required for mapping in Support/Windws/Path.inc by committing rL317850: [support] allocate exact size required for mapping in Support/Windws/Path.inc.
Thu, Nov 9, 4:17 PM
inglorion added a comment to D39263: [support] remove tautological comparison in Support/Windows/Path.inc.

I would never forget about...err, what was it again I needed to remember? Thanks for the reminder. Follow-up change is in D39876.

Thu, Nov 9, 3:56 PM
inglorion created D39876: [support] allocate exact size required for mapping in Support/Windws/Path.inc.
Thu, Nov 9, 3:56 PM
inglorion created D39874: LTO: don't fatal when value for cache key already exists.
Thu, Nov 9, 3:34 PM

Tue, Nov 7

inglorion committed rL317635: [coff] use relative instead of absolute __safe_se_handler_base when present.
[coff] use relative instead of absolute __safe_se_handler_base when present
Tue, Nov 7, 3:24 PM
inglorion closed D39765: [coff] use relative instead of absolute __safe_se_handler_base when present by committing rL317635: [coff] use relative instead of absolute __safe_se_handler_base when present.
Tue, Nov 7, 3:24 PM
inglorion added a comment to D39765: [coff] use relative instead of absolute __safe_se_handler_base when present.

The code change mostly just moves code around, but this helps because we previously fixed the symbol type too late, so that it was still output as an absolute symbol. After moving the code around, we now output __safe_se_handler_base with the correct symbol type.

Tue, Nov 7, 3:17 PM
inglorion created D39765: [coff] use relative instead of absolute __safe_se_handler_base when present.
Tue, Nov 7, 3:11 PM

Fri, Nov 3

inglorion committed rL317378: Revert "[ELF] - Teach LLD to use information from .debug_str for error….
Revert "[ELF] - Teach LLD to use information from .debug_str for error…
Fri, Nov 3, 3:23 PM

Fri, Oct 27

inglorion committed rL316814: [support] remove tautological comparison in Support/Windows/Path.inc.
[support] remove tautological comparison in Support/Windows/Path.inc
Fri, Oct 27, 4:41 PM
inglorion closed D39263: [support] remove tautological comparison in Support/Windows/Path.inc by committing rL316814: [support] remove tautological comparison in Support/Windows/Path.inc.
Fri, Oct 27, 4:41 PM
inglorion added a comment to D39263: [support] remove tautological comparison in Support/Windows/Path.inc.

Is this good to go or does it need changes?

Fri, Oct 27, 1:27 PM

Wed, Oct 25

inglorion committed rL316624: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
[lld] unified COFF and ELF error handling on new Common/ErrorHandler
Wed, Oct 25, 3:29 PM
inglorion closed D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler by committing rL316624: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
Wed, Oct 25, 3:29 PM
inglorion updated the diff for D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
  • Initialize all fields in their definition instead of in the contructor.
  • Replaced default ErrorLimitExceededMsg with something more generic.
  • clang-format
Wed, Oct 25, 3:23 PM
inglorion updated the diff for D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
  • Removed ErrorHandler parameter to handleColorDiagnostics.
  • Cut number of constructors for ErrorHandler down to one.
Wed, Oct 25, 3:02 PM
inglorion added inline comments to D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
Wed, Oct 25, 2:58 PM
inglorion added inline comments to D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
Wed, Oct 25, 2:52 PM
inglorion updated the diff for D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.

converted setters to public fields

Wed, Oct 25, 11:59 AM
inglorion added a comment to D39263: [support] remove tautological comparison in Support/Windows/Path.inc.

@zturner do you want me to make the semantic changes in the same commit or can we ship the size check removal first and then change the functionality? The latter would be my preference.

Wed, Oct 25, 11:27 AM

Tue, Oct 24

inglorion created D39263: [support] remove tautological comparison in Support/Windows/Path.inc.
Tue, Oct 24, 4:51 PM
inglorion added a comment to D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.

Summary of the changes:

Tue, Oct 24, 2:16 PM
inglorion created D39259: [lld] unified COFF and ELF error handling on new Common/ErrorHandler.
Tue, Oct 24, 2:08 PM

Mon, Oct 23

inglorion committed rL316404: [raw_fd_ostream] report actual error in error messages.
[raw_fd_ostream] report actual error in error messages
Mon, Oct 23, 6:27 PM
inglorion closed D39203: [raw_fd_ostream] report actual error in error messages by committing rL316404: [raw_fd_ostream] report actual error in error messages.
Mon, Oct 23, 6:27 PM
inglorion added a comment to D39203: [raw_fd_ostream] report actual error in error messages.

Oh, do you think this is worth a unit test? It should be easy to add one for "file not found" or something, if you try creating a file in a directory that doesn't exist.

Mon, Oct 23, 2:30 PM
inglorion added a comment to D39203: [raw_fd_ostream] report actual error in error messages.

As an alternative, I considered using an Error instead of an error_code. I decided against that, because

Mon, Oct 23, 12:56 PM
inglorion created D39203: [raw_fd_ostream] report actual error in error messages.
Mon, Oct 23, 12:45 PM

Oct 13 2017

inglorion committed rL315725: [lld] Move Threads to Common.
[lld] Move Threads to Common
Oct 13 2017, 11:23 AM
inglorion closed D38822: [lld] Move Threads to Common by committing rL315725: [lld] Move Threads to Common.
Oct 13 2017, 11:23 AM

Oct 12 2017

inglorion added inline comments to D38808: [CMake] Improve logic for enabling LTO on LLVM itself.
Oct 12 2017, 12:04 PM

Oct 11 2017

inglorion created D38822: [lld] Move Threads to Common.
Oct 11 2017, 2:12 PM
inglorion requested changes to D38808: [CMake] Improve logic for enabling LTO on LLVM itself.
Oct 11 2017, 11:34 AM

Oct 6 2017

inglorion accepted D38652: Use error() instead of warn() to report undefined symbols..

lgtm

Oct 6 2017, 4:28 PM

Sep 15 2017

inglorion committed rL313425: [docs] add Windows examples to ThinLTO.rst.
[docs] add Windows examples to ThinLTO.rst
Sep 15 2017, 5:17 PM
inglorion closed D37943: [docs] add Windows examples to ThinLTO.rst by committing rL313425: [docs] add Windows examples to ThinLTO.rst.
Sep 15 2017, 5:17 PM
inglorion created D37943: [docs] add Windows examples to ThinLTO.rst.
Sep 15 2017, 4:58 PM

Sep 11 2017

inglorion abandoned D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.
Sep 11 2017, 3:28 PM
inglorion committed rL312965: [codeview] omit debug locations for nested exprs unless column info enabled.
[codeview] omit debug locations for nested exprs unless column info enabled
Sep 11 2017, 3:14 PM
inglorion closed D37529: [codeview] omit debug locations for nested exprs unless column info enabled by committing rL312965: [codeview] omit debug locations for nested exprs unless column info enabled.
Sep 11 2017, 3:14 PM
inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

renamed get{Nested,}ExpressionLocationsEnabled and moved it into CodeGetModule.cpp

Sep 11 2017, 3:09 PM

Sep 8 2017

inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

Of course, ApplyDebugLocation is also a perfectly legitimate way to add a debug location to nodes that are not nested inside nodes that already have a location. I updated the diff so that we do end up applying the location in such cases.

Sep 8 2017, 5:19 PM
inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

added examples suggested by @zturner, verified step over and step into specific behavior matches MSVC, and added tests for them

Sep 8 2017, 4:43 PM

Sep 7 2017

inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

removed compound statement; that was only in there to double check that the debugger stops on the first child statement, but that's true with or without this change

Sep 7 2017, 6:01 PM
inglorion added a comment to D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

@zturner: I am still thinking about your comment about other cases to test. My concern is that there are very many possible combinations.

Sep 7 2017, 6:00 PM
inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

Following conversation with @rnk, I managed to whittle this down to a very small change that seems to do what we need. Step into specific works and single stepping through the program behaves similarly whether compiled with clang-cl or cl.

Sep 7 2017, 5:29 PM

Sep 6 2017

inglorion planned changes to D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

rnk and I talked about a different approach. The idea is to explicitly emit locations in some cases (e.g. inside compound statements, the braces of for loops, ...), and otherwise emit locations only when emitting column info or emitting non-codeview debug info. That may lead to more elegant code. I'll give it a try later.

Sep 6 2017, 5:34 PM
inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

I limited the change to only calls, returns, and declarations. I also
updated the test case to include a multi-variable declaration, a while
loop, a for loop, and an if statement (after verifying the behavior in
the debugger, compared to MSVC). I discovered that there is a
difference between the generated info for DWARF with or without
-dwarf-column-info, so I included that in the test, too. I also made a
couple of minor changes that were suggested.

Sep 6 2017, 4:38 PM
inglorion added inline comments to D37529: [codeview] omit debug locations for nested exprs unless column info enabled.
Sep 6 2017, 3:20 PM
inglorion added inline comments to D37529: [codeview] omit debug locations for nested exprs unless column info enabled.
Sep 6 2017, 3:09 PM
inglorion added inline comments to D37529: [codeview] omit debug locations for nested exprs unless column info enabled.
Sep 6 2017, 2:34 PM
inglorion updated the diff for D37529: [codeview] omit debug locations for nested exprs unless column info enabled.

removed accidentally left in include and reformatted mangled comment

Sep 6 2017, 1:21 PM
inglorion created D37529: [codeview] omit debug locations for nested exprs unless column info enabled.
Sep 6 2017, 1:16 PM

Aug 30 2017

inglorion accepted D37309: [codeview] Generalize DIExpression parsing to handle load chains.

lgtm modulo inline comment. Thanks!

Aug 30 2017, 2:57 PM
inglorion added a comment to D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.

Can we ship this?

Aug 30 2017, 11:00 AM
inglorion committed rL312143: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional.
[codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional
Aug 30 2017, 10:51 AM
inglorion closed D37279: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional by committing rL312143: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional.
Aug 30 2017, 10:51 AM
inglorion updated the diff for D37279: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional.

Use None instead of its overly verbose equivalent.

Aug 30 2017, 10:49 AM

Aug 29 2017

inglorion updated the diff for D37279: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional.

rewritten using Optional instead of Expected

Aug 29 2017, 6:08 PM
inglorion committed rL312055: [codeview] add missing break in CodeGen/AsmPrinter/DebugHandlerBase.cpp.
[codeview] add missing break in CodeGen/AsmPrinter/DebugHandlerBase.cpp
Aug 29 2017, 3:55 PM
inglorion created D37279: [codeview] make DbgVariableLocation::extractFromMachineInstruction use Optional.
Aug 29 2017, 3:02 PM
inglorion committed rL312035: [NFC] clang-format llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp.
[NFC] clang-format llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
Aug 29 2017, 2:03 PM
inglorion committed rL312034: Reland r311957 [codeview] support more DW_OPs for more complete debug info.
Reland r311957 [codeview] support more DW_OPs for more complete debug info
Aug 29 2017, 2:00 PM

Aug 28 2017

inglorion committed rL311977: Revert "[codeview] support more DW_OPs for more complete debug info".
Revert "[codeview] support more DW_OPs for more complete debug info"
Aug 28 2017, 9:09 PM
inglorion committed rL311976: Revert "[codeview] don't try to emit variable locations without registers".
Revert "[codeview] don't try to emit variable locations without registers"
Aug 28 2017, 9:09 PM
inglorion added a comment to rL311969: [codeview] don't try to emit variable locations without registers.

I'm reverting this change and r311957 to stop the test failures.

Aug 28 2017, 9:09 PM
inglorion added a comment to rL311969: [codeview] don't try to emit variable locations without registers.

The tests are flaky. Running ninja check-llvm multiple times will have them sometimes pass, sometimes fail.

Aug 28 2017, 8:49 PM
inglorion added a comment to rL311969: [codeview] don't try to emit variable locations without registers.

According to http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/11192, this is causing tests to fail. I'm investigating.

Aug 28 2017, 8:22 PM
inglorion committed rL311969: [codeview] don't try to emit variable locations without registers.
[codeview] don't try to emit variable locations without registers
Aug 28 2017, 6:47 PM
inglorion added a comment to D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.

Size numbers with this version:

Aug 28 2017, 5:41 PM
inglorion updated the diff for D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.

rebased

Aug 28 2017, 5:36 PM
inglorion committed rL311957: [codeview] support more DW_OPs for more complete debug info.
[codeview] support more DW_OPs for more complete debug info
Aug 28 2017, 5:08 PM
inglorion closed D36907: [codeview] support more DW_OPs for more complete debug info by committing rL311957: [codeview] support more DW_OPs for more complete debug info.
Aug 28 2017, 5:08 PM
inglorion updated the diff for D36907: [codeview] support more DW_OPs for more complete debug info.

changed 1-bit ints to unsigneds, ran clang-format

Aug 28 2017, 4:44 PM
inglorion updated the diff for D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.

I made the change a little more conservative. We now only use the single-record representation
when:

Aug 28 2017, 4:30 PM
inglorion accepted D37233: [llvm-pdbutil] Print detailed S_UDT stats.

Mostly lgtm; please take a look at the couple of inline comments before landing.

Aug 28 2017, 3:39 PM
inglorion updated the diff for D36907: [codeview] support more DW_OPs for more complete debug info.

changes requested by @rnk

Aug 28 2017, 3:01 PM
inglorion added inline comments to D36907: [codeview] support more DW_OPs for more complete debug info.
Aug 28 2017, 2:35 PM

Aug 25 2017

inglorion added a comment to D36907: [codeview] support more DW_OPs for more complete debug info.

Thanks for the feedback! I think I incorporated all of it. Does this look good now?

Aug 25 2017, 4:13 PM

Aug 24 2017

inglorion updated the diff for D36907: [codeview] support more DW_OPs for more complete debug info.
  • updated COFF/pieces.ll test to check for records we now emit
  • refactored to avoid iterating twice
Aug 24 2017, 7:47 PM

Aug 23 2017

inglorion updated the diff for D37036: [codeview] use S_BPREL32, S_REGREL32, and S_REGISTER records when appropriate.

I still need to update/add tests.

Aug 23 2017, 6:22 PM
inglorion updated the diff for D36907: [codeview] support more DW_OPs for more complete debug info.

removed stray assert

Aug 23 2017, 4:15 PM