Merge from trunk.

llvm-svn: 12280
15 files changed