Page MenuHomePhabricator

nhaehnle (Nicolai Hähnle)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 9 2015, 4:06 AM (351 w, 4 d)

Recent Activity

Today

nhaehnle added a comment to D129086: [NFC][AMDGPU] Cleanup the SIOptimizeExecMasking pass..

Please just merge the two classes. There is no good reason at the moment to separate them.

Tue, Jul 5, 6:36 AM · Restricted Project, Restricted Project
nhaehnle abandoned D128166: ManagedStatic: Destroy from destructor.
Tue, Jul 5, 2:27 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project
nhaehnle added a comment to D128166: ManagedStatic: Destroy from destructor.

Abandoning this in favor of removing ManagedStatic entirely via the stack of changes that ends in D129134

Tue, Jul 5, 2:26 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project
nhaehnle abandoned D128167: CommandLine: Unregister options in the destructor.

Abandoning this in favor of a stack of changes including D129129

Tue, Jul 5, 2:26 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129134: ManagedStatic: remove the last traces.
Tue, Jul 5, 2:20 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129133: ManagedStatic: remove some remaining dead references.
Tue, Jul 5, 2:20 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129132: Remove ManagedStatic and deprecate llvm_shutdown.
Tue, Jul 5, 2:20 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129131: Remove uses of llvm_shutdown.
Tue, Jul 5, 2:20 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project
nhaehnle requested review of D129130: ManagedStatic: mark as deprecated, about to be removed.
Tue, Jul 5, 2:19 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129129: CommandLine: Cleanup options and remove use of ManagedStatic.
Tue, Jul 5, 2:19 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129127: ManagedStatic: remove from DynamicLibrary.
Tue, Jul 5, 2:18 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129126: ManagedStatic: remove from CrashRecoveryContext.
Tue, Jul 5, 2:18 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129125: ManagedStatic: remove from PassTimingInfo.
Tue, Jul 5, 2:18 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129124: ManagedStatic: remove from Interpreter/ExternalFunctions.
Tue, Jul 5, 2:18 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129123: ManagedStatic: remove from PluginLoader.
Tue, Jul 5, 2:17 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129122: ManagedStatic: remove from PassManagerBuilder.
Tue, Jul 5, 2:17 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129121: ManagedStatic: remove from TimeProfiler.
Tue, Jul 5, 2:16 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129120: ManagedStatic: remove many straightforward uses in llvm.
Tue, Jul 5, 2:15 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129119: Add llvm::llvm_fast_shutdown().
Tue, Jul 5, 2:15 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129118: CommandLine: add and use cl::SubCommand::get{All,TopLevel}.
Tue, Jul 5, 2:15 AM · Restricted Project, Restricted Project, Restricted Project
nhaehnle requested review of D129117: ManagedStatic: eliminate uses for cl::opt in the llvm directory.
Tue, Jul 5, 2:14 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129116: ManagedStatic: remove from DebugCounter.
Tue, Jul 5, 2:14 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129115: Remove unnecessary includes of ManagedStatic.h.
Tue, Jul 5, 2:14 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129114: llvm-c: Add LLVMDeleteInstruction to fix a test issue.
Tue, Jul 5, 2:13 AM · Restricted Project, Restricted Project
nhaehnle requested review of D129113: Fix test: LLVMGetBitcodeModule takes ownership of memory buffer.
Tue, Jul 5, 2:13 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D129086: [NFC][AMDGPU] Cleanup the SIOptimizeExecMasking pass..
Tue, Jul 5, 1:25 AM · Restricted Project, Restricted Project
nhaehnle accepted D128820: [ConstExpr] Don't create div/rem expressions.

LGTM, one suggestion though.

Tue, Jul 5, 1:22 AM · Restricted Project, Restricted Project

Yesterday

nhaehnle added inline comments to D128839: [DirectX backend] Add createHandle BufferLoad/Store DXIL operation.
Mon, Jul 4, 5:26 AM · Restricted Project, Restricted Project

Wed, Jun 29

nhaehnle added inline comments to D124192: [AMDGPU] Callee must always spill writelane VGPRs.
Wed, Jun 29, 6:23 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D124196: [AMDGPU][SILowerSGPRSpills] Spill SGPRs to virtual VGPRs.

What happens when the register allocator decides to split a live range of virtual registers here, i.e. if it introduces a COPY?

