Deduce the memory behavior, aka "read-none", "read-only", or
"write-only", for function arguments.
Impact on the statistics (-stats) for LLVM-TS + Spec2006, totaling ~14% more readnone arguments and finally writeonly arguments.
CHANGED: attributor NumAttributesManifested 50306 -> 77683 ( +54.421%) CHANGED: attributor NumAttributesValidFixpoint 81666 -> 109073 ( +33.560%) ADDED: attributor NumFnArgumentReadNone n/a -> 5458 ADDED: attributor NumFnArgumentReadOnly n/a -> 16532 ADDED: attributor NumFnArgumentWriteOnly n/a -> 5387 CHANGED: functionattrs NumReadNoneArg 4784 -> 216 ( -95.485%) CHANGED: functionattrs NumReadOnlyArg 17449 -> 1072 ( -93.856%)
Note: Remaining readnone/readonly will drop further with future memory behavior deduction patches. Also, some are a result of a bug, see: http://llvm.org/PR41328