Merge from trunk

llvm-svn: 12067
97 files changed