SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [flang] Response to Steve Scalpone's suggestion to improve a message (details)
  2. [lld][WebAssembly] Honor --allow-undefined for data symbols too (details)
  3. [CodeGen][ObjC] Don't try to retain a __unsafe_unretained ARC pointer (details)
  4. Revert "[libc++] [test] Generate static_test_env on the fly" (details)
  5. Add an explicit API to read the Xcode SDK DWARF attribute from compile units (details)
  6. When pragma FENV_ACCESS is ignored do not modify Sema.CurFPFeatures (details)
  7. Move the Xcode SDK path caching to HostInfo (details)
  8. [libc] Reorganize and clarify a few points around benchmarking (details)
  9. [X86] Remove incomplete support for 'Y' has an inline assembly constraint by itself. (details)
  10. [CUDA] Enable existing builtins for PTX7.0 as well. (details)
  11. [LoopUnrollAndJam] Changed safety checks to consider more than 2-levels (details)
  12. [lldb/Test] Run dotest.py with the Python LLDB was built with. (details)
  13. [X86] Remove support for Y0 constraint as an alias for Yz in inline assembly. (details)
  14. [flang] Response to Steve Scalpone's suggestion to improve a message (details)
  15. [flang][NFC] Replace "align" with "alignment" (details)
  16. [NFC] Improve doc string to mention that paths in diff are used as-is (details)
  17. [COFF] Dump string table size for COFF file headers (details)
  18. ParseXcodeSDK: Register both the CU module and the SymbolFile module. (details)
  19. [AArch64][SVE] Implement lowering for SIGN_EXTEND etc. of SVE predicates. (details)
  20. [Darwin] Improve ASan diagnostics on arm64e with pointer auth (details)
  21. Reland [libclang] Install both libclang.a and libclang.so when LIBCLANG_BUILD_STATIC=ON (details)
  22. [dsymutil] Add option to print statistics about the .debug_info size. (details)
  23. [SelectionDAG] When splitting gather operands in type legalization, set MMO size to UnknownSize (details)
  24. [DWARFLinker] Fix llvm::sort ambiguity (details)
Commit cfce9b67609f4d2c91ac9c6ab51931769903a560 by psteinfeld
[flang] Response to Steve Scalpone's suggestion to improve a message

Summary: I updated the code that produces the message and the associated test.

Reviewers: sscalpone, DavidTruby

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79514
The file was modifiedflang/test/Semantics/resolve89.f90
The file was modifiedflang/lib/Evaluate/check-expression.cpp
Commit f03b6e785b3469742b9853d855a6e9e81960af0a by sbc
[lld][WebAssembly] Honor --allow-undefined for data symbols too

This was originally the way this worked before before
https://reviews.llvm.org/D60882.

In retrospect it seems inconsistent that `--allow-undefined` doesn't
work for all symbols.  See:
https://groups.google.com/g/emscripten-discuss/c/HSRgQiIq1gI/m/Kt9oFWHiAwAJ

I'm also planning a followup change which implement the full
`--unresolved-symbols=..` flags supported by ELF linkers (both ld and
ld.lld) since it seems more standard.

Differential Revision: https://reviews.llvm.org/D79247
The file was modifiedlld/test/wasm/undefined-data.ll
The file was modifiedlld/wasm/Relocations.cpp
Commit dc4e25d4f238afb171aacb3774e1162c69574a0a by Akira
[CodeGen][ObjC] Don't try to retain a __unsafe_unretained ARC pointer
passed to __builtin_os_log_format to extend its lifetime to the end of
its enclosing block

Extend only lifetimes of pointers returned by function calls or message
sends instead. In the long term, we should lifetime-extend pointers in
more complex expressions and non-ARC objects (e.g., C++ temporaries)
too.

rdar://problem/61846261
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGenObjC/os_log.m
Commit 5e3ab8f2299f4aef78a2fce01096e40563b22b44 by jaskiewiczs
Revert "[libc++] [test] Generate static_test_env on the fly"

This reverts commit 52cc8bac7780dbfb90dcc8cfe24696618eeaa06e.

As the discussion in https://reviews.llvm.org/D78200 continues, I will
revert this until we figure out what to do.
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/non_empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/afile3
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_dir
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file2
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/dir3/file5
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file1
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/file4
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
Commit 5935227e11f5b8e7111ee4a076c10a62d0648689 by Adrian Prantl
Add an explicit API to read the Xcode SDK DWARF attribute from compile units

