Reapply r215966, r215965, r215964, r215963, r215960, r215959, r215958, and r215957
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 19 Aug 2014 16:39:58 +0000 (16:39 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 19 Aug 2014 16:39:58 +0000 (16:39 +0000)
commit7116af637cf6e3e49b6329263fb1535fb9de73bc
treef2a72331c47bc1a4f5193bec8c3256a795d6df38
parent8c20a93bac4f9631d180ff9ec5b562ed2673d78c
Reapply r215966, r215965, r215964, r215963, r215960, r215959, r215958, and r215957

This reverts commit r215981, which reverted the above commits because
MSVC std::equal asserts on nullptr iterators, and thes commits
introduced an `ArrayRef::equals()` on empty ArrayRefs.

ArrayRef was changed not to use std::equal in r215986.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215987 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Constant.h
include/llvm/IR/Constants.h
include/llvm/IR/InlineAsm.h
lib/IR/Constants.cpp
lib/IR/ConstantsContext.h
lib/IR/LLVMContextImpl.cpp
lib/IR/LLVMContextImpl.h
unittests/IR/ConstantsTest.cpp