Page MenuHomePhabricator

majnemer (David Majnemer)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 15 2013, 2:02 AM (336 w, 3 h)

Recent Activity

Thu, Sep 19

majnemer accepted D67356: [InstCombine] Simplify @llvm.usub.with.overflow+non-zero check (PR43251).

LGTM

Thu, Sep 19, 10:01 AM · Restricted Project

Thu, Sep 12

majnemer added inline comments to D67507: Refer to IEEE 754-2019 in langref instead of 2018 draft.
Thu, Sep 12, 10:21 AM · Restricted Project

Wed, Sep 4

majnemer added inline comments to D66827: Add support for MS qualifiers __ptr32, __ptr64, __sptr, __uptr..
Wed, Sep 4, 3:29 PM · Restricted Project, Restricted Project

Wed, Aug 28

majnemer added inline comments to D66836: [libc++] Add `__truncating_cast` for safely casting float types to integers.
Wed, Aug 28, 5:35 PM · Restricted Project

Aug 23 2019

majnemer added a reviewer for D64665: [MachinePipeliner] Refactor schedule emission logic: ThomasRaoux.
Aug 23 2019, 2:23 PM · Restricted Project
majnemer added a reviewer for D66368: [MachinePipeliner] Factor experimental codegen into a class: ThomasRaoux.
Aug 23 2019, 2:15 PM · Restricted Project

Aug 14 2019

majnemer added inline comments to D66190: [CodeGen] Add a pass to do block predication on SSA machine IR.
Aug 14 2019, 5:12 PM · Restricted Project
majnemer added inline comments to D64665: [MachinePipeliner] Refactor schedule emission logic.
Aug 14 2019, 4:58 PM · Restricted Project

Jul 15 2019

majnemer added inline comments to D63396: [WinEH] Allocate space in funclets stack to save XMM CSRs.
Jul 15 2019, 9:39 PM · Restricted Project

Jul 6 2019

majnemer committed rG617df204b5b4: [CodeGen] Add larger vector types for i32 and f32 (authored by majnemer).
[CodeGen] Add larger vector types for i32 and f32
Jul 6 2019, 9:51 PM
majnemer committed rL365274: [CodeGen] Add larger vector types for i32 and f32.
[CodeGen] Add larger vector types for i32 and f32
Jul 6 2019, 9:48 PM
majnemer closed D64141: [CodeGen] Add larger vector types for i32 and f32.
Jul 6 2019, 9:48 PM · Restricted Project

Jul 3 2019

majnemer accepted D64141: [CodeGen] Add larger vector types for i32 and f32.

Most of this looks mechanical; I don't think the MVT changes should be contentious. However, the "is65536BitVector()" predicates are starting to get a bit unwieldy to read.

Does an out of tree target need these predicates? I feel they're sufficiently unreadable to either change the format ("is64kBitVector"?) or elide them for larger types.

Cheers,

James

I agree, it is not really needed I added it for consistency. I don't mind changing it to the format suggested. Which ones do you think should be changed?

Jul 3 2019, 11:39 AM · Restricted Project

Apr 1 2019

majnemer accepted D60079: [PruneEH] Don't split musttail call from ret.

LGTM

Apr 1 2019, 7:13 PM · Restricted Project
majnemer accepted D60080: [SimplifyCFG] Don't split musttail call from ret.

LGTM

Apr 1 2019, 7:13 PM · Restricted Project

Mar 12 2019

majnemer added inline comments to D59286: Allow pointer to static member function.
Mar 12 2019, 8:39 PM

Jan 23 2019

majnemer added a comment to D53765: [RFC prototype] Implementation of asm-goto support in LLVM.

Do you have any tests which perform a callbr with a normal function target rather than inline asm?

No, and Verifier.cpp currently errors for it.

Jan 23 2019, 3:49 PM · Restricted Project

Jan 22 2019

majnemer added a comment to D53765: [RFC prototype] Implementation of asm-goto support in LLVM.

Do you have any tests which perform a callbr with a normal function target rather than inline asm?

Jan 22 2019, 6:14 PM · Restricted Project

Jan 8 2019

majnemer added inline comments to D56466: [CodeGen] Clarify comment about COFF common symbol alignment.
Jan 8 2019, 4:51 PM

Jan 7 2019

majnemer added inline comments to D56391: Limit COFF 'common' emission to <=32 alignment types..
Jan 7 2019, 12:41 PM

Dec 18 2018

majnemer added inline comments to D55853: Ignore ConstantExpr in IgnoreParens.
Dec 18 2018, 2:17 PM

Dec 14 2018

majnemer added inline comments to D55715: Add AddressSpace mangling to MS mode.
Dec 14 2018, 11:44 AM

Nov 29 2018

majnemer accepted D55077: [Mem2Reg] Fix nondeterministic corner case.

LGTM

