Add some constraints to use of 'returned':
authorStephen Lin <stephenwlin@gmail.com>
Tue, 23 Apr 2013 16:31:56 +0000 (16:31 +0000)
committerStephen Lin <stephenwlin@gmail.com>
Tue, 23 Apr 2013 16:31:56 +0000 (16:31 +0000)
commit13aba14eb5c643234f5d756b94f30afb28f8cd5d
tree73921fe363e92a6502e09a8ba7b1a19c27259a10
parent120cf5743b03d67d9f26ae05c2b79d98cc05f79d
Add some constraints to use of 'returned':

1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell).
2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe).

This is a new attribute that is not yet used, so there is no impact.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180118 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/Analysis.cpp
lib/IR/Verifier.cpp