Wed, Jun 29, 6:22 AM · Restricted Project, Restricted Project
nhaehnle committed rG8de6d4b71294: StandardInstrumentation: print verifier output to errs (authored by nhaehnle).
StandardInstrumentation: print verifier output to errs
Wed, Jun 29, 3:12 AM · Restricted Project, Restricted Project
nhaehnle closed D128743: StandardInstrumentation: print verifier output to errs.
Wed, Jun 29, 3:12 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D124192: [AMDGPU] Callee must always spill writelane VGPRs.
Wed, Jun 29, 2:43 AM · Restricted Project, Restricted Project

Tue, Jun 28

nhaehnle requested review of D128743: StandardInstrumentation: print verifier output to errs.
Tue, Jun 28, 10:23 AM · Restricted Project, Restricted Project

Thu, Jun 23

nhaehnle accepted D128417: [llvm-c] Add LLVMGetAggregateElement() function.

LGTM

Thu, Jun 23, 4:24 AM · Restricted Project, Restricted Project

Wed, Jun 22

nhaehnle added a comment to D125795: [IR] Remove support for extractvalue constant expression.

I'm in favor of doing this, and the change looks mostly straightforward. However, I wonder if, since it is a breaking change in the C ABI, we shouldn't have at least one release cycle where LLVMConstExtractValue (and other functions that are planned to be removed) are marked as deprecated.

I don't think that's necessary. Per https://llvm.org/docs/DeveloperPolicy.html#c-api-changes C API stability is "best effort", presumably exactly for cases like this (the underlying functionality that is being exported simply no longer exists). I don't think unavoidable changes to the C API should hold back changes, especially as the impact on the C and C++ APIs is the same here. Of course, we should have a release note for the change, which I have now added.

Wed, Jun 22, 8:22 AM · Restricted Project, Restricted Project, Restricted Project
nhaehnle added a comment to D127729: [Bitcode] Support expanding constant expressions into instructions.

Thanks. This looks pretty good to me, but I'm not familiar with the bitcode reader so perhaps somebody else can still take a look.

Wed, Jun 22, 8:17 AM · Restricted Project, Restricted Project
nhaehnle accepted D127948: [TableGen] Add new operator !exists.

Awesome, LGTM

Wed, Jun 22, 8:11 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D128320: AMDGPU: Don't crash on global_ctor/dtor declaration.
Wed, Jun 22, 3:17 AM · Restricted Project, Restricted Project

Tue, Jun 21

nhaehnle added a comment to D127948: [TableGen] Add new operator !exists.

Thank you. One more thought after sleeping on it: What do you think about !exists? I think !exists<T>("foo") reads nicely as "does there exist a record of type T with name 'foo'?". It's not perfect, but I like that there's less confusion with "instanceof" or "isinstance" operators that some programming languages have.

Tue, Jun 21, 1:14 PM · Restricted Project, Restricted Project
nhaehnle added a comment to D125795: [IR] Remove support for extractvalue constant expression.

I'm in favor of doing this, and the change looks mostly straightforward. However, I wonder if, since it is a breaking change in the C ABI, we shouldn't have at least one release cycle where LLVMConstExtractValue (and other functions that are planned to be removed) are marked as deprecated.

Tue, Jun 21, 3:38 AM · Restricted Project, Restricted Project, Restricted Project
nhaehnle accepted D128213: [IR] Export ConstantFold.h header (NFC).

LGTM

Tue, Jun 21, 3:34 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D127972: [AsmPrinter] Further restrict expressions supported in global initializers.
Tue, Jun 21, 3:33 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D127729: [Bitcode] Support expanding constant expressions into instructions.

Most of this looks good to me, I just have a few nits and one bigger question about phi handling inline.

Tue, Jun 21, 3:29 AM · Restricted Project, Restricted Project

Mon, Jun 20

nhaehnle added a comment to D127851: [TableGen] Add optional default value for !cast.

Can this be abandoned in favor of the !instanceof change?

Mon, Jun 20, 5:06 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D127948: [TableGen] Add new operator !exists.

Hmm, I now saw the earlier discussion and @tra's very good points in it. If !instanceof accepts defs, then it becomes somewhat redundant with !isa, which I hadn't considered. Can you improve the error checking so that if a record is provided as an argument, the message advises that !isa should be used instead?

