[all-commits] [llvm/llvm-project] e39b41: [Attributor][FIX] Honor alloca address space in AA...
Johannes Doerfert via All-commits
all-commits at lists.llvm.org
Thu Feb 10 11:53:58 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e39b41931264d9f774dbe151bb64f4b579cf1ee0
https://github.com/llvm/llvm-project/commit/e39b41931264d9f774dbe151bb64f4b579cf1ee0
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2022-02-10 (Thu, 10 Feb 2022)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
A llvm/test/Transforms/Attributor/ArgumentPromotion/alloca-as.ll
Log Message:
-----------
[Attributor][FIX] Honor alloca address space in AAPrivatizablePtr
When we privatize a pointer (~argument promotion) we introduce new
private allocas as replacement. These need to be placed in the alloca
address space as later passes cannot properly deal with them otherwise.
Fixes https://github.com/llvm/llvm-project/issues/53725
Commit: d1387a26a54228da8cc275bba5f428b16676bc61
https://github.com/llvm/llvm-project/commit/d1387a26a54228da8cc275bba5f428b16676bc61
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2022-02-10 (Thu, 10 Feb 2022)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
M llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
M llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
M llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
M llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
M llvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
M llvm/test/Transforms/Attributor/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
M llvm/test/Transforms/Attributor/align.ll
M llvm/test/Transforms/Attributor/internal-noalias.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/liveness_chains.ll
M llvm/test/Transforms/Attributor/memory_locations.ll
M llvm/test/Transforms/Attributor/noalias.ll
M llvm/test/Transforms/Attributor/nocapture-2.ll
M llvm/test/Transforms/Attributor/nodelete.ll
M llvm/test/Transforms/Attributor/nofree.ll
M llvm/test/Transforms/Attributor/nonnull.ll
M llvm/test/Transforms/Attributor/norecurse.ll
M llvm/test/Transforms/Attributor/noreturn.ll
M llvm/test/Transforms/Attributor/nosync.ll
M llvm/test/Transforms/Attributor/nounwind.ll
M llvm/test/Transforms/Attributor/potential.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
M llvm/test/Transforms/Attributor/returned.ll
M llvm/test/Transforms/Attributor/value-simplify-gpu.ll
M llvm/test/Transforms/Attributor/value-simplify-instances.ll
M llvm/test/Transforms/Attributor/willreturn.ll
M llvm/test/Transforms/OpenMP/remove_globalization.ll
Log Message:
-----------
[Attributor][FIX] Reachability needs to account for readonly callees
The oversight caused us to ignore call sites that are effectively dead
when we computed reachability (or more precise the call edges of a
function). The problem is that loads in the readonly callee might depend
on stores prior to the callee. If we do not track the call edge we
mistakenly assumed the store before the call cannot reach the load.
The problem is nicely visible in:
`llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll`
Caused by D118673.
Fixes https://github.com/llvm/llvm-project/issues/53726
Commit: dd75c0ea64de5105d974bc011d454b648c89e2b7
https://github.com/llvm/llvm-project/commit/dd75c0ea64de5105d974bc011d454b648c89e2b7
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2022-02-10 (Thu, 10 Feb 2022)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Log Message:
-----------
[Attributor][NFC] Expose new API in AAPointerInfo
New users might want to check bins without a load or store instruction
at hand. Since we use those instructions only to find the offset and
size of the access anyway, we can expose an offset and size interface
to the outside world as well.
This commit mainly moves code around and exposes a class (OffsetAndSize)
as well as a method forallInterferingAccesses in AAPointerInfo.
Differential Revision: https://reviews.llvm.org/D119249
Compare: https://github.com/llvm/llvm-project/compare/24b30ec1eacb...dd75c0ea64de
More information about the All-commits
mailing list