dneilson (Daniel Neilson)
Software Engineer

Projects

User does not belong to any projects.

User Details

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

Fri, Jun 1

dneilson abandoned D47634: [MemCpyOpt] Update pass to also optimize the atomic memory intrinsics (WIP - NOT FOR REVIEW).
Fri, Jun 1, 7:04 AM
dneilson created D47634: [MemCpyOpt] Update pass to also optimize the atomic memory intrinsics (WIP - NOT FOR REVIEW).
Fri, Jun 1, 7:03 AM

Wed, May 30

dneilson updated the diff for D40613: [LoopIdiom] Recognize unordered atomic memset.
  • Rebaseline, just to keep this up-to-date.
Wed, May 30, 6:42 PM
dneilson committed rL333588: [IRBuilder] Add APIs for creating calls to atomic memmove and memset intrinsics..
[IRBuilder] Add APIs for creating calls to atomic memmove and memset intrinsics.
Wed, May 30, 1:07 PM
dneilson committed rL333551: [AliasSet] Teach the alias set how to handle atomic memcpy/memmove/memset.
[AliasSet] Teach the alias set how to handle atomic memcpy/memmove/memset
Wed, May 30, 7:47 AM

Tue, May 29

dneilson abandoned D35511: Add element-atomic mem intrinsic canary tests for Thread Sanitizer..
Tue, May 29, 2:15 PM
dneilson committed rL333454: [BasicAA] Teach the analysis about atomic memcpy.
[BasicAA] Teach the analysis about atomic memcpy
Tue, May 29, 12:28 PM

May 11 2018

dneilson committed rL332132: [InstCombine] Handle atomic memset in the same way as regular memset.
[InstCombine] Handle atomic memset in the same way as regular memset
May 11 2018, 1:08 PM
dneilson closed D46660: [InstCombine] Handle atomic memset in the same way as regular memset.
May 11 2018, 1:08 PM
dneilson updated the diff for D46660: [InstCombine] Handle atomic memset in the same way as regular memset.
  • Rebaseline prior to landing
May 11 2018, 1:06 PM
dneilson committed rL332093: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
[InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer
May 11 2018, 7:33 AM
dneilson closed D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
May 11 2018, 7:33 AM

May 10 2018

dneilson committed rL331991: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
[DSE] Teach the pass about partial overwrite of atomic memory intrinsics
May 10 2018, 8:18 AM
dneilson closed D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
May 10 2018, 8:18 AM

May 9 2018

dneilson added a dependent revision for D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer: D46660: [InstCombine] Handle atomic memset in the same way as regular memset.
May 9 2018, 1:06 PM
dneilson added a dependency for D46660: [InstCombine] Handle atomic memset in the same way as regular memset: D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
May 9 2018, 1:06 PM
dneilson created D46660: [InstCombine] Handle atomic memset in the same way as regular memset.
May 9 2018, 1:05 PM
dneilson updated the diff for D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
  • Don't multiply length by element size for atomic memtransfer intrinsics.
  • Add tests to show proper behaviour in this case.
May 9 2018, 12:41 PM
dneilson planned changes to D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
May 9 2018, 12:16 PM
dneilson created D46658: [InstCombine] Unify handling of atomic memtransfer with non-atomic memtransfer.
May 9 2018, 12:14 PM
dneilson added a comment to D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.

ping - any takers to review this? I'm fairly certain it's correct, but a sanity check would be nice.

May 9 2018, 8:51 AM

May 8 2018

dneilson committed rL331800: Changing constants in a test (NFC).
Changing constants in a test (NFC)
May 8 2018, 12:12 PM

May 3 2018

dneilson updated the diff for D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
  • Use mod operator instead of bit twiddling
May 3 2018, 12:20 PM
dneilson added inline comments to D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
May 3 2018, 11:57 AM

May 1 2018

dneilson updated subscribers of D46191: [LV] Preserve inbounds on created GEPs.

Yes, this was the cause of the break. Put an X86 test in the general-arch directory.

May 1 2018, 10:04 AM
dneilson committed rL331281: [LV] Move test/Transforms/LoopVectorize/pr23997.ll.
[LV] Move test/Transforms/LoopVectorize/pr23997.ll
May 1 2018, 9:46 AM
dneilson committed rL331269: [LV] Preserve inbounds on created GEPs.
[LV] Preserve inbounds on created GEPs
May 1 2018, 8:38 AM
dneilson closed D46191: [LV] Preserve inbounds on created GEPs.
May 1 2018, 8:38 AM

Apr 30 2018

dneilson updated the diff for D46191: [LV] Preserve inbounds on created GEPs.
  • Address latest review comment.
Apr 30 2018, 10:30 AM
dneilson updated the diff for D46191: [LV] Preserve inbounds on created GEPs.
  • Rebaseline.
  • Also preserve inbounds when vectorizing interleaved groups.
Apr 30 2018, 7:58 AM

Apr 27 2018

dneilson added inline comments to D46191: [LV] Preserve inbounds on created GEPs.
Apr 27 2018, 1:46 PM
dneilson committed rL331076: [LV] Common duplicate vector load/store address calculation (NFC).
[LV] Common duplicate vector load/store address calculation (NFC)
Apr 27 2018, 1:32 PM
dneilson added inline comments to D46191: [LV] Preserve inbounds on created GEPs.
Apr 27 2018, 12:31 PM
dneilson created D46191: [LV] Preserve inbounds on created GEPs.
Apr 27 2018, 7:57 AM

Apr 24 2018

dneilson committed rL330769: [CaptureTracking] Fixup const correctness of DomTree arg (NFC).
[CaptureTracking] Fixup const correctness of DomTree arg (NFC)
Apr 24 2018, 2:16 PM

Apr 23 2018

dneilson committed rL330629: [DSE] Teach the pass that atomic memory intrinsics are stores..
[DSE] Teach the pass that atomic memory intrinsics are stores.
Apr 23 2018, 12:10 PM
dneilson closed D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
Apr 23 2018, 12:10 PM
dneilson added a comment to D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..

LGTM

Apr 23 2018, 12:09 PM
dneilson updated the diff for D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
  • Deleted memtransferinst case in handleEndBlock.
Apr 23 2018, 12:03 PM
dneilson added inline comments to D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
Apr 23 2018, 10:09 AM
dneilson updated the diff for D45535: [DSE] Teach the pass that atomic memory intrinsics are stores..
  • Update for reviewer comment.
Apr 23 2018, 10:05 AM
dneilson committed rL330603: [SelectionDAG] Refactor lowering of atomic memory intrinsics..
[SelectionDAG] Refactor lowering of atomic memory intrinsics.
Apr 23 2018, 8:46 AM

Apr 18 2018

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.

Apr 18 2018, 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?

Apr 18 2018, 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?

Apr 18 2018, 11:40 AM

Apr 12 2018

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..
Apr 12 2018, 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.
Apr 12 2018, 12:10 PM
dneilson created D45584: [DSE] Teach the pass about partial overwrite of atomic memory intrinsics.
Apr 12 2018, 12:09 PM

Apr 11 2018

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

Apr 10 2018

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

Apr 5 2018

dneilson committed rL329331: [InstCombine] Properly change GEP type when reassociating loop invariant GEP….
[InstCombine] Properly change GEP type when reassociating loop invariant GEP…
Apr 5 2018, 11:54 AM
dneilson closed D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
Apr 5 2018, 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.
Apr 5 2018, 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.
Apr 5 2018, 6:25 AM
dneilson added inline comments to D45287: [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains.
Apr 5 2018, 6:21 AM

Apr 4 2018

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

Apr 3 2018

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
Apr 3 2018, 10:29 AM
dneilson closed D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Apr 3 2018, 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.
Apr 3 2018, 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.
Apr 3 2018, 7:51 AM
dneilson added inline comments to D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Apr 3 2018, 6:56 AM

Apr 2 2018

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.
Apr 2 2018, 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.
Apr 2 2018, 11:23 AM

Mar 29 2018

dneilson added inline comments to D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Mar 29 2018, 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.
Mar 29 2018, 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?

Mar 29 2018, 6:29 AM

Mar 28 2018

dneilson created D44997: [InstCombine] Fold compare of int constant against a splatted vector of ints.
Mar 28 2018, 1:14 PM
dneilson committed rL328709: [PatternMatch] Add matchers for vector operations.
[PatternMatch] Add matchers for vector operations
Mar 28 2018, 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