Nov 29 2018, 4:54 PM
majnemer accepted D54965: [obj2yaml] [COFF] Write RVA instead of VA for sections, fix roundtripping executables.

LGTM

Nov 29 2018, 10:45 AM

Nov 12 2018

majnemer added inline comments to D53877: [IR] Strawman for dedicated FNeg IR instruction.
Nov 12 2018, 8:37 AM

Oct 31 2018

majnemer added inline comments to D53540: [COFF, ARM64] Implement support for SEH extensions __try/__except/__finally.
Oct 31 2018, 1:06 PM

Oct 8 2018

majnemer added inline comments to D53000: [Support] exit with custom return code for SIGPIPE.
Oct 8 2018, 3:59 PM · Restricted Project

Sep 27 2018

majnemer added inline comments to D52384: [Sema] Fix redeclaration contexts for enumerators in C.
Sep 27 2018, 10:53 PM

Sep 25 2018

majnemer accepted D52499: [clang-cl] Make /Gs imply default stack probes, not /Gs0 (PR39074).

FWIW, Microsoft's newest documentation does not say that /O2 and /O1 imply /Gs: https://docs.microsoft.com/en-us/cpp/build/reference/o1-o2-minimize-size-maximize-speed?view=vs-2017

Sep 25 2018, 11:19 AM

Sep 24 2018

majnemer added inline comments to D51524: [ARM64] [Windows] Handle funclets.
Sep 24 2018, 11:50 PM
majnemer added inline comments to D51524: [ARM64] [Windows] Handle funclets.
Sep 24 2018, 8:04 PM
majnemer added inline comments to D51524: [ARM64] [Windows] Handle funclets.
Sep 24 2018, 5:12 PM

Sep 7 2018

majnemer accepted D51820: [COFF] Implement llvm.global_ctors priorities for MSVC COFF targets.

LGTM

Sep 7 2018, 3:49 PM

Aug 22 2018

majnemer accepted D51149: MC: Don't align COFF section contents..

LGTM

Aug 22 2018, 10:10 PM

Aug 16 2018

majnemer added a comment to D50877: [MS] Mangle a hash of the main file path into anonymous namespaces.

How does MSVC handle this case? What mangled name does it generate?

Aug 16 2018, 5:27 PM

Aug 15 2018

majnemer accepted D50806: [MS Demangler] Demangle string literals.

LGTM

Aug 15 2018, 2:25 PM

Aug 7 2018

majnemer added inline comments to D50394: [MS Demangler] Properly handle backreferences of special names.
Aug 7 2018, 10:33 AM
majnemer accepted D50394: [MS Demangler] Properly handle backreferences of special names.

LGTM

Aug 7 2018, 10:33 AM

Aug 5 2018

majnemer added inline comments to D50222: [CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case).
Aug 5 2018, 2:39 PM · Restricted Project

Aug 4 2018

majnemer added inline comments to D50222: [CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case).
Aug 4 2018, 10:35 PM · Restricted Project

Aug 1 2018

majnemer accepted D50145: [MS Demangler] Demangle templated operator overloads.

LGTM

Aug 1 2018, 11:18 AM

Jul 29 2018

majnemer added inline comments to D49965: [MS Demangler] Demangle symbols in function local scopes.
Jul 29 2018, 7:32 PM
majnemer added a comment to D49965: [MS Demangler] Demangle symbols in function local scopes.

I had thought of a tryDemangleNumber function but it didn’t really fit the
style of code . (Ie I don’t really do that anywhere else so it felt a
little out of place). I can still do that if you think it’s better, I don’t
have a strong preference

Jul 29 2018, 6:09 PM
majnemer accepted D49965: [MS Demangler] Demangle symbols in function local scopes.
Jul 29 2018, 6:09 PM
majnemer added inline comments to D49965: [MS Demangler] Demangle symbols in function local scopes.
Jul 29 2018, 2:33 PM

Jul 25 2018

majnemer added inline comments to D49821: [MC] Add support for the .rva assembler directive for COFF targets.
Jul 25 2018, 2:50 PM

Jul 23 2018

majnemer added inline comments to D49644: [COFF] Hoist constant pool handling from X86AsmPrinter into AsmPrinter.
Jul 23 2018, 12:29 PM

Jul 22 2018

majnemer accepted D49644: [COFF] Hoist constant pool handling from X86AsmPrinter into AsmPrinter.

LGTM

Jul 22 2018, 12:24 PM

Jul 21 2018

majnemer added inline comments to D49630: [MS Demangler] Demangle data member pointers.
Jul 21 2018, 10:49 PM

Jul 19 2018

majnemer accepted D49552: Add a Microsoft Demangler library and utility..

I'm worried about some extreme template stuff (function templates are not considered for back-referencing but other templates and normal functions are OK) but you are gonna work thru the rest of mangle-ms-* so you'll get there ;)

