Reviewed at http://reviews.llvm.org/D5452 llvm-svn: 218323
Reviewed at http://reviews.llvm.org/D4596 llvm-svn: 217116