[Attributor][FIX] Carefully handle/ignore/forget `argmemonly`
When we have an existing `argmemonly` or `inaccessiblememorargmemonly` we used to "know" that information. However, interprocedural constant propagation can invalidate these attributes. We now ignore and remove these attributes for internal functions (which may be affected by IP constant propagation), if we are deriving new attributes for the function.
Showing
- llvm/include/llvm/Transforms/IPO/Attributor.h 5 additions, 0 deletionsllvm/include/llvm/Transforms/IPO/Attributor.h
- llvm/lib/Transforms/IPO/AttributorAttributes.cpp 22 additions, 5 deletionsllvm/lib/Transforms/IPO/AttributorAttributes.cpp
- llvm/test/Transforms/Attributor/memory_locations.ll 24 additions, 1 deletionllvm/test/Transforms/Attributor/memory_locations.ll
Loading
Please register or sign in to comment