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


  1. [AMDGPU] Fix assertion failure in SIInsertHardClauses (details)
  2. [BPF] preserve debuginfo types for builtin __builtin__btf_type_id() (details)
  3. [gn build] Port 6b01b465388 (details)
  4. [ARM][MachineOutliner] Fix memory leak #2. (details)
  5. [VectorUtils] Expose vector-function-abi-variant mangling as a utility. (details)
  6. [libc++] Centralize where we set the libc++ and libc++abi paths in (details)
  7. [ELF] Use namespace qualifiers (lld:: or elf::) instead of `namespace lld { namespace elf {` (details)
  8. [ARM][MVE] Add support for incrementing scatters (details)
  9. [libc++] Segregate back-deployment dylibs into their own subdirectory (details)
Commit 10c10f2419676175ef3dbafe8ace869aaf6dc6bb by jay.foad
[AMDGPU] Fix assertion failure in SIInsertHardClauses

This new pass failed an assertion whenever there were s_nops after the
end of clause.

Differential Revision:
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/hard-clauses.mir
Commit 6b01b465388b204d543da3cf49efd6080db094a9 by yhs
[BPF] preserve debuginfo types for builtin __builtin__btf_type_id()

The builtin function
  u32 btf_type_id = __builtin_btf_type_id(param, 0)
can help preserve type info for the following use case:
  extern void foo(..., void *data, int size);
  int test(...) {
    struct t { int a; int b; int c; } d;
    d.a = ...; d.b = ...; d.c = ...;
    foo(..., &d, sizeof(d));

The function "foo" in the above only see raw data and does not
know what type of the data is. In certain cases, e.g., logging,
the additional type information will help pretty print.

This patch handles the builtin in BPF backend. It includes
an IR pass to translate the IR intrinsic to a load of
a global variable which carries the metadata, and an MI
pass to remove the intermediate load of the global variable.
Finally, in AsmPrinter pass, proper instruction are generated.

In the above example, the second argument for __builtin_btf_type_id()
is 0, which means a relocation for local adjustment,
i.e., w.r.t. bpf program BTF change,  will be generated.
The value 1 for the second argument means
a relocation for remote adjustment, e.g., against vmlinux.

Differential Revision:
The file was modifiedllvm/lib/Target/BPF/BPFTargetMachine.cpp
The file was modifiedllvm/lib/Target/BPF/BPF.h
The file was addedllvm/lib/Target/BPF/BPFPreserveDIType.cpp
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was modifiedllvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp
The file was addedllvm/test/CodeGen/BPF/BTF/builtin-btf-type-id.ll
The file was modifiedllvm/lib/Target/BPF/BPFCORE.h
The file was modifiedllvm/lib/Target/BPF/BTFDebug.h
The file was modifiedllvm/lib/Target/BPF/CMakeLists.txt
Commit 6894d95040b656008a5ea8682570ac3a11585c05 by llvmgnsyncbot
[gn build] Port 6b01b465388
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/BPF/
Commit 3648dde3ddd3cc0ba862017d494b7ede6054631c by yvan.roux
[ARM][MachineOutliner] Fix memory leak #2.

Use smart pointer instead of new/delete.
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
Commit 7cc3769adb15f7347e28df65b16d6e6464fd3c70 by anna
[VectorUtils] Expose vector-function-abi-variant mangling as a utility.

This change exposes the vector name mangling with LLVM ISA (used as part
of vector-function-abi-variant) as a utility.
This can then be used by front-ends that add this attribute.
Note that all parameters passed in to the function will be mangled with
the "v" token to identify that they are of of vector type. So, it is the
responsibility of the caller to confirm that all parameters in the
vectorized variant is of vector type.

Added unit test to show vector name mangling.

Reviewed-By: fpetrogalli, simoll

Differential Revision:
The file was modifiedllvm/unittests/Analysis/VectorFunctionABITest.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was modifiedllvm/lib/Transforms/Utils/InjectTLIMappings.cpp
Commit 04c89c7fcab4bb3fcdb1e75daa10fd0d8206e320 by Louis Dionne
[libc++] Centralize where we set the libc++ and libc++abi paths in

It's just confusing to have them all over the place.
The file was modifiedlibcxx/utils/libcxx/test/
Commit 07837b8f499bcb1cfd9e67ad5759c68b8a470d3c by maskray
[ELF] Use namespace qualifiers (lld:: or elf::) instead of `namespace lld { namespace elf {`

Similar to D74882. This reverts much code from commit
bd8cfe65f5fee4ad573adc2172359c9552e8cdc0 (D68323) and fixes some
problems before D68323.

Sorry for the churn but D68323 was a mistake. Namespace qualifiers avoid
bugs where the definition does not match the declaration from the
header. See (D74515)

Differential Revision:
The file was modifiedlld/ELF/MapFile.cpp
The file was modifiedlld/ELF/Arch/X86_64.cpp
The file was modifiedlld/ELF/Arch/RISCV.cpp
The file was modifiedlld/ELF/Arch/Hexagon.cpp
The file was modifiedlld/ELF/Arch/AVR.cpp
The file was modifiedlld/ELF/SymbolTable.cpp
The file was modifiedlld/ELF/Symbols.cpp
The file was modifiedlld/ELF/ScriptLexer.cpp
The file was modifiedlld/ELF/EhFrame.cpp
The file was modifiedlld/ELF/Arch/ARM.cpp
The file was modifiedlld/ELF/LTO.cpp
The file was modifiedlld/ELF/InputFiles.cpp
The file was modifiedlld/ELF/Arch/Mips.cpp
The file was modifiedlld/ELF/ScriptParser.cpp
The file was modifiedlld/ELF/Thunks.cpp
The file was modifiedlld/ELF/MarkLive.cpp
The file was modifiedlld/ELF/Arch/MSP430.cpp
The file was modifiedlld/ELF/OutputSections.cpp
The file was modifiedlld/ELF/DWARF.cpp
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/ELF/Arch/AMDGPU.cpp
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/ELF/ARMErrataFix.cpp
The file was modifiedlld/ELF/DriverUtils.cpp
The file was modifiedlld/ELF/InputFiles.h
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/ELF/Arch/AArch64.cpp
The file was modifiedlld/ELF/Arch/PPC64.cpp
The file was modifiedlld/ELF/CallGraphSort.cpp
The file was modifiedlld/ELF/Target.cpp
The file was modifiedlld/ELF/Arch/PPC.cpp
The file was modifiedlld/ELF/Arch/SPARCV9.cpp
The file was modifiedlld/ELF/Arch/X86.cpp
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/AArch64ErrataFix.cpp
The file was modifiedlld/ELF/Arch/MipsArchTree.cpp
Commit 4ec340c3e99c7fa4789387452864ad3cf36ab579 by anna.welker
[ARM][MVE] Add support for incrementing scatters

Adds support to build pre-incrementing scatters.
If the increment (i.e., add instruction) that is merged into
the scatter is the loop increment, an incrementing write-back
scatter can be built, which then assumes the role of the loop

Differential Revision:
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-increment.ll
Commit bb7191aa81b858e9c979556eca55a7bc0db2d87b by Louis Dionne
[libc++] Segregate back-deployment dylibs into their own subdirectory

Otherwise, specifying (for example) the libc++.dylib from macos10.13
but the libc++abi.dylib from macos10.12 would end up adding library
paths for both the 10.12 and 10.13 dylibs, which would each contain
a copy of both libc++abi.dylib and libc++.dylib. By using a separate
directory for libc++.dylib and libc++abi.dylib, those do not conflict

The back-deployment roots were updated to match this change.
The file was modifiedlibcxx/utils/ci/