[PATCH] D78281: [Attributor] Use AAFromMustBeExecutedContext::initialize not ::updateImpl

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 16 01:33:58 PDT 2020


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

We inspected the must-be-executed-context in the updateImpl of
AAFromMustBeExecutedContext, thus every update once. Now we do it once
during the initialize call. This is fine as all users only look at known
information (and the context is build using known information only).
Once we have a user that utilizes assumed information we need to
introduce a mechanism to select when the context is traversed.

The test changes are basically artifacts but all positive. In the CGSCC
pass we currently do not allow to look at the caller/callee outside the
SCC, even if we could. Instead, we indicate a pessimistic fixpoint which
prevented the context exploration in AAFromMustBeExecutedContext to
happen at all. Since it is part of the initialize now we derive
information from the context even if we give up on the deduction later
on.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D78281

Files:
  llvm/lib/Transforms/IPO/AttributorAttributes.cpp
  llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/tail.ll
  llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
  llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
  llvm/test/Transforms/Attributor/callbacks.ll
  llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
  llvm/test/Transforms/Attributor/value-simplify.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78281.257981.patch
Type: text/x-patch
Size: 53400 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200416/7102c843/attachment.bin>


More information about the llvm-commits mailing list