Add noalias metadata for general calls (not just memory intrinsics) during inlining
authorHal Finkel <hfinkel@anl.gov>
Thu, 14 Aug 2014 16:44:03 +0000 (16:44 +0000)
committerHal Finkel <hfinkel@anl.gov>
Thu, 14 Aug 2014 16:44:03 +0000 (16:44 +0000)
commitb1b9953473cc6c5ca74ec20d5895d3c0585acc32
treeac2a66d3317e78a4e2fd79d5f53a2ea572c54fc1
parentd8b0f99f870fb08af65a655f2c6cee3324386e7a
Add noalias metadata for general calls (not just memory intrinsics) during inlining

When preserving noalias function parameter attributes by adding noalias
metadata in the inliner, we should do this for general function calls (not just
memory intrinsics). The logic is very similar to what already existed (except
that we want to add this metadata even for functions taking no relevant
parameters). This metadata can be used by ModRef queries in the caller after
inlining.

This addresses the first part of PR20500. Adding noalias metadata during
inlining is still turned off by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215657 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/InlineFunction.cpp
test/Transforms/Inline/noalias-calls.ll [new file with mode: 0644]