Mon, Jun 20, 5:05 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D127948: [TableGen] Add new operator !exists.

I think this change makes sense and it looks good to me, except for one thing: if I were to see an !instanceof without context, I would expect that it is also able to take a record/def as operand. That kind of use is likely to come up eventually, and people shouldn't have to artificial convert the record/def to its name first. So I'm in favor of this change, except I'd ask you to change the implementation (and tests) to support both kinds of use.

Mon, Jun 20, 4:58 AM · Restricted Project, Restricted Project
nhaehnle requested review of D128167: CommandLine: Unregister options in the destructor.
Mon, Jun 20, 2:29 AM · Restricted Project, Restricted Project
nhaehnle requested review of D128166: ManagedStatic: Destroy from destructor.
Mon, Jun 20, 2:28 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Wed, Jun 15

nhaehnle added inline comments to D127664: [AMDGPU] gfx11 ldsdir intrinsics and ISel.
Wed, Jun 15, 12:54 AM · Restricted Project, Restricted Project

Mon, Jun 13

nhaehnle added a comment to D127383: Don't treat readnone call in presplit coroutine as not access memory.

Thank you for doing this. It looks alright to me.

Mon, Jun 13, 2:50 AM · Restricted Project, Restricted Project

Thu, Jun 9

nhaehnle committed rG264d1136f9ae: AMDGPU/GISel: Introduce custom legalization of G_MUL (authored by nhaehnle).
AMDGPU/GISel: Introduce custom legalization of G_MUL
Thu, Jun 9, 4:39 AM · Restricted Project, Restricted Project
nhaehnle closed D124844: AMDGPU/GISel: Introduce custom legalization of G_MUL.
Thu, Jun 9, 4:39 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D124844: AMDGPU/GISel: Introduce custom legalization of G_MUL.
Thu, Jun 9, 1:03 AM · Restricted Project, Restricted Project
nhaehnle committed rGf971e77fb4ec: ADT/ArrayRef: Add makeMutableArrayRef overloads (authored by nhaehnle).
ADT/ArrayRef: Add makeMutableArrayRef overloads
Thu, Jun 9, 1:00 AM · Restricted Project, Restricted Project
nhaehnle closed D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.
Thu, Jun 9, 1:00 AM · Restricted Project, Restricted Project

Jun 4 2022

nhaehnle added a comment to D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.

Ping

Jun 4 2022, 6:19 AM · Restricted Project, Restricted Project

Jun 1 2022

nhaehnle committed rGd53de9b7ac39: update_mir_test_checks: Better handling of common prefixes (authored by nhaehnle).
update_mir_test_checks: Better handling of common prefixes
Jun 1 2022, 1:54 PM · Restricted Project, Restricted Project
nhaehnle closed D126411: update_mir_test_checks: Better handling of common prefixes.
Jun 1 2022, 1:53 PM · Restricted Project, Restricted Project
nhaehnle added inline comments to D126411: update_mir_test_checks: Better handling of common prefixes.
Jun 1 2022, 1:52 PM · Restricted Project, Restricted Project
nhaehnle added inline comments to D115747: [AMDGPU] Flush the vmcnt counter in loop preheader when necessary.
Jun 1 2022, 1:34 PM · Restricted Project, Restricted Project, Restricted Project
nhaehnle added inline comments to D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.
Jun 1 2022, 1:27 PM · Restricted Project, Restricted Project
nhaehnle added a comment to D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.

Ping -- are there any substantial comments left? Based on previous feedback this is probably good to go with the changes I made last week?

Jun 1 2022, 6:25 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D115747: [AMDGPU] Flush the vmcnt counter in loop preheader when necessary.
Jun 1 2022, 6:24 AM · Restricted Project, Restricted Project, Restricted Project

May 27 2022

nhaehnle committed rG5df2893a9a13: AMDGPU: Add G_AMDGPU_MAD_64_32 instructions (authored by nhaehnle).
AMDGPU: Add G_AMDGPU_MAD_64_32 instructions
May 27 2022, 10:37 AM · Restricted Project, Restricted Project
nhaehnle closed D124843: AMDGPU: Add G_AMDGPU_MAD_64_32 instructions.
May 27 2022, 10:36 AM · Restricted Project, Restricted Project
nhaehnle updated the diff for D126411: update_mir_test_checks: Better handling of common prefixes.