When debugging from a SymbolMap the creation of CompileUnits for the
individual object files is so lazy that RegisterXcodeSDK() is not
invoked at all before the Swift TypeSystem wants to read it. This
patch fixes this by introducing an explicit
SymbolFile::ParseXcodeSDK() call that can be invoked deterministically
before the result is required.

<rdar://problem/62532151+62326862>

https://reviews.llvm.org/D79273
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
The file was modifiedlldb/include/lldb/Symbol/SymbolFile.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was modifiedlldb/include/lldb/Core/Module.h
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/unittests/SymbolFile/DWARF/XcodeSDKModuleTests.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit e5578013b199e142864cbf374b4a143e5d0c184a by melanie.blower
When pragma FENV_ACCESS is ignored do not modify Sema.CurFPFeatures
Bug reported by @uabelho against reviews.llvm.org/D72841

Reviewers: rjmccall

Differential Revision: https://reviews.llvm.org/D79510
The file was modifiedclang/test/Parser/fp-floatcontrol-syntax.cpp
The file was modifiedclang/lib/Parse/ParsePragma.cpp
The file was modifiedclang/test/CodeGen/fp-floatcontrol-pragma.cpp
Commit f0c08b7eac16cd380b0932cd8c0377f7daea2b4c by Adrian Prantl
Move the Xcode SDK path caching to HostInfo

When debugging a remote platform, the platform you get from
GetPlatformForArchitecture doesn't inherit from PlatformDarwin.
HostInfoMacOSX seems like the right place to have a global store of
local paths.

Differential Revision: https://reviews.llvm.org/D79364
The file was modifiedlldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
The file was modifiedlldb/include/lldb/Target/Platform.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
The file was modifiedlldb/unittests/Host/HostInfoTest.cpp
The file was modifiedlldb/include/lldb/Host/macosx/HostInfoMacOSX.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/include/lldb/Host/HostInfoBase.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Commit 880115e65ecd7a8838588faf6dfeef5c37e7f586 by echristo
[libc] Reorganize and clarify a few points around benchmarking

A few documentation clarifications and moving one part of the
docs around to be closer to the first mention of display so that
it's easier to spot based on some user feedback.

Differential Revision: https://reviews.llvm.org/D79443
The file was modifiedlibc/utils/benchmarks/README.md
Commit 9bb9ff09573cf9178341f76a97e2a85b99cc7ae1 by craig.topper
[X86] Remove incomplete support for 'Y' has an inline assembly constraint by itself.

Y is the start of several 2 letter constraints, but we also had
partial support to recognize it by itself. But it doesn't look
like it can get through clang as a single letter so the backend
support for this was effectively dead.
The file was modifiedclang/lib/Basic/Targets/X86.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 314f99e7d42ded663386190a54b5831dc4a6f3c1 by tra
[CUDA] Enable existing builtins for PTX7.0 as well.

Differential Revision: https://reviews.llvm.org/D79515
The file was modifiedclang/include/clang/Basic/BuiltinsNVPTX.def
The file was modifiedclang/test/CodeGen/builtins-nvptx-ptx60.cu
Commit 0a52401ad68b084e52e535541ebff1e9cb6d3869 by whitneyt
[LoopUnrollAndJam] Changed safety checks to consider more than 2-levels
loop nest.

Summary: As discussed in https://reviews.llvm.org/D73129.

Example
Before unroll and jam:

for
  A
  for
    B
    for
      C
    D
  E
After unroll and jam (currently):

for
  A
  A'
  for
    B
    for
      C
    D
    B'
    for
      C'
    D'
  E
  E'
After unroll and jam (Ideal):

for
  A
  A'
  for
    B
    B'
    for
      C
      C'
    D
    D'
  E
  E'
This is the first patch to change unroll and jam to work in the ideal
way.
This patch change the safety checks needed to make sure is safe to
unroll and jam in the ideal way.

Reviewer: dmgreen, jdoerfert, Meinersbur, kbarton, bmahjour, etiotto
Reviewed By: Meinersbur
Subscribers: fhahn, hiraditya, zzheng, llvm-commits, anhtuyen, prithayan
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D76132
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
The file was addedllvm/test/Transforms/LoopUnrollAndJam/dependencies_multidims.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/UnrollLoop.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
The file was modifiedllvm/test/Transforms/LoopUnrollAndJam/dependencies.ll
Commit 7c6420e43178b0c03618f445fd008606a8b2c95e by Jonas Devlieghere
[lldb/Test] Run dotest.py with the Python LLDB was built with.

The Python used to run lit can be different from the Python LLDB was
build with. One scenario where this happens is when LLVM can find the
Python 3 interpreter, but not the Python 3 libraries, in which case LLDB
build and links against Python 3. Without this change, you end up with
an ModuleNotFoundError because of the mismatch.

