[PATCH] D65402: [Attributor][MustExec] Deduce dereferenceable and nonnull attribute using MustBeExecutedContextExplorer

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 14 12:20:57 PDT 2019


uenoku updated this revision to Diff 215186.
uenoku added a comment.

Refactor

- Create `accumulatePredOnMustBeExecutedContext` as `Attributor` member function
- Look at known information of Argument in the callsite argument updateImpl. It is not allowed to look at **assumption** in argument but I think it is sound to look at **known** information.

This patch now fails `Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll`due to Attributor verification. 
I think this is because in some case, CallSiteArgumentAttribute reaches pessimistic fixpoint faster than the function ArgumentAttribute gets known information.

To introduce backward propagation of known information, we need to fix this problem.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65402/new/

https://reviews.llvm.org/D65402

Files:
  llvm/include/llvm/Analysis/ValueTracking.h
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/test/Transforms/FunctionAttrs/arg_nocapture.ll
  llvm/test/Transforms/FunctionAttrs/arg_returned.ll
  llvm/test/Transforms/FunctionAttrs/dereferenceable.ll
  llvm/test/Transforms/FunctionAttrs/liveness.ll
  llvm/test/Transforms/FunctionAttrs/nonnull.ll
  llvm/test/Transforms/FunctionAttrs/nosync.ll
  llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll
  llvm/test/Transforms/InferFunctionAttrs/dereferenceable.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65402.215186.patch
Type: text/x-patch
Size: 27915 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190814/021cca41/attachment.bin>


More information about the llvm-commits mailing list