[AMDGPU] Fix discarded result of addAttribute
authorBrian Gesiak <modocache@gmail.com>
Sun, 9 Dec 2018 21:56:50 +0000 (21:56 +0000)
committerBrian Gesiak <modocache@gmail.com>
Sun, 9 Dec 2018 21:56:50 +0000 (21:56 +0000)
commitb963c5150dfde0fa84a9d7a98063de39309d267b
tree1bcd8afa1d5ff8abdfe04ff3538511531434577e
parenta52d35650620a60c2f0fecf7a39fcd414eddf1bf
[AMDGPU] Fix discarded result of addAttribute

Summary:
`llvm::AttributeList` and `llvm::AttributeSet` are immutable, and so methods
defined on these classes, such as `addAttribute`, return a new immutable
object with the attribute added. In https://reviews.llvm.org/D55217 I attempted
to annotate methods such as `addAttribute` with `LLVM_NODISCARD`, since
calling these methods has no side-effects, and so ignoring the result
that is returned is almost certainly a programmer error.

However, committing the change resulted in new warnings in the AMDGPU target.
The AMDGPU simplify libcalls pass added in https://reviews.llvm.org/D36436
attempts to add the readonly and nounwind attributes to simplified
library functions, but instead calls the `addAttribute` methods and
ignores the result.

Modify the simplify libcalls pass to actually add the nounwind and
readonly attributes. Also update the simplify libcalls test to assert
that these attributes are actually being set.

Reviewers: rampitec, vpykhtin, rnk

Reviewed By: rampitec

Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D55435

llvm-svn: 348732
llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll