[PATCH] D11774: [NVPTX] Use LDG for pointer induction variables

Bjarke Hammersholt Roune broune at google.com
Wed Aug 5 11:33:30 PDT 2015


broune created this revision.
broune added reviewers: jholewinski, jingyue.
broune added subscribers: llvm-commits, meheff, eliben.
Herald added a subscriber: jholewinski.

Make NVPTXISelDAGToDAG able to emit cached loads (LDG) for pointer induction variables.

Also fix latent bug where LDG was not restricted to kernel functions. I believe that this could not be triggered so far since we do not currently infer that a pointer is global outside a kernel function, and only loads of global pointers are considered for cached loads.

This brings a 30% performance gain on some eigen3-based Google-internal CUDA benchmarks, where LLVM introduces a pointer induction variable and then previously couldn't use LDG.

http://reviews.llvm.org/D11774

Files:
  lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
  test/CodeGen/NVPTX/load-with-non-coherent-cache.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11774.31382.patch
Type: text/x-patch
Size: 4653 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150805/abcfa2a8/attachment.bin>


More information about the llvm-commits mailing list