Page MenuHomePhabricator

DHowett-MSFT (Dustin L. Howett)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 29 2018, 10:47 AM (73 w, 1 d)

Recent Activity

Mar 4 2019

DHowett-MSFT updated the diff for D58807: [CodeGen] COMDAT-fold block descriptors.

Fixed corrupted patch. I know that the -str test case is not the _ideal_ location for the comdat test, but it is the only test whose invariants failed (the IR for the descriptor definition now contains comdat, align 4).

Mar 4 2019, 1:15 PM · Restricted Project, Restricted Project
DHowett-MSFT updated the diff for D58807: [CodeGen] COMDAT-fold block descriptors.

This change caused a test to fail, so I took the opportunity to augment the test with COMDAT entry.

Mar 4 2019, 12:05 PM · Restricted Project, Restricted Project

Mar 1 2019

DHowett-MSFT added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Mar 1 2019, 12:36 PM · Restricted Project
DHowett-MSFT added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Mar 1 2019, 10:22 AM · Restricted Project

Feb 28 2019

DHowett-MSFT added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 28 2019, 11:54 PM · Restricted Project
DHowett-MSFT created D58807: [CodeGen] COMDAT-fold block descriptors.
Feb 28 2019, 6:09 PM · Restricted Project, Restricted Project
DHowett-MSFT added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 28 2019, 11:58 AM · Restricted Project
DHowett-MSFT added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 28 2019, 11:07 AM · Restricted Project

Feb 27 2019

DHowett-MSFT added a comment to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..

This looks great, and takes up the parts of my patch that I cared about. Thank you for doing this.
My primary concern is that the patch includes my "early init" changes -- while I support it and think it's the right solution, especially where it reduces double indirection on class pointers, there may be issues left to iron out.

Feb 27 2019, 1:51 PM · Restricted Project

Aug 7 2018

DHowett-MSFT added inline comments to D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 7 2018, 11:29 PM

Aug 2 2018

DHowett-MSFT updated subscribers of D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 2 2018, 9:51 PM

Aug 1 2018

DHowett-MSFT accepted D50144: Add Windows support for the GNUstep Objective-C ABI V2..

This looks good to me, but I don't have a strong understanding of "outlining."

Aug 1 2018, 2:43 PM

Jun 12 2018

DHowett-MSFT added a comment to D47233: [CodeGen] Emit MSVC RTTI for Obj-C EH types.

WinObjC does this wrapping, for example.

I see. The idea of creating the type descriptors and mangled names ad-hoc for the catchable-types array is clever, and it's nice that the ABI is defined in a way that makes that work. (Expensive, but hey, it's the exceptions path.)

Jun 12 2018, 9:37 AM

May 29 2018

DHowett-MSFT accepted D47233: [CodeGen] Emit MSVC RTTI for Obj-C EH types.

This largely matches what we've done in the WinObjC clang patchset here, with the critical exception that we've chosen to mangle the EH names as though they were for structs named after their classes.

May 29 2018, 6:16 PM

Apr 30 2018

DHowett-MSFT added inline comments to D46052: GNUstep Objective-C ABI version 2.
Apr 30 2018, 3:05 PM

Apr 11 2018

DHowett-MSFT added a comment to D45305: ObjCGNU: Fix empty v3 protocols being emitted two fields short.

Hi! Is there anything else holding up this patch? Thanks!

Apr 11 2018, 8:35 PM · Restricted Project

Apr 9 2018

DHowett-MSFT updated the diff for D45305: ObjCGNU: Fix empty v3 protocols being emitted two fields short.

I've fixed the test to check the LLVM IR; I chose to use CHECK-SAME and use indentation to clarify what was going on. We're now checking that an empty protocol is emitted in full, and that all of its members match our expectations.

Apr 9 2018, 11:52 AM · Restricted Project

Apr 7 2018

DHowett-MSFT added a comment to D45305: ObjCGNU: Fix empty v3 protocols being emitted two fields short.

It seems more fragile to check the contents of the protocol rather than the invariant we care most about (its size).
I'm willing to do that, and am updating the patch accordingly, but I don't want to commit to a more fragile test than is necessary.
Illustratively, if the GNUstep runtime one day chooses to emit empty v3 protocols as {3, null, null, null, null, null, null, null} (which it may want to do to avoid emitting empty method lists, and which seems to work at runtime), a test capturing the body of the protocol will fail.

