forked from OSchip/llvm-project
282dac717e
There is a circular dependency between SROA and InferAddressSpaces today that requires running both multiple times in order to be able to eliminate all simple allocas and addrspacecasts. InferAddressSpaces can't remove addrspacecasts when written to memory, and SROA helps move pointers out of memory. This should avoid inserting new commuting addrspacecasts with GEPs, since there are unresolved questions about pointer wrapping between different address spaces. For now, don't replace volatile operations that don't match the alloca addrspace, as it would change the address space of the access. It may be still OK to insert an addrspacecast from the new alloca, but be more conservative for now. llvm-svn: 363462 |
||
---|---|---|
.. | ||
address-spaces.ll | ||
addrspacecast.ll | ||
alignment.ll | ||
alloca-address-space.ll | ||
basictest.ll | ||
big-endian.ll | ||
dbg-addr-diamond.ll | ||
dbg-single-piece.ll | ||
dead-inst.ll | ||
fca.ll | ||
mem-par-metadata-sroa.ll | ||
non-integral-pointers.ll | ||
phi-and-select.ll | ||
phi-with-duplicate-pred.ll | ||
pointer-offset-size.ll | ||
ppcf128-no-fold.ll | ||
pr26972.ll | ||
pr37267.ll | ||
preserve-nonnull.ll | ||
slice-order-independence.ll | ||
slice-width.ll | ||
vector-conversion.ll | ||
vector-lifetime-intrinsic.ll | ||
vector-promotion.ll | ||
vectors-of-pointers.ll |