[PATCH] D17739: [attrs] Handle convergent CallSites.

Justin Lebar via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 29 13:55:47 PST 2016


jlebar created this revision.
jlebar added reviewers: chandlerc, jingyue.
jlebar added subscribers: hfinkel, jhen, tra, llvm-commits.

Previously we had a notion of convergent functions but not of convergent
calls.  This is insufficient to correctly analyze calls where the target
is unknown, e.g. indirect calls.

Now a call is convergent if it targets a known-convergent function, or
if it's explicitly marked as convergent.  As usual, we can remove
convergent where we can prove that no convergent operations are
performed in the call.

Originally landed as r261544, then reverted in r261544 for (incidental)
build breakage.  Re-landed here with no changes.

http://reviews.llvm.org/D17739

Files:
  lib/Transforms/IPO/FunctionAttrs.cpp
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  test/Transforms/FunctionAttrs/convergent.ll
  test/Transforms/InstCombine/convergent.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17739.49422.patch
Type: text/x-patch
Size: 8639 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160229/691800d5/attachment.bin>


More information about the llvm-commits mailing list