Instead of looking at the Python interpreter that's used to run lit,
lldbtest should use the interpreter that matches the Python version LLDB
was build against.

Differential revision: https://reviews.llvm.org/D79519
The file was modifiedlldb/test/API/lldbtest.py
Commit 16c800b8b7155b531b53da0ca18b81980ac6a45b by craig.topper
[X86] Remove support for Y0 constraint as an alias for Yz in inline assembly.

Neither gcc or icc support this. Split out from D79472. I want
to remove more, but it looks like icc does support some things
gcc doesn't and I need to double check our internal test suites.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedclang/test/CodeGen/x86-GCC-inline-asm-Y-constraints.c
The file was modifiedclang/lib/Basic/Targets/X86.cpp
The file was modifiedllvm/test/MC/X86/x86-GCC-inline-asm-Y-constraints.ll
Commit 07b69dcf66776a6a340c5b1b49ca8a36e712026d by psteinfeld
[flang] Response to Steve Scalpone's suggestion to improve a message

Summary: I updated the code that produces the message and the associated test.

Reviewers: sscalpone, DavidTruby, kiranchandramohan

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79514
The file was modifiedflang/test/Semantics/resolve89.f90
The file was modifiedflang/lib/Evaluate/check-expression.cpp
Commit 54b35c066417d4856e9d53313f7e98b354274584 by tkeith
[flang][NFC] Replace "align" with "alignment"

In the places it is used as a noun, replace "align" with "alignment".

Differential Revision: https://reviews.llvm.org/D79520
The file was modifiedflang/lib/Semantics/semantics.cpp
The file was modifiedflang/test/Semantics/offsets02.f90
The file was modifiedflang/test/Semantics/offsets03.f90
The file was modifiedflang/include/flang/Semantics/symbol.h
The file was modifiedflang/include/flang/Semantics/scope.h
The file was modifiedflang/lib/Semantics/compute-offsets.cpp
The file was modifiedflang/lib/Semantics/symbol.cpp
Commit 5a77b958e250fbf156474b42ccf5a82e8a36db72 by ctetreau
[NFC] Improve doc string to mention that paths in diff are used as-is

Summary:
Add --relative to the suggested git-diff one liner. If the user does not
pass this argument, then git will produce a diff with the path relative
to the repository root. If the user's working directory is not the
repository root, then clang-format will complain that the file is not
found. The --relative argument makes git produce a diff with the files
relative to the working directory.

Add note to doc string to warn users about the fact that filenames
embedded in the diff are used as-is with no attempts to "do what they
mean, not what they say"

Reviewers: djasper, alexfh, efriedma, klimek, thakis

Reviewed By: efriedma

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79054
The file was modifiedclang/tools/clang-format/clang-format-diff.py
Commit d71c3c425cf567b966d88e56651b8b052b08a97c by rnk
[COFF] Dump string table size for COFF file headers

I couldn't find this info in any other dumper, so it might as well be
here.
The file was modifiedlld/test/COFF/hello32.test
The file was modifiedllvm/test/tools/llvm-readobj/COFF/bigobj.test
The file was modifiedllvm/test/tools/llvm-readobj/COFF/file-headers.test
The file was modifiedllvm/tools/llvm-readobj/COFFDumper.cpp
The file was modifiedllvm/include/llvm/Object/COFF.h
The file was modifiedlld/test/COFF/largeaddressaware.test
Commit 01fc85dc9618394868b795c5087d9da03df9c58b by Adrian Prantl
ParseXcodeSDK: Register both the CU module and the SymbolFile module.

For Swift LLDB (but potentially also for module support in Clang-land)
we need a way to accumulate the path remappings produced by
Module::RegisterXcodeSDK(). In order to make this work for
SymbolFileDebugMaps, registering the search path remapping with both
modules is necessary.

Differential Revision: https://reviews.llvm.org/D79384

<rdar://problem/62750529>
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was modifiedlldb/unittests/SymbolFile/DWARF/XcodeSDKModuleTests.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
Commit 2c8546107a91a7b9a31791452712676937df54fe by efriedma
[AArch64][SVE] Implement lowering for SIGN_EXTEND etc. of SVE predicates.

Now using patterns, since there's a single-instruction lowering. (We
could convert to VSELECT and pattern-match that, but there doesn't seem
to be much point.)

I think this might be the first instruction to use nested multiclasses
this way? It seems like a good way to reduce duplication between
different integer widths. Let me know if it seems like an improvement.