Add a simple test case

May 27 2022, 10:16 AM · Restricted Project, Restricted Project

May 26 2022

nhaehnle updated the diff for D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.

Address reviews:

  • fix comments
  • moved to ArrayRefTest.cpp
  • add a check that the mutable array ref elements can be assigned to
May 26 2022, 11:29 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable.
May 26 2022, 8:46 AM · Restricted Project, Restricted Project, Restricted Project
nhaehnle added a comment to D126411: update_mir_test_checks: Better handling of common prefixes.

This looks reasonable to me, would it be possible to add a test showing the new behaviour?

May 26 2022, 8:18 AM · Restricted Project, Restricted Project

May 25 2022

nhaehnle requested review of D126421: ADT/ArrayRef: Add makeMutableArrayRef overloads.
May 25 2022, 1:46 PM · Restricted Project, Restricted Project
nhaehnle requested review of D126411: update_mir_test_checks: Better handling of common prefixes.
May 25 2022, 12:51 PM · Restricted Project, Restricted Project
nhaehnle committed rGaffa1b1cc52d: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane (authored by nhaehnle).
AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane
May 25 2022, 10:14 AM · Restricted Project, Restricted Project
nhaehnle added a reverting change for rG2a28467e5389: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane: rGafc90101a5b0: Revert "AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane".
May 25 2022, 10:04 AM · Restricted Project, Restricted Project
nhaehnle committed rGafc90101a5b0: Revert "AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane" (authored by nhaehnle).
Revert "AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane"
May 25 2022, 10:04 AM · Restricted Project, Restricted Project
nhaehnle added a reverting change for D125324: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane: rGafc90101a5b0: Revert "AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane".
May 25 2022, 10:03 AM · Restricted Project, Restricted Project
nhaehnle committed rG2a28467e5389: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane (authored by nhaehnle).
AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane
May 25 2022, 9:35 AM · Restricted Project, Restricted Project
nhaehnle added inline comments to D125324: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane.
May 25 2022, 9:35 AM · Restricted Project, Restricted Project
nhaehnle closed D125324: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane.
May 25 2022, 9:35 AM · Restricted Project, Restricted Project

May 24 2022

nhaehnle added inline comments to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable.
May 24 2022, 1:09 PM · Restricted Project, Restricted Project, Restricted Project
nhaehnle added a comment to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable.

You can use the "Edit Related Revisions" option in the right-hand side menu of Phabricator to link this revision with the others of the series. I can't really speak for the Clang parts, but the LLVM parts looks reasonable to me modulo some detail comments.

May 24 2022, 1:03 PM · Restricted Project, Restricted Project, Restricted Project
nhaehnle added a comment to D124193: [AMDGPU] Add WWM reserved VGPRs to WWMSpills.

It makes sense to unify that handling, but I object to the term "lane VGPRs". In a way, it's the other way around: the registers that are used for SGPR->VGPR spills are de facto "WWM VGPRs", because they're used in a wave-wide manner, which is the opposite of lane-based usage.

May 24 2022, 8:44 AM · Restricted Project, Restricted Project
nhaehnle requested changes to D124192: [AMDGPU] Callee must always spill writelane VGPRs.

I don't think the premise of this patch is correct. A source-level writelane intrinsic is not allowed to overwrite inactive lanes. If it does, then that's UB. If you want wave-wide writelane in source, the way to achieve that would be to use WWM.

May 24 2022, 8:36 AM · Restricted Project, Restricted Project

May 16 2022

nhaehnle added a comment to D125435: [TableGen][DirectX] Add tableGen backend to generate DXIL operation for DirectX backend..

+1 for creating this stuff using TableGen.

May 16 2022, 5:21 PM · Restricted Project, Restricted Project
nhaehnle added a comment to D125519: [TableGen][DirectX] Add tableGen backend to generate map from llvm intrinsic to DXIL operation..

Running TableGen multiple times is a bit annoying for LLVM build times. Have you considered packing all outputs into the same .inc file?

May 16 2022, 5:12 PM · Restricted Project, Restricted Project

May 11 2022

nhaehnle added a comment to D123901: [LLVM][Casting.h] Update dyn_cast machinery to provide more control over how the casting is performed..

