[all-commits] [llvm/llvm-project] a50b9f: [Attributor][FIX] Handle non-recursive but re-entr...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Thu Jul 21 22:01:20 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a50b9f9f1f89dcdfc163a9fcd76a6bcf20c26521
      https://github.com/llvm/llvm-project/commit/a50b9f9f1f89dcdfc163a9fcd76a6bcf20c26521
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2022-07-22 (Fri, 22 Jul 2022)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/misc.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll

  Log Message:
  -----------
  [Attributor][FIX] Handle non-recursive but re-entrant functions properly

If a function is non-recursive we only performed intra-procedural
reasoning for reachability (via AA::isPotentiallyReachable). However,
if it is re-entrant that doesn't mean we can't reach. Instead of this
problematic logic in the reachability reasoning we utilize logic in
AAPointerInfo. If a location is for sure written by a function it can
be re-entrant or recursive we know only intra-procedural reasoning is
sufficient.




More information about the All-commits mailing list