Also, while I'm here, fix the return type of SETCC so we don't try to
merge a sign-extend with a SETCC.

Differential Revision: https://reviews.llvm.org/D79193
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was addedllvm/test/CodeGen/AArch64/sve-sext-zext.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fcmp.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 5e4740c21284054a3e2905bfdcaadff1a9bd4bb0 by julian.lettner
[Darwin] Improve ASan diagnostics on arm64e with pointer auth

When reporting diagnostics from ASan's (and other sanitizer's) signal
handlers we should strip the "invalid signature" bit before printing
addresses.  This makes the report less confusing and let's the user
focus on the real issue.

rdar://62615826

Reviewed By: kubamracek, delcypher

Differential Revision: https://reviews.llvm.org/D79132
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
Commit 0c9230dad1692bc3d8f1ce2dddae413a115f2532 by smeenai
Reland [libclang] Install both libclang.a and libclang.so when LIBCLANG_BUILD_STATIC=ON

f8990feb125a enabled installing PIC version of both libclang.a and
libclang.so when LIBCLANG_BUILD_STATIC is ON. But it broke the no-PIC
build when LLVM_ENABLE_PIC=OFF with the following error:

```
CMake Error at
/b/s/w/ir/cache/builder/src/third_party/llvm/clang/tools/libclang/CMakeLists.txt:123
(target_compile_definitions):
    target_compile_definitions called with non-compilable target type
```

This is because as the code loops through ${name} and ${name}_static, it
introduced a side effect, which is adding an empty libclang_static to
targets. Later target_compile_definitions is called on libclang_static.
That function requires that target must have been created by a command
such as add_executable() or add_library(), so it crashed.

The solution is to not naively loop through both libclang and
libclang_static, but only the ones that are actually added by
llvm_add_library(). Here's the library build type to library target name
mapping:

| SHARED only | libclang |
| STATIC only | libclang |
| SHARED and STATIC | libclang and libclang_static |

So only when SHARED and STATIC are both set should we loop through two
targets. Explicitly parse the STATIC argument and set the list
accordingly.

Reviewed By: smeenai

Differential Revision: https://reviews.llvm.org/D79059
The file was modifiedclang/cmake/modules/AddClang.cmake
Commit 7fb9bcd3da64fee7b1116d703beb5db9ef2473bc by Jonas Devlieghere
[dsymutil] Add option to print statistics about the .debug_info size.

This patch adds statistics about the contribution of each object file to
the linked debug info. When --statistics is passed to dsymutil, it
prints a table after linking as illustrated below.

It lists the object file name, the size of the debug info in the object
file in bytes, and the absolute size contribution to the linked dSYM and
the percentage difference. The table is sorted by the output size, so
the object files contributing the most to the link are listed first.

.debug_info section size (in bytes)
-------------------------------------------------------------------------------
Filename                                           Object         dSYM   Change
-------------------------------------------------------------------------------
basic2.macho.x86_64.o                                210b         165b  -24.00%
basic3.macho.x86_64.o                                177b         150b  -16.51%
basic1.macho.x86_64.o                                125b         129b    3.15%
-------------------------------------------------------------------------------
Total                                                512b         444b  -14.23%
-------------------------------------------------------------------------------

Differential revision: https://reviews.llvm.org/D79513
The file was modifiedllvm/include/llvm/DWARFLinker/DWARFLinker.h
The file was addedllvm/test/tools/dsymutil/X86/statistics.test
The file was modifiedllvm/tools/dsymutil/dsymutil.cpp
The file was modifiedllvm/tools/dsymutil/Options.td
The file was modifiedllvm/tools/dsymutil/LinkUtils.h
The file was modifiedllvm/test/tools/dsymutil/cmdline.test
The file was modifiedllvm/tools/dsymutil/DwarfLinkerForBinary.cpp
The file was modifiedllvm/docs/CommandGuide/dsymutil.rst
The file was modifiedllvm/lib/DWARFLinker/DWARFLinker.cpp
Commit 7b9d6673bfe19c5165f217656f88848389072716 by craig.topper
[SelectionDAG] When splitting gather operands in type legalization, set MMO size to UnknownSize

I missed this case when I did the same for gather results and scatter
operands in c69a4d6bef0a1350f509f35beb450dccc2a6c5e2.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit c7b499d82cd657068661619126103936e4f49a79 by Jonas Devlieghere
[DWARFLinker] Fix llvm::sort ambiguity

Fix DWARFLinker.cpp:2538:5: error: call to 'sort' is ambiguous.
The file was modifiedllvm/lib/DWARFLinker/DWARFLinker.cpp