dneilson (Daniel Neilson)
Software Engineer

Projects

User does not belong to any projects.

User Details

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

Wed, Apr 18

dneilson planned changes to D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..

Am I right in saying these are treated in the same way as unordered atomic stores are? In that they can be deleted by following non-atomic stores, even if they are "stronger" atomically? If so, this looks fine to me.

Wed, Apr 18, 2:42 PM
dneilson added a comment to D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..

ping - any reviewers able to take a crack at this?

Wed, Apr 18, 11:40 AM
dneilson added a comment to D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.

ping - any reviewers able to take a crack at this?

Wed, Apr 18, 11:40 AM

Thu, Apr 12

dneilson added a dependency for D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics: D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
Thu, Apr 12, 12:10 PM
dneilson added a dependent revision for D45535: [DSE] Teach the pass that atomic memory intrinsics are stores.: D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
Thu, Apr 12, 12:10 PM
dneilson created D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
Thu, Apr 12, 12:09 PM

Wed, Apr 11

dneilson created D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
Wed, Apr 11, 2:09 PM
dneilson committed rL329845: [DSE] Add tests for atomic memory intrinsics (NFC).
[DSE] Add tests for atomic memory intrinsics (NFC)
Wed, Apr 11, 12:49 PM
dneilson committed rL329839: [DSE] Regenerate tests with update_test_checks.py (NFC).
[DSE] Regenerate tests with update_test_checks.py (NFC)
Wed, Apr 11, 11:46 AM
dneilson committed rL329824: [DSE] Regenerate tests with update_test_checks.py (NFC).
[DSE] Regenerate tests with update_test_checks.py (NFC)
Wed, Apr 11, 9:53 AM

Tue, Apr 10

dneilson committed rL329753: [Verifier] Refactor duplicate code for atomic mem intrinsic verification (NFC).
[Verifier] Refactor duplicate code for atomic mem intrinsic verification (NFC)
Tue, Apr 10, 1:27 PM
dneilson committed rL329747: [IR] Refactor memset inst classes (NFC).
[IR] Refactor memset inst classes (NFC)
Tue, Apr 10, 12:54 PM
dneilson committed rL329744: [IR] Refactor memtransfer inst classes (NFC).
[IR] Refactor memtransfer inst classes (NFC)
Tue, Apr 10, 12:26 PM

Thu, Apr 5

dneilson committed rL329331: [InstCombine] Properly change GEP type when reassociating loop invariant GEP….
[InstCombine] Properly change GEP type when reassociating loop invariant GEP…
Thu, Apr 5, 11:54 AM
dneilson closed D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
Thu, Apr 5, 11:54 AM
dneilson updated the diff for D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
  • Make review copy match what will be landed.
Thu, Apr 5, 11:53 AM
dneilson updated the diff for D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
  • Change insertion point of replacement src GEP instruction.
Thu, Apr 5, 6:25 AM
dneilson added inline comments to D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
Thu, Apr 5, 6:21 AM

Wed, Apr 4

dneilson created D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
Wed, Apr 4, 1:49 PM

Tue, Apr 3

dneilson committed rL329087: [InstCombine] Fold compare of int constant against a splatted vector of ints.
[InstCombine] Fold compare of int constant against a splatted vector of ints
Tue, Apr 3, 10:29 AM
dneilson closed D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Tue, Apr 3, 10:29 AM
dneilson updated the diff for D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
  • Final updates suggested. Just updating the differential review to match what will be landed.
Tue, Apr 3, 10:16 AM
dneilson updated the diff for D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
  • Simplify implementation
  • Prune tests (remove redundant & unneccessary); all added tests have now been triple checked that they do not simplify/fold even a single instruction without this patch.
Tue, Apr 3, 7:51 AM
dneilson added inline comments to D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Tue, Apr 3, 6:56 AM

Mon, Apr 2

dneilson retitled D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints from [InstCombine] Fold compare of int constant against an integer vector splat to [InstCombine] Fold compare of int constant against a splatted vector of ints.
Mon, Apr 2, 11:23 AM
dneilson updated the diff for D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
  • Following spatel's suggestion -- making the pattern match a little more general by only matching the bitcast + shuffle.