Apr 7 2018, 6:35 PM · Restricted Project

Apr 6 2018

DHowett-MSFT added a comment to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

Thanks! I don't have the means to check this in myself.

Apr 6 2018, 4:24 PM · Restricted Project
DHowett-MSFT updated the diff for D45305: ObjCGNU: Fix empty v3 protocols being emitted two fields short.

Added a test per @rjmccall's suggestion. I chose to test this by emitting assembly because the llvm ir is significantly harder to pick apart for the true _size_ of the protocol.

Apr 6 2018, 4:24 PM · Restricted Project

Apr 4 2018

DHowett-MSFT created D45305: ObjCGNU: Fix empty v3 protocols being emitted two fields short.
Apr 4 2018, 5:23 PM · Restricted Project
DHowett-MSFT updated the diff for D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

Switched from i686-windows to i686-unknown-windows-msvc as per @compnerd's suggestion.
Based on the prior discussion around MSVC's definition of va_{start,end,arg} and how it is not a valid implementation that we do not pattern-match and convert into the intrinsid, I do not see the need in implementing an MSVC va_start test.

Apr 4 2018, 2:28 PM · Restricted Project
DHowett-MSFT planned changes to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.
Apr 4 2018, 2:19 PM · Restricted Project
DHowett-MSFT added a comment to D44580: Sema: allow comparison between blocks & block-compatible objc types.

Thank you for the review! I don't have the means to check this in myself.

Apr 4 2018, 11:41 AM · Restricted Project

Mar 23 2018

DHowett-MSFT added a comment to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

@compnerd CL warns for __forceinline variadics in C code as well:

Mar 23 2018, 10:27 AM · Restricted Project

Mar 20 2018

DHowett-MSFT added inline comments to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.
Mar 20 2018, 5:41 PM · Restricted Project
DHowett-MSFT added inline comments to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.
Mar 20 2018, 10:29 AM · Restricted Project

Mar 19 2018

DHowett-MSFT added a comment to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

The compiler shouldn't inline functions which call va_start, whether or not they're marked always_inline. That should work correctly, I think, at least on trunk. (See https://reviews.llvm.org/D42556 .)

If you want to warn anyway, that's okay.

Mar 19 2018, 3:02 PM · Restricted Project
DHowett-MSFT updated the diff for D44580: Sema: allow comparison between blocks & block-compatible objc types.

Ran clang-format over changed lines. Reuploaded diff with full context.

Mar 19 2018, 1:24 PM · Restricted Project
DHowett-MSFT updated the diff for D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

Fixed formatting.

Mar 19 2018, 1:24 PM · Restricted Project
DHowett-MSFT added a reviewer for D44580: Sema: allow comparison between blocks & block-compatible objc types: compnerd.
Mar 19 2018, 1:10 PM · Restricted Project
DHowett-MSFT added a comment to D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.

Apologies if I've chosen the wrong set of reviewers.

Mar 19 2018, 1:07 PM · Restricted Project
DHowett-MSFT created D44646: Sema: in msvc compatibility mode, don't allow forceinline on variadics.
Mar 19 2018, 1:07 PM · Restricted Project

Mar 18 2018

DHowett-MSFT updated the diff for D44580: Sema: allow comparison between blocks & block-compatible objc types.

Backed out changes to block type assignment.

Mar 18 2018, 3:10 PM · Restricted Project
DHowett-MSFT planned changes to D44580: Sema: allow comparison between blocks & block-compatible objc types.
Mar 18 2018, 3:08 PM · Restricted Project

Mar 16 2018

DHowett-MSFT updated the diff for D44580: Sema: allow comparison between blocks & block-compatible objc types.

Moved files around slightly.

Mar 16 2018, 1:44 PM · Restricted Project
DHowett-MSFT updated subscribers of D44580: Sema: allow comparison between blocks & block-compatible objc types.

Why not test/SemaObjC/block_compare.mm ?

Mar 16 2018, 1:38 PM · Restricted Project
DHowett-MSFT created D44580: Sema: allow comparison between blocks & block-compatible objc types.
Mar 16 2018, 1:27 PM · Restricted Project