[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