[SROA] Propagate !range metadata when moving loads.
authorDavide Italiano <davide@freebsd.org>
Mon, 27 Nov 2017 21:25:13 +0000 (21:25 +0000)
committerDavide Italiano <davide@freebsd.org>
Mon, 27 Nov 2017 21:25:13 +0000 (21:25 +0000)
commitb5d59e73eec454961e56316ad5140088bdc93f50
tree666d2db8da1c101358302965467e94e9926c3f5d
parent2072552360079082237f6a1aef4b00da0ee9d69d
[SROA] Propagate !range metadata when moving loads.

This tries to propagate !range metadata to a pre-existing load
when a load is optimized out. This is done instead of adding an
assume because converting loads to and from assumes creates a
lot of IR.

Patch by Ariel Ben-Yehuda.

Differential Revision:  https://reviews.llvm.org/D37216

llvm-svn: 319096
llvm/lib/Transforms/Scalar/SROA.cpp
llvm/lib/Transforms/Utils/Local.cpp
llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
llvm/test/Transforms/SROA/preserve-nonnull.ll