Mon, Apr 2, 11:23 AM

Thu, Mar 29

dneilson added inline comments to D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Thu, Mar 29, 11:51 AM
dneilson updated the diff for D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
  • Generalize to predicates other than just (in)equality.
Thu, Mar 29, 8:10 AM
dneilson added a comment to D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.

Ah, I see the type mismatch, but still. What prevents us from doing the same for less, greater etc. comparisons? Arithmetics?

Thu, Mar 29, 6:29 AM

Wed, Mar 28

dneilson created D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Wed, Mar 28, 1:14 PM
dneilson committed rL328709: [PatternMatch] Add matchers for vector operations.
[PatternMatch] Add matchers for vector operations
Wed, Mar 28, 8:42 AM

Mar 23 2018

dneilson committed rL328317: Remove the deprecated single-alignment IRBuilder API for memcpy/memmove (NFC).
Remove the deprecated single-alignment IRBuilder API for memcpy/memmove (NFC)
Mar 23 2018, 7:28 AM
dneilson committed rL328315: Remove deprecated MemIntrinsic methods (NFC).
Remove deprecated MemIntrinsic methods (NFC)
Mar 23 2018, 7:05 AM

Mar 22 2018

dneilson committed rL328227: [InstCombineCalls] Update deprecated API usage (NFC).
[InstCombineCalls] Update deprecated API usage (NFC)
Mar 22 2018, 11:41 AM

Mar 21 2018

dneilson committed rL328097: [MemCpyOpt] Update to new API for memory intrinsic alignment.
[MemCpyOpt] Update to new API for memory intrinsic alignment
Mar 21 2018, 7:20 AM

Mar 14 2018

dneilson abandoned D44477: [LoopIdiom] Teach the loop idiom pass how to distinguish a memcpy from a memmove.
Mar 14 2018, 2:08 PM
dneilson created D44477: [LoopIdiom] Teach the loop idiom pass how to distinguish a memcpy from a memmove.
Mar 14 2018, 8:24 AM

Mar 13 2018

dneilson committed rL327421: [SelectionDAGBuilder] Replace deprecated calls to MemoryIntrinsic::getAlignment….
[SelectionDAGBuilder] Replace deprecated calls to MemoryIntrinsic::getAlignment…
Mar 13 2018, 9:34 AM
dneilson committed rL327398: [SROA] Take advantage of separate alignments for memcpy source and destination.
[SROA] Take advantage of separate alignments for memcpy source and destination
Mar 13 2018, 7:28 AM
dneilson closed D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.
Mar 13 2018, 7:28 AM

Mar 12 2018

dneilson updated the diff for D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.

Rebaseline & address review comment regarding reducing the usage of ternary operator
in creation of memcpy.

Mar 12 2018, 3:08 PM
dneilson added inline comments to D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.
Mar 12 2018, 3:08 PM
dneilson added a comment to D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.

Thank you for taking a look at this Eli! Very much appreciated

Mar 12 2018, 2:51 PM
dneilson added a comment to D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.

ping. Anyone able to review?

Mar 12 2018, 1:35 PM

Mar 5 2018

