[PATCH] D17423: [NVPTX] Use different, convergent MIs for convergent calls.

Justin Lebar via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 18 16:21:32 PST 2016


jlebar created this revision.
jlebar added a reviewer: jholewinski.
jlebar added subscribers: llvm-commits, tra, jhen, joker.eph, chandlerc.
Herald added a subscriber: jholewinski.

Calls sometimes need to be convergent.  This is already handled at the
LLVM IR level, but it also needs to be handled at the MI level.

Ideally we'd propagate convergence from instructions, down through the
selection DAG, and into MIs.  But this is Hard, and would affect
optimizations in the SDNs -- right now only SDNs with two operands have
any flags at all.

Instead, here's a much simpler hack: Add new opcodes for NVPTX for
convergent calls, and generate these when lowering convergent LLVM
calls.

http://reviews.llvm.org/D17423

Files:
  include/llvm/Target/TargetLowering.h
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/Target/NVPTX/NVPTXISelLowering.cpp
  lib/Target/NVPTX/NVPTXISelLowering.h
  lib/Target/NVPTX/NVPTXInstrInfo.td
  test/CodeGen/NVPTX/convergent-mir-call.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17423.48422.patch
Type: text/x-patch
Size: 10282 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160219/efb4674a/attachment.bin>


More information about the llvm-commits mailing list