[PATCH] D60078: [FunctionAttrs] Remove old "no-capture" and memory behavior argument deduction

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 1 10:52:29 PDT 2019


jdoerfert created this revision.
jdoerfert added reviewers: homerdin, hfinkel, fedor.sergeev, sanjoy, spatel, nlopes, nicholas, reames.
Herald added a project: LLVM.
jdoerfert added parent revisions: D60077: [Attributor] Deduce memory location function attributes, D59922: [Attributor] Deduce "no-capture" argument attribute.

This removes the old FunctionAttrs "no-capture" and memory behavior
argument deduction.

The code is obsolete as the Attributor deduction is generally more
powerful.

The test cases that were affected by the change now run both passes.

This resolves incorrect behavior (see http://llvm.org/PR41328) as shown
by the changes to "test13" in:

  `test/Transforms/FunctionAttrs/readattrs.ll`

Impact on the statistics (-stats) for LLVM-TS + Spec2006:

  REMOVED: functionattrs                NumNoCapture                              17 ->        n/a
  REMOVED: functionattrs                NumReadNoneArg                           145 ->        n/a
  REMOVED: functionattrs                NumReadOnlyArg                           946 ->        n/a

Note that "no-capture" was derived by the now removed code for arguments
that were already annotated. The readnone/only attributes are at least
in parts due to aforementioned bug.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D60078

Files:
  llvm/lib/Transforms/IPO/FunctionAttrs.cpp
  llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
  llvm/test/Feature/OperandBundles/function-attrs.ll
  llvm/test/Other/cgscc-devirt-iteration.ll
  llvm/test/Transforms/FunctionAttrs/arg_returned.ll
  llvm/test/Transforms/FunctionAttrs/nocapture.ll
  llvm/test/Transforms/FunctionAttrs/nonnull.ll
  llvm/test/Transforms/FunctionAttrs/norecurse.ll
  llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
  llvm/test/Transforms/FunctionAttrs/readattrs.ll
  llvm/test/Transforms/FunctionAttrs/readnone.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60078.193130.patch
Type: text/x-patch
Size: 32559 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190401/441389d1/attachment.bin>


More information about the llvm-commits mailing list