Jul 19 2018, 8:21 PM
majnemer added inline comments to D49552: Add a Microsoft Demangler library and utility..
Jul 19 2018, 9:30 AM

Jul 15 2018

majnemer accepted D49354: [MinGW] Automatically mangle Windows-specific entry points as C.

LGTM

Jul 15 2018, 5:03 PM

Jul 3 2018

majnemer added inline comments to D48841: Add support for __declspec(code_seg("segname")).
Jul 3 2018, 3:46 PM

Jun 8 2018

majnemer accepted D47875: [MS ABI] Mangle unnamed empty enums (PR37723).

LGTM

Jun 8 2018, 4:36 PM

Jun 7 2018

majnemer added inline comments to D47875: [MS ABI] Mangle unnamed empty enums (PR37723).
Jun 7 2018, 7:54 AM

May 31 2018

majnemer accepted D47611: Change ambiguous uses of term 'funclet' to 'EH scopes'. NFC..

LGTM

May 31 2018, 4:59 PM

May 22 2018

majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
May 22 2018, 8:49 AM

May 21 2018

majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
May 21 2018, 8:39 AM
majnemer accepted D47005: [WebAssembly] Add functions for EHScopes.

LGTM

May 21 2018, 8:35 AM

May 20 2018

majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
May 20 2018, 10:38 PM
majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
May 20 2018, 10:22 PM
majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
May 20 2018, 12:00 PM
majnemer added inline comments to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.
May 20 2018, 11:50 AM

May 18 2018

majnemer added inline comments to D43746: [WebAssembly] Add Wasm exception handling prepare pass.
May 18 2018, 8:45 AM

May 17 2018

majnemer added inline comments to D43746: [WebAssembly] Add Wasm exception handling prepare pass.
May 17 2018, 4:36 PM
majnemer accepted D47005: [WebAssembly] Add functions for EHScopes.

LGTM

May 17 2018, 4:07 PM

May 16 2018

majnemer accepted D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().

LGTM with that final nit fixed.

May 16 2018, 9:45 PM
majnemer added inline comments to D44090: [WebAssembly] Support instruction selection for catching exceptions.
May 16 2018, 3:28 PM
majnemer added inline comments to D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().
May 16 2018, 3:24 PM
majnemer added inline comments to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.
May 16 2018, 3:20 PM

May 9 2018

majnemer added a comment to D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().

As I said above, the term 'funclet' seems to be used pretty everywhere including clang. To summarize its usage,

  1. Small outlined functions themselves
  2. Funcletpad instructions, such as catchpad or cleanuppad
  3. The structure of BBs starting from catchpad/cleanuppad and ending with catchret/cleanupret, which can be nested
  4. This Windows IR -based EH itself

    Now I'm thinking that maybe we should use isFuncletEHPersonality for the use cases here I replaced with usesWindowsEHInstructions, and come up with a new name to give to the use cases that pertain to real outlined small functions.
May 9 2018, 3:37 PM

Apr 20 2018

majnemer added inline comments to D45839: [analyzer] Add support for WebKit "unified sources"..
Apr 20 2018, 3:34 PM

Apr 17 2018

majnemer accepted D45738: Add Microsoft mangling for _Float16, similar to technique used for _Complex.

LGTM

Apr 17 2018, 2:33 PM

Apr 2 2018

majnemer added a comment to D45174: non-zero-length bit-fields should make a class non-empty.

I wonder if we can delete the getNonVirtualSize() check now -- I don't see any way that an empty class can have a nonzero nvsize except by this nonempty anonymous bit-fields situation.

