IntrWriteArgMem implies nocapture, but this wasn't
authorDuncan Sands <baldrick@free.fr>
Sat, 14 Feb 2009 05:16:25 +0000 (05:16 +0000)
committerDuncan Sands <baldrick@free.fr>
Sat, 14 Feb 2009 05:16:25 +0000 (05:16 +0000)
commit054a40cadb8e401212c3b9bbe07c5799bf49f08c
treeb3eb1a6a139e831f92fad3ddfea98881dbee8749
parentb5aa3ad1e7e99661c238ef873bf14b6b858f110d
IntrWriteArgMem implies nocapture, but this wasn't
taken advantage of anywhere.  Change the definition
of IntrWriteArgMem to no longer imply nocapture, and
explicitly add nocapture attributes everywhere (well,
not quite everywhere, because some of these intrinsics
did capture their arguments!).  Also, make clear that
the lack of other side-effects does not exclude doing
volatile loads or stores - the atomic intrinsics do
these, yet they are all marked IntrWriteArgMem (this
change is safe because nothing exploited it).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64539 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Intrinsics.td