I'd prefer we have one thing. Re:

I like this idea - I originally had dyn_cast_or_null with an overload for Optional but it looked goofy. I like dyn_cast_if_present with maybe some forwarding dyn_cast_or_null to avoid breaking everyone.

it is super awesome to stage things in and give people a migration window, but if it is the right thing to rename this, then we should drop the old name, not carry it around forever.

May 11 2022, 9:53 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D125276: [TableGen] Remove the use of global Record state.

+1 for doing this, thank you!

May 11 2022, 9:42 AM · Restricted Project, Restricted Project
nhaehnle accepted D125277: [TableGen] Refactor TableGenParseFile to no longer use a callback.

Thank you for doing this! Not a detailed review but the interface and approach LGTM.

May 11 2022, 9:42 AM · Restricted Project, Restricted Project, Restricted Project
nhaehnle requested changes to D125378: [Attribute] Introduce shuffle attribute to be used for __shfl_sync like cross-lane APIs.

I'm sorry to say that this patch seems confused about semantics. It lacks clear definitions, and in particular for the shuffle attribute in LLVM IR, you almost certainly just want the already existing convergent instead.

May 11 2022, 9:36 AM · Restricted Project, Restricted Project, Restricted Project

May 10 2022

nhaehnle added inline comments to D124843: AMDGPU: Add G_AMDGPU_MAD_64_32 instructions.
May 10 2022, 9:22 AM · Restricted Project, Restricted Project
nhaehnle updated the diff for D124843: AMDGPU: Add G_AMDGPU_MAD_64_32 instructions.
  • address review comments
  • build on a factored-out buildReadFirstLane (see D125324)
May 10 2022, 9:21 AM · Restricted Project, Restricted Project
nhaehnle requested review of D125324: AMDGPU/GISel: Factor out AMDGPURegisterBankInfo::buildReadFirstLane.
May 10 2022, 9:20 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D124981: [AMDGPU] Enable WQM if demotes and softwqm are combined.

Having gone over the argument with @ruiling separately, I think he has a point. Have you double-checked whether this change is still required after the related LLPC changes have been made?

May 10 2022, 8:01 AM · Restricted Project, Restricted Project
nhaehnle committed rG6c2a01ce3a82: AMDGPU/SDAG: Refine the fold to v_mad_[iu]64_[iu]32 (authored by nhaehnle).
AMDGPU/SDAG: Refine the fold to v_mad_[iu]64_[iu]32
May 10 2022, 7:16 AM · Restricted Project, Restricted Project
nhaehnle closed D123835: AMDGPU/SDAG: Refine the fold to v_mad_[iu]64_[iu]32.
May 10 2022, 7:16 AM · Restricted Project, Restricted Project
nhaehnle committed rG38bb46523f87: GlobalISel: Trivial documentation and comment fixes (authored by nhaehnle).
GlobalISel: Trivial documentation and comment fixes
May 10 2022, 5:49 AM · Restricted Project, Restricted Project
nhaehnle closed D124808: GlobalISel: Trivial documentation and comment fixes.
May 10 2022, 5:49 AM · Restricted Project, Restricted Project

May 9 2022

nhaehnle added a comment to D124981: [AMDGPU] Enable WQM if demotes and softwqm are combined.

softwqm is used by our implementation of subgroup operations: if helper invocations are there, then subgroup operations must interact with them.

May 9 2022, 10:09 AM · Restricted Project, Restricted Project

May 4 2022

nhaehnle added a comment to D120544: [AMDGPU] Omit unnecessary waitcnt before barriers.

Thank you for the summary.

May 4 2022, 4:21 AM · Restricted Project, Restricted Project
nhaehnle added a comment to D124884: [AMDGPU] Add intrinsics llvm.amdgcn.{raw|struct}.buffer.load.lds.

To confirm: is that OK to add yet another imm to the end of operands of the intrinsic to select a byte size? And then remove the overload. If yes I will do it tomorrow.

There's the elementtype attribute for this case which some arm intrinsics seem to be using. Not sure how you're supposed to define an intrinsic to use it though

Apparently this isn't well developed but works. The verifier is hardcoding these intrinsics (it's also looking at the call site instead of the intrinsic declaration attributes)

May 4 2022, 4:14 AM · Restricted Project, Restricted Project