dneilson committed rL326748: [RewriteStatepoints] Fix stale parse points.
[RewriteStatepoints] Fix stale parse points
Mar 5 2018, 2:30 PM
dneilson closed D43929: [RewriteStatepoints] Fix stale parse points.
Mar 5 2018, 2:30 PM
dneilson committed rL326730: [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp….
[InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp…
Mar 5 2018, 10:08 AM
dneilson closed D44063: [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions..
Mar 5 2018, 10:08 AM
dneilson added inline comments to D44063: [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions..
Mar 5 2018, 9:10 AM
dneilson added inline comments to D44063: [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions..
Mar 5 2018, 8:28 AM

Mar 2 2018

dneilson created D44063: [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions..
Mar 2 2018, 6:02 PM

Mar 1 2018

dneilson requested changes to D43935: [RewriteStatepoints] Fix phis with different incoming Loads for the same incoming blocks.

Please add a test case that demonstrates the patch in action (and would prevent regressions).

Mar 1 2018, 6:54 AM
dneilson requested changes to D43938: [RewriteStatepoints] Do not instert Store before Phi.

Please add a test case that demonstrates the patch in action (and would prevent regressions).

Mar 1 2018, 6:54 AM

Feb 28 2018

dneilson added a comment to D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.

ping

Feb 28 2018, 11:59 AM

Feb 22 2018

dneilson requested changes to D42789: [dfsan] Correctly copy attributes to variadic custom wrapper.
In D42789#1016252, @pcc wrote:

Apologies for missing this patch. It seems to be fixing the same problem as D43132, but that patch also handles trampoline functions correctly, so I think we should go with that one.

Feb 22 2018, 12:18 PM
dneilson committed rL325816: [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs….
[AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs…
Feb 22 2018, 10:58 AM
dneilson closed D43081: [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs separately.
Feb 22 2018, 10:58 AM
dneilson accepted D42789: [dfsan] Correctly copy attributes to variadic custom wrapper.

Not terribly familiar with this code, but my understanding from reading the construction of the CustomCI for WK_Custom...

Feb 22 2018, 10:53 AM
dneilson updated the diff for D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.
  • Rebaseline
Feb 22 2018, 10:11 AM

Feb 12 2018

dneilson committed rL324960: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
[InstCombine] Simplify MemTransferInst's source and dest alignments separately
Feb 12 2018, 3:09 PM
dneilson closed D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
Feb 12 2018, 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…
Feb 12 2018, 2:42 PM
dneilson closed D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..
Feb 12 2018, 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.
Feb 12 2018, 1:54 PM
dneilson added inline comments to D42871: [InstCombine] Simplify MemTransferInst's source and dest alignments separately.
Feb 12 2018, 12:23 PM
dneilson added a comment to D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..

ping

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

ping

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

ping

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

ping

Feb 12 2018, 6:50 AM

Feb 9 2018

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

Feb 8 2018

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)
Feb 8 2018, 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)
Feb 8 2018, 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)
Feb 8 2018, 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.

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

Feb 6 2018

dneilson committed rL324402: [DSE] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFC).
[DSE] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFC)
Feb 6 2018, 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…
Feb 6 2018, 12:35 PM
dneilson committed rL324384: [InlineFunction] Update deprecated use of IRBuilder CreateMemCpy (NFC).
[InlineFunction] Update deprecated use of IRBuilder CreateMemCpy (NFC)
Feb 6 2018, 11:17 AM
dneilson created D42974: [SROA] Take advantage of separate alignments for memcpy source and destination.
Feb 6 2018, 10:47 AM

Feb 5 2018

dneilson committed rL324278: [LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment API….
[LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment API…
Feb 5 2018, 2:27 PM
dneilson committed rL324273: [SimplifyLibCalls] Update from deprecated IRBuilder API for creating memory….
[SimplifyLibCalls] Update from deprecated IRBuilder API for creating memory…
Feb 5 2018, 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
Feb 5 2018, 11:44 AM

Feb 2 2018

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

Feb 1 2018

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

Jan 31 2018

dneilson committed rL323891: [CodeGenPrepare] Improve source and dest alignments of memory intrinsics….
[CodeGenPrepare] Improve source and dest alignments of memory intrinsics…
Jan 31 2018, 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)
Jan 31 2018, 8:44 AM

Jan 30 2018

dneilson created D42710: [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments..
Jan 30 2018, 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
Jan 30 2018, 6:45 AM
dneilson closed D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.
Jan 30 2018, 6:45 AM
dneilson updated the diff for D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.

Adding vector invoke test

Jan 30 2018, 6:01 AM

Jan 29 2018

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

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

Jan 29 2018, 11:34 AM

Jan 28 2018

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.
Jan 28 2018, 10:15 AM