Change LoadAndStorePromoter to take ArrayRef instead of SmallVectorImpl&.
authorPete Cooper <peter_cooper@apple.com>
Wed, 13 May 2015 01:12:16 +0000 (01:12 +0000)
committerPete Cooper <peter_cooper@apple.com>
Wed, 13 May 2015 01:12:16 +0000 (01:12 +0000)
commit41e0ee30748f021dba3e0ea039dee50ad0e97f9a
tree5887625435f9b351d28519437337cab6e880ca85
parent4bf388d9ad9df5ef1877d306313e83db35b183b4
Change LoadAndStorePromoter to take ArrayRef instead of SmallVectorImpl&.

The array passed to LoadAndStorePromoter's constructor was a constant reference to a SmallVectorImpl, which is just the same as passing an ArrayRef.

Also, the data in the array can be 'const Instruction*' instead of 'Instruction*'.  Its not possible to convert a SmallVectorImpl<T*> to SmallVectorImpl<const T*>, but ArrayRef does provide such a method.

Currently this added calls to makeArrayRef which should be a nop, but i'm going to kick off a discussion about improving ArrayRef to not need these.

llvm-svn: 237226
llvm/include/llvm/Transforms/Utils/SSAUpdater.h
llvm/lib/Transforms/Scalar/LICM.cpp
llvm/lib/Transforms/Scalar/SROA.cpp
llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
llvm/lib/Transforms/Utils/SSAUpdater.cpp