[PATCH] D66276: [Attributor] Create abstract attributes on-demand

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 14 22:09:29 PDT 2019


jdoerfert created this revision.
jdoerfert added reviewers: uenoku, sstefan1.
Herald added subscribers: bollu, hiraditya.
Herald added a project: LLVM.

Before, we create the set of abstract attributes initially and then
dealt with the fact hat a lookup could fail, e.g., return a nullptr.
This patch will ensure we always return a valid object from a lookup,
allowing us not only to remove the nullptr checks but also to grow the
set of abstract attributes we look at on-demand. One can now start from
those that have the best chance of improving performance without the
need to specify all they might depend on.

Note: A lot of the minor adjustments that are not related to the switch

  from pointers to references will go in the preparation patches already
  under review. These patches and this one will be updated
  accordingly.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D66276

Files:
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/test/Transforms/FunctionAttrs/align.ll
  llvm/test/Transforms/FunctionAttrs/arg_returned.ll
  llvm/test/Transforms/FunctionAttrs/dereferenceable.ll
  llvm/test/Transforms/FunctionAttrs/noalias_returned.ll
  llvm/test/Transforms/FunctionAttrs/nonnull.ll
  llvm/test/Transforms/FunctionAttrs/nosync.ll
  llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66276.215325.patch
Type: text/x-patch
Size: 17782 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190815/111c058d/attachment.bin>


More information about the llvm-commits mailing list