dneilson (Daniel Neilson)
Software Engineer

Projects

User does not belong to any projects.

User Details

User Since
Apr 26 2017, 6:42 AM (42 w, 4 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

Mon, Feb 12

dneilson committed rL324960: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
[InstCombine] Simplify MemTransferInst's source and dest alignments separately
Mon, Feb 12, 3:09 PM
dneilson closed D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
Mon, Feb 12, 3:09 PM
dneilson committed rL324955: [SafeStack] Use updated CreateMemCpy API to set more accurate source and….
[SafeStack] Use updated CreateMemCpy API to set more accurate source and…
Mon, Feb 12, 2:42 PM
dneilson closed D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..
Mon, Feb 12, 2:42 PM
dneilson updated the diff for D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
  • Was being stupid. We can just use the alignment from the memory intrinsic on the materialized loads/stores, so do that.
Mon, Feb 12, 1:54 PM
dneilson added inline comments to D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
Mon, Feb 12, 12:23 PM
dneilson added a comment to D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..

ping

Mon, Feb 12, 6:50 AM
dneilson added a comment to D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.

ping

Mon, Feb 12, 6:50 AM
dneilson added a comment to D43081: [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs separately.

ping

Mon, Feb 12, 6:50 AM
dneilson added a comment to D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.

ping

Mon, Feb 12, 6:50 AM

Fri, Feb 9

dneilson committed rL324784: [Hexagon] Update uses of deprecated IRBuilder CreateMemCpy/Move calls.
[Hexagon] Update uses of deprecated IRBuilder CreateMemCpy/Move calls
Fri, Feb 9, 3:35 PM
dneilson committed rL324781: [ARMFastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment() (NFCI).
[ARMFastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment() (NFCI)
Fri, Feb 9, 3:33 PM
dneilson committed rL324774: [AMDGPUPromoteAlloca] Replace deprecated memory intrinsic APIs (NFCI).
[AMDGPUPromoteAlloca] Replace deprecated memory intrinsic APIs (NFCI)
Fri, Feb 9, 2:00 PM
dneilson committed rL324773: [AArch64FastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment()….
[AArch64FastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment()…
Fri, Feb 9, 1:54 PM
dneilson abandoned D42815: [AArch64FastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment() (NFCI).
Fri, Feb 9, 1:49 PM

Thu, Feb 8

dneilson committed rL324654: [DSan] Update uses of memory intrinsic get/setAlignment to new API (NFC).
[DSan] Update uses of memory intrinsic get/setAlignment to new API (NFC)
Thu, Feb 8, 1:30 PM
dneilson committed rL324653: [ASan] Update uses of IRBuilder::CreateMemCpy to new API (NFC).
[ASan] Update uses of IRBuilder::CreateMemCpy to new API (NFC)
Thu, Feb 8, 1:30 PM
dneilson committed rL324642: [MSan] Update uses of IRBuilder::CreateMemCpy to new API (NFC).
[MSan] Update uses of IRBuilder::CreateMemCpy to new API (NFC)
Thu, Feb 8, 11:48 AM
dneilson added a comment to D43081: [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs separately.

@hfinkel I hope that you don't mind being added as a reviewer; it looks like you're the original author of much of the memory intrinsic handling in this pass.

Thu, Feb 8, 10:53 AM
dneilson created D43081: [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs separately.
Thu, Feb 8, 10:52 AM
dneilson committed rL324626: [LoopIdiom] Be more aggressive when setting alignment in memcpy.
[LoopIdiom] Be more aggressive when setting alignment in memcpy
Thu, Feb 8, 9:36 AM

Tue, Feb 6

dneilson committed rL324402: [DSE] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFC).
[DSE] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFC)
Tue, Feb 6, 1:20 PM
dneilson committed rL324395: [InferAddressSpaces] Update uses of IRBuilder memory intrinsic creation to new….
[InferAddressSpaces] Update uses of IRBuilder memory intrinsic creation to new…
Tue, Feb 6, 12:35 PM
dneilson committed rL324384: [InlineFunction] Update deprecated use of IRBuilder CreateMemCpy (NFC).
[InlineFunction] Update deprecated use of IRBuilder CreateMemCpy (NFC)
Tue, Feb 6, 11:17 AM
dneilson created D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.
Tue, Feb 6, 10:47 AM

Mon, Feb 5

dneilson committed rL324278: [LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment API….
[LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment API…
Mon, Feb 5, 2:27 PM
dneilson committed rL324273: [SimplifyLibCalls] Update from deprecated IRBuilder API for creating memory….
[SimplifyLibCalls] Update from deprecated IRBuilder API for creating memory…
Mon, Feb 5, 1:25 PM
dneilson committed rL324265: Add release note on change to memcpy/memmove/memset builtin signatures.
Add release note on change to memcpy/memmove/memset builtin signatures
Mon, Feb 5, 11:44 AM

Fri, Feb 2

dneilson created D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
Fri, Feb 2, 3:04 PM
dneilson committed rL324148: [InstCombine] Use getDestAlignment in SimplifyMemSet (NFC).
[InstCombine] Use getDestAlignment in SimplifyMemSet (NFC)
Fri, Feb 2, 2:04 PM

Thu, Feb 1

dneilson added inline comments to D42815: [AArch64FastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment() (NFCI).
Thu, Feb 1, 9:41 PM
dneilson created D42815: [AArch64FastISel] Replace deprecated calls to MemoryIntrinsic::getAlignment() (NFCI).
Thu, Feb 1, 2:04 PM

Wed, Jan 31

dneilson committed rL323891: [CodeGenPrepare] Improve source and dest alignments of memory intrinsics….
[CodeGenPrepare] Improve source and dest alignments of memory intrinsics…
Wed, Jan 31, 9:26 AM
dneilson committed rL323886: [Lint] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFCI).
[Lint] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFCI)
Wed, Jan 31, 8:44 AM

Tue, Jan 30

dneilson created D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..
Tue, Jan 30, 2:26 PM
dneilson committed rL323764: [RS4GC] Handle call/invoke instructions as base defining values of vectors.
[RS4GC] Handle call/invoke instructions as base defining values of vectors
Tue, Jan 30, 6:45 AM
dneilson closed D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.
Tue, Jan 30, 6:45 AM
dneilson updated the diff for D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.

Adding vector invoke test

Tue, Jan 30, 6:01 AM

Mon, Jan 29

dneilson created D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.
Mon, Jan 29, 11:34 AM
dneilson closed D41676: Change memcpy/memove/memset to have dest and source alignment attributes..

Landed as: https://reviews.llvm.org/rL323618

Mon, Jan 29, 11:34 AM

Sun, Jan 28

dneilson committed rL323618: Change memcpy/memove/memset to have dest and source alignment attributes..
Change memcpy/memove/memset to have dest and source alignment attributes.
Sun, Jan 28, 10:15 AM
dneilson committed rC323617: Change memcpy/memove/memset to have dest and source alignment attributes..
Change memcpy/memove/memset to have dest and source alignment attributes.
Sun, Jan 28, 9:29 AM
dneilson committed rL323617: Change memcpy/memove/memset to have dest and source alignment attributes..
Change memcpy/memove/memset to have dest and source alignment attributes.
Sun, Jan 28, 9:29 AM
dneilson closed D41677: Change memcpy/memove/memset to have dest and source alignment attributes..
Sun, Jan 28, 9:29 AM

Sat, Jan 27

dneilson updated the diff for D41677: Change memcpy/memove/memset to have dest and source alignment attributes..

Rebaseline

Sat, Jan 27, 10:04 AM
dneilson committed rL323597: Add IRBuilder API to create memcpy/memmove calls with differing source and dest….
Add IRBuilder API to create memcpy/memmove calls with differing source and dest…
Sat, Jan 27, 10:03 AM

Jan 19 2018

dneilson committed rL322969: Additional fixes for docs in addition to r322968..
Additional fixes for docs in addition to r322968.
Jan 19 2018, 9:35 AM
dneilson committed rL322968: Fix docs build break caused by r322965.
Fix docs build break caused by r322965
Jan 19 2018, 9:25 AM
dneilson committed rL322965: Remove alignment argument from memcpy/memmove/memset in favour of alignment….
Remove alignment argument from memcpy/memmove/memset in favour of alignment…
Jan 19 2018, 9:17 AM
dneilson closed D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 19 2018, 9:15 AM
dneilson committed rL322964: Change memcpy/memove/memset to have dest and source alignment attributes (Step….
Change memcpy/memove/memset to have dest and source alignment attributes (Step…
Jan 19 2018, 9:15 AM
dneilson committed rC322964: Change memcpy/memove/memset to have dest and source alignment attributes (Step….
Change memcpy/memove/memset to have dest and source alignment attributes (Step…
Jan 19 2018, 9:15 AM
dneilson committed rL322963: Change memcpy/memove/memset to have dest and source alignment attributes (Step….
Change memcpy/memove/memset to have dest and source alignment attributes (Step…
Jan 19 2018, 9:14 AM

Jan 18 2018

dneilson updated the diff for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
  • Address the minor comment.
  • Rebase.
  • clang-format
Jan 18 2018, 7:59 AM

Jan 17 2018

dneilson committed rL322735: [Attributes] Fix crash when attempting to remove alignment from an attribute….
[Attributes] Fix crash when attempting to remove alignment from an attribute…
Jan 17 2018, 11:17 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Jan 17 2018, 11:17 AM

Jan 13 2018

dneilson updated the diff for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
  • Addressing review comments.
Jan 13 2018, 7:59 AM

Jan 12 2018

dneilson committed rL322403: [NFC] Change MemIntrinsicInst::setAlignment() to take an unsigned instead of a….
[NFC] Change MemIntrinsicInst::setAlignment() to take an unsigned instead of a…
Jan 12 2018, 1:35 PM
dneilson updated the diff for D41951: [Attributes] Fix crash when attempting to remove alignment from an attribute list/set.

Address comments by Philip & Reid.

Jan 12 2018, 11:16 AM

Jan 11 2018

dneilson added a comment to D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).

I pulled the fix to AttributeSet/AttributeList into its own change; see parent of this change.

Jan 11 2018, 4:14 PM
dneilson added a dependency for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1): D41951: [Attributes] Fix crash when attempting to remove alignment from an attribute list/set.
Jan 11 2018, 4:13 PM
dneilson added a dependent revision for D41951: [Attributes] Fix crash when attempting to remove alignment from an attribute list/set: D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 11 2018, 4:13 PM
dneilson retitled D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) from Change memcpy/memove/memset to have dest and source alignment attributes. to Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 11 2018, 4:12 PM
dneilson updated the diff for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).

Refactor change.

Jan 11 2018, 4:12 PM
dneilson created D41951: [Attributes] Fix crash when attempting to remove alignment from an attribute list/set.
Jan 11 2018, 9:25 AM
dneilson committed rL322289: [NFC] Abstract out source argument index in MemTransferInst..
[NFC] Abstract out source argument index in MemTransferInst.
Jan 11 2018, 8:29 AM

Jan 10 2018

dneilson added inline comments to D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 10 2018, 8:26 AM

Jan 8 2018

dneilson added a comment to D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).

ping -- Anyone able to review?

Jan 8 2018, 6:56 AM

Jan 2 2018

dneilson added inline comments to D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 2 2018, 2:28 PM
dneilson updated the diff for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
  • Running the sed script changed some test files only by the addition of a newline at the end of the file. Undoing these changes to reduce the number of files touched by this change.
Jan 2 2018, 2:09 PM
dneilson added a comment to D41677: Change memcpy/memove/memset to have dest and source alignment attributes..

I'm glad to hear that progress is finally happening on this.

The change to CGBuilder looks good to me. I'm going to take your word for it that the test changes are all just obvious updates; if there's one in particular that you'd like me to look at, I'd be happy to.

Jan 2 2018, 12:51 PM
dneilson added a dependency for D41677: Change memcpy/memove/memset to have dest and source alignment attributes.: D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 2 2018, 12:06 PM
dneilson added a dependent revision for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1): D41677: Change memcpy/memove/memset to have dest and source alignment attributes..
Jan 2 2018, 12:06 PM
dneilson created D41677: Change memcpy/memove/memset to have dest and source alignment attributes..
Jan 2 2018, 12:06 PM
dneilson added a dependency for D41676: Change memcpy/memove/memset to have dest and source alignment attributes.: D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 2 2018, 12:05 PM
dneilson added a dependent revision for D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1): D41676: Change memcpy/memove/memset to have dest and source alignment attributes..
Jan 2 2018, 12:05 PM
dneilson created D41676: Change memcpy/memove/memset to have dest and source alignment attributes..
Jan 2 2018, 12:05 PM
dneilson created D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1).
Jan 2 2018, 11:58 AM

Dec 27 2017

dneilson accepted D41593: [RewriteStatepoints] Fix incorrect assertion.

I think that this is okay.

Dec 27 2017, 6:40 AM

Dec 1 2017

dneilson added inline comments to D40613: [LoopIdiom] Recognize unordered atomic memset.
Dec 1 2017, 11:25 AM
dneilson updated the diff for D40613: [LoopIdiom] Recognize unordered atomic memset.
  • Addressing review comments.
Dec 1 2017, 7:58 AM
dneilson added inline comments to D40613: [LoopIdiom] Recognize unordered atomic memset.
Dec 1 2017, 7:40 AM

Nov 29 2017

dneilson created D40613: [LoopIdiom] Recognize unordered atomic memset.
Nov 29 2017, 10:24 AM

Nov 10 2017

dneilson committed rL317918: Expand IRBuilder interface for atomic memcpy to require pointer alignments..
Expand IRBuilder interface for atomic memcpy to require pointer alignments.
Nov 10 2017, 11:38 AM

Nov 2 2017

dneilson accepted D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.
Nov 2 2017, 8:55 AM
dneilson added a comment to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

LGTM

Nov 2 2017, 8:55 AM

Nov 1 2017

dneilson added inline comments to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.
Nov 1 2017, 10:18 AM

Oct 31 2017

dneilson added a comment to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

Is is possible to also remove the corresponding invariant.end calls to the removed invariant.start calls? This patch will leave orphaned calls to invariant.end sitting around in the IR that have no corresponding start.

Oct 31 2017, 8:16 AM

Oct 30 2017

dneilson committed rL316950: Create instruction classes for identifying any atomicity of memory intrinsic..
Create instruction classes for identifying any atomicity of memory intrinsic.
Oct 30 2017, 12:52 PM
dneilson closed D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC) by committing rL316950: Create instruction classes for identifying any atomicity of memory intrinsic..
Oct 30 2017, 12:52 PM

Oct 26 2017

dneilson updated the diff for D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).
  • Missed a comment regarding why we use CRTP for the MemIntrinsicBase class.
Oct 26 2017, 11:46 AM
dneilson updated the diff for D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).
  • Address minor nits.
  • Clang-formatting change.
Oct 26 2017, 11:42 AM
dneilson updated the diff for D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).
  • Rebase.
  • Fixing cut & paste errors in comments.
  • Remove isVolatile() method from the atomic memory intrinsic hierarchy.
  • Change MemInstrinsicBase to use CRTP.
  • Remove inline keyword from classof() method declarations.
Oct 26 2017, 9:38 AM
dneilson added a comment to D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).

Just to be clear, at the isa<>, dyn_cast<> level, this is the hierarchy you're shooting for right:

digraph G {
	AnyMemI -> MemI
	AnyMemI -> AtomicMemI
	AnyMemI -> AnyMemSetI
	AnyMemI -> AnyMemTransferI

	AnyMemSetI -> MemSetI
	AnyMemSetI -> AtomicMemSetI

	AnyMemTransferI -> AtomicMemTransferI
	AnyMemTransferI -> MemTransferI
	AnyMemTransferI -> AnyMemCpyI
	AnyMemTransferI -> AnyMemMoveI

	AtomicMemTransferI -> AtomicMemcpyI
	AtomicMemTransferI -> AtomicMemMoveI

	MemTransferI -> MemcpyI
	MemTransferI -> MemMoveI

	AnyMemCpyI -> MemcpyI
	AnyMemCpyI -> AtomicMemcpyI

	AnyMemMoveI -> MemMoveI
	AnyMemMoveI -> AtomicMemMoveI

	MemI -> MemTransferI
	MemI -> MemMoveI

	AtomicMemI -> AtomicMemTransferI
	AtomicMemI -> AtomicMemMoveI
}
Oct 26 2017, 9:36 AM

Oct 25 2017

dneilson retitled D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC) from Create instruction classes for identifying any atomicity of memory intrinsic. to Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).
Oct 25 2017, 1:27 PM
dneilson updated the diff for D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).
  • Rebasing.
  • Removing change to AliasSetTracker; this makes this change purely NFC.
Oct 25 2017, 1:26 PM

Oct 23 2017

dneilson added a comment to D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).

ping - Review still requested/needed. It may look daunting, but the change is pretty simple.

Oct 23 2017, 6:51 AM

Oct 13 2017

dneilson added a comment to D38419: Create instruction classes for identifying any atomicity of memory intrinsic. (NFC).

ping - Could someone please take a look at this? Thank you.

Oct 13 2017, 2:23 PM
dneilson committed rL315694: [RS4GC] Look through vector bitcasts when looking for base pointer.
[RS4GC] Look through vector bitcasts when looking for base pointer
Oct 13 2017, 8:59 AM
dneilson closed D38849: [RS4GC] Look through vector bitcasts when looking for base pointer by committing rL315694: [RS4GC] Look through vector bitcasts when looking for base pointer.
Oct 13 2017, 8:59 AM