Add the no-capture argument attribute deduction to the Attributor
fixpoint framework.
The new string attributed "no-capture-maybe-returned" is introduced to
allow deduction of no-capture through functions that "capture" an
argument but only by "returning" it.
Impact on the statistics (-stats) for LLVM-TS + Spec2006, ~7% more no-capute arguments:
CHANGED: attributor NumAttributesManifested 14323 -> 50306 ( +251.225%) CHANGED: attributor NumAttributesValidFixpoint 39780 -> 81666 ( +105.294%) ADDED: attributor NumFnArgumentNoCapture n/a -> 35429 CHANGED: functionattrs NumNoCapture 32989 -> 2 ( -99.994%)
Note: both remaining function attribute deductions are deduction of no-capture even though it is already present.
Maybe we need an exact definition for no-capture-maybe-returned in LangRef.