dneilson (Daniel Neilson)
Software Engineer

Projects

User does not belong to any projects.

User Details

User Since
Wed, Apr 26, 6:42 AM (3 w, 6 d)

Previously worked with IBM for 3.5 years on the optimizer for the XL Compiler on p-Series hardware; notably, I was heavily involved in implementing support for OpenMP 4.x GPU offloading.

Currently at Azul Systems working on the LLVM-based JIT in the Zing JVM.

Recent Activity

Today

dneilson added inline comments to D33355: [IR] Add additional addParamAttr/removeParamAttr to AttributeList API.
Tue, May 23, 10:46 AM
dneilson added inline comments to D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
Tue, May 23, 8:01 AM
dneilson added inline comments to D33355: [IR] Add additional addParamAttr/removeParamAttr to AttributeList API.
Tue, May 23, 7:04 AM

Fri, May 19

dneilson updated the diff for D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.

Addressing some comments -- use of getters, adding assertions to setters, and some minor wording changes to LangRef.

Fri, May 19, 1:27 PM
dneilson updated the diff for D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.

Addressing most concerns.

Fri, May 19, 12:15 PM
dneilson updated the summary of D33355: [IR] Add additional addParamAttr/removeParamAttr to AttributeList API.
Fri, May 19, 11:46 AM
dneilson updated the diff for D33355: [IR] Add additional addParamAttr/removeParamAttr to AttributeList API.

clang-formatting patch

Fri, May 19, 11:37 AM
dneilson added inline comments to D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
Fri, May 19, 11:03 AM
dneilson added a comment to D33359: [LoopIdiom] Refactor return value of LoopIdiomRecognize::isLegalStore.

Thanks. Can someone please upstream this? I do not have commit access.

Fri, May 19, 9:48 AM
dneilson created D33359: [LoopIdiom] Refactor return value of LoopIdiomRecognize::isLegalStore.
Fri, May 19, 9:26 AM
dneilson created D33355: [IR] Add additional addParamAttr/removeParamAttr to AttributeList API.
Fri, May 19, 6:59 AM

Thu, May 18

dneilson updated subscribers of D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.
Thu, May 18, 1:00 PM
dneilson updated the diff for D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
  • Address functional issue re: don't want to accidentally flag unordered atomic stores as okay for memset & memset_pattern.
  • Add test case to verify functional issue is non-issue.
  • Add align attribute to the pointer args on the generated intrinsic call.
Thu, May 18, 11:58 AM
dneilson updated the diff for D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.

Addressing suggestions.

Thu, May 18, 11:45 AM

Wed, May 17

dneilson added inline comments to D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.
Wed, May 17, 1:24 PM
dneilson added inline comments to D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
Wed, May 17, 8:35 AM
dneilson added a comment to D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.

I'm pretty sure this patch is buggy in a fairly major way. isLegalStore is a helper function used when matching three types of intrinsics: memset, memcpy, and memset_patternN. It looks like you're accidentally matching unorder atomics in all three idioms without the corresponding intrinsic support. At minimum, I'd want test cases showing these transforms *not* triggering.

I suspect that the code would become much cleaner if you restructured isLegalStore to return an enum of *which* intrinsic it was a legal store for. This could be a preparatory patch before this one to make it easier to reason about.

Wed, May 17, 8:30 AM

Tue, May 16

dneilson updated the diff for D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
  • Updating to reflect changes in prerequisite change.
  • Moved CHECKs in test case to start of procs.
Tue, May 16, 2:37 PM
dneilson updated the diff for D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.
  • Addressed suggested changes to the LangRef doc for the intrinsic.
  • Split out the is unordered parameter into two separate parameters -- dest_unordered & src_unordered.
Tue, May 16, 2:32 PM
dneilson added a comment to D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.

I'll make the suggested changes to the LangRef.

Tue, May 16, 12:11 PM
dneilson added a comment to D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.

Do we get any practical benefit from separately specifying whether the source and destination require unordered operations?

Tue, May 16, 12:06 PM
dneilson added a dependent revision for D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic: D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
Tue, May 16, 11:20 AM
dneilson added a dependency for D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy: D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.
Tue, May 16, 11:20 AM
dneilson added a reviewer for D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic: efriedma.
Tue, May 16, 9:33 AM
dneilson created D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy.
Tue, May 16, 9:20 AM
dneilson added a comment to D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.

Note that this is the first of a series of patches that are being developed for the unordered atomic memcpy. Minimally, the plan is to push the following changes one at a time to minimize risk and impact on others:
i. Change intrinsic name, prototype (to match memcpy closely), & documentation.
ii. Add code to loop idiom to recognize the element unordered atomic memcpy.
iii. Add code to instcombine & selection dag builder to lower the intrinsic.
iv. Add an isunordered() to the MemIntrinsic introspection class (returning false for all existing intrinsics), and add calls to it to all passes it's relevant.
v. Add intrinsic into the introspection hierarchy & complete support for new intrinsic in passes.

Tue, May 16, 7:37 AM
dneilson created D33240: [Atomics] Rename and change prototype for atomic memcpy intrinsic.
Tue, May 16, 7:34 AM

Mon, May 8

dneilson added inline comments to D32536: Extend memcpy expansion in Transform/Utils to handle wider operand types..
Mon, May 8, 6:45 AM