Yup, looks like:

   if (!FoundBase) {
-    if (MDCUsesEBO && BaseDecl->isEmpty() &&
-        BaseLayout.getNonVirtualSize() == CharUnits::Zero()) {
+    if (MDCUsesEBO && BaseDecl->isEmpty()) {
+      assert(BaseLayout.getNonVirtualSize() == CharUnits::Zero());
       BaseOffset = CharUnits::Zero();
     } else {

Zero test failures.

Apr 2 2018, 7:12 PM

Mar 30 2018

majnemer added a comment to D45112: [MS] Emit vftable thunks for functions with incomplete prototypes.

Does this help PR25641?

Mar 30 2018, 4:45 PM

Mar 27 2018

majnemer added a comment to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.

Some quick first pass comments.

Mar 27 2018, 3:15 PM

Mar 22 2018

majnemer added inline comments to D44810: [PDB] Make LLD PDBs look a little more like Microsoft PDBs.
Mar 22 2018, 8:07 PM
majnemer added inline comments to D44810: [PDB] Make LLD PDBs look a little more like Microsoft PDBs.
Mar 22 2018, 7:03 PM

Mar 20 2018

majnemer accepted D44641: [ObjCARC] Add funclet token to ARC marker.

LGTM

Mar 20 2018, 1:40 PM

Mar 19 2018

majnemer added inline comments to D44626: [InstCombine] Fold (A OR B) AND B code sequence over Phi node .
Mar 19 2018, 8:59 AM

Mar 14 2018

majnemer added a comment to D44504: COFF: Implement string tail merging..

Do you have a test to make sure that a wide string literal doesn't point into a misaligned offset into a narrow string literal?

Mar 14 2018, 6:53 PM

Mar 13 2018

majnemer added a comment to D44406: [CodeView] Emit HasConstructorOrDestructor class option for non-trivial constructors.

Even for something like:

Mar 13 2018, 9:54 PM · Restricted Project

Mar 9 2018

majnemer accepted D44327: ObjCARC: teach the cloner about funclets.

LGTM

Mar 9 2018, 5:20 PM
majnemer added inline comments to D44327: ObjCARC: teach the cloner about funclets.
Mar 9 2018, 2:35 PM
majnemer accepted D44308: [ConstantFold] fp_binop AnyConstant, undef --> NaN.

LGTM

Mar 9 2018, 8:55 AM

Mar 6 2018

majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
Mar 6 2018, 10:36 PM
majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
Mar 6 2018, 9:20 PM

Mar 5 2018

majnemer added inline comments to D44134: [WebAssembly] Add WebAssemblyException information analysis.
Mar 5 2018, 10:21 PM

Feb 25 2018

majnemer added inline comments to D43746: [WebAssembly] Add Wasm exception handling prepare pass.
Feb 25 2018, 8:07 PM

Feb 22 2018

majnemer added a comment to D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).

Do we need to also track whether the argument is a pointer or reference to a UUID (and also the cv-qualifiers)? For the Declaration case, we track this by tracking the corresponding parameter type; the same thing would presumably work here.

We should really, really avoid making this sort of change without first trying to desugar uuidof into a reference to a variable. That would solve a ton of problems, problems like this one.

This desugaring approach is not how we generally do things in Clang. The fact that MS exposes a variable that can be named from user code is, in my opinion, simply a bug in their implementation -- their implementation details are leaking -- and not part of the actual semantics here. I view this as exactly analogous to typeid (which would have exactly the same problems if its result could be used as a non-type template parameter); as with typeid, __uuidof notionally produces a global object not corresponding to any variable. If we want to model this as a declaration, we could add a new Decl subclass for these uuid objects (and eventually also for objects produced by typeid). But I don't think we should model them as variables unless that's actually part of their intended semantics.

Feb 22 2018, 2:53 PM
majnemer added a comment to D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).

We should really, really avoid making this sort of change without first trying to desugar uuidof into a reference to a variable. That would solve a ton of problems, problems like this one.

Not sure I fully understand what you are proposing?

Are you proposing that generated symbols like this:
??4?$A@$E?_GUID_ddb47a6a_0f23_11d5_9109_00e0296b75d3@@3U__s_GUID@@B@@QEAAAEAV0@AEBV0@@Z
Be de-sugared? Wouldn't that be different that what MS is doing?
Can you please give me more details about what you are thinking of?
Thanks.

Feb 22 2018, 2:04 PM
majnemer added inline comments to D43639: [llvm-pdbdump] Dump restrict type qualifier.
Feb 22 2018, 1:13 PM
majnemer added a comment to D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).

We should really, really avoid making this sort of change without first trying to desugar uuidof into a reference to a variable. That would solve a ton of problems, problems like this one.

Feb 22 2018, 11:34 AM
majnemer updated subscribers of D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).
Feb 22 2018, 11:29 AM

Feb 16 2018

majnemer added inline comments to D42926: [CodeView] Initial support for emitting S_BLOCK32 symbols for lexical scopes.
Feb 16 2018, 9:18 AM

Feb 12 2018

majnemer accepted D42833: [LICM] update BlockColors after splitting predecessors.

LGTM

Feb 12 2018, 8:23 AM
majnemer added a comment to D43184: [WIP] [ItaniunCXXABI] Add an option for loading the type info vtable with dllimport.

Do I understand correctly that this workarounds a feature missing in lld? Does MinGW emit the same sorts of object files as clang in these scenarios?

Feb 12 2018, 8:20 AM

Feb 8 2018

majnemer accepted D43052: [ValueTracking] don't crash when assumptions conflict (PR36270).

LGTM

Feb 8 2018, 1:11 AM

Feb 7 2018

majnemer accepted D43033: [WinEH] Put funclet bundles on inline asm calls.

LGTM

Feb 7 2018, 11:43 PM

Feb 5 2018

majnemer added a comment to D42758: Support `#pragma comment(lib, "name")` in the frontend for ELF.

docs/LanguageExtensions.html should be updated to mention that we support this extension on all ELF targets.

Feb 5 2018, 10:15 AM