Changes

Summary

  1. Update compiler on hexagon-build-0x machines (details)
Commit e7f9b7230c9a17d5ffb64ac3f7b46846ce334c4b by kparzysz
Update compiler on hexagon-build-0x machines
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [clangd] Explicitly fail if the file passed to --check is not valid. (details)
  2. [lld-macho] Avoid force-loading the same archive twice (details)
  3. Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value" (details)
  4. RISCV: adjust handling of relocation emission for RISCV (details)
  5. Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack." (details)
  6. [compiler-rt][hwasan]: undefine new/delete operators with alignment on Android. (details)
  7. [InstCombine][x86] add tests for complex vector shift value tracking; NFC (details)
  8. [InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC (details)
  9. fix an -Wunused-variable warning in release built, NFC (details)
  10. test: clean up some of the RISCV tests (NFC) (details)
  11. [libcxx][iwyu] 🎨 adds more headers to IWYU (details)
  12. [libcxx][module-map] 🎨 updates module map to account for ranges headers (details)
  13. [mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test (details)
  14. [clang] Fix a race condition in the build of clangInterpreter (details)
  15. [lld-macho] Implement ICF (details)
Commit 6765b9c3f1192bd63bdcafc92ee8ff5d7b97d90b by hokein.wu
[clangd] Explicitly fail if the file passed to --check is not valid.

Differential Revision: https://reviews.llvm.org/D104455
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
Commit 24706cd73cd150543753a2e169c68a2c68da46a1 by jezng
[lld-macho] Avoid force-loading the same archive twice

We need to dedup archive loads (similar to what we do for dylib
loads).

I noticed this issue after building some Swift stuff that used
`-force_load_swift_libs`, as it caused some Swift archives to be loaded
many times.

Reviewed By: #lld-macho, thakis, MaskRay

Differential Revision: https://reviews.llvm.org/D104353
The file was modifiedlld/test/MachO/force-load.s
The file was modifiedlld/test/MachO/archive.s
The file was modifiedlld/MachO/Driver.cpp
Commit dee2c76b4c46e71903e3d86ab7555a80d51d1288 by stephen.tozer
Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value"

Reapply the commit which previously caused build failures due to the
mismatched template arguments between the return type and the returned
SmallVector.

This reverts commit e8991caea8690ec2d17b0b7e1c29bf0da6609076.
The file was modifiedllvm/include/llvm/IR/Metadata.h
The file was modifiedllvm/lib/IR/Metadata.cpp
Commit bbea64250f65480d787e1c5ff45c4de3ec2dcda8 by Saleem Abdulrasool
RISCV: adjust handling of relocation emission for RISCV

This re-architects the RISCV relocation handling to bring the
implementation closer in line with the implementation in binutils.  We
would previously aggressively resolve the relocation.  With this
restructuring, we always will emit a paired relocation for any symbolic
difference of the type of S±T[±C] where S and T are labels and C is a
constant.

GAS has a special target hook controlled by `RELOC_EXPANSION_POSSIBLE`
which indicates that a fixup may be expanded into multiple relocations.
This is used by the RISCV backend to always emit a paired relocation -
either ADD[WIDTH] + SUB[WIDTH] for text relocations or SET[WIDTH] +
SUB[WIDTH] for a debug info relocation.  Irrespective of whether linker
relaxation support is enabled, symbolic difference is always emitted as
a paired relocation.

This change also sinks the target specific behaviour down into the
target specific area rather than exposing it to the shared relocation
handling.  In the process, we also sink the "special" handling for debug
information down into the RISCV target.  Although this improves the path
for the other targets, this is not necessarily entirely ideal either.
The changes in the debug info emission could be done through another
type of hook as this functionality would be required by any other target
which wishes to do linker relaxation.  However, as there are no other
targets in LLVM which currently do this, this is a reasonable thing to
do until such time as the code needs to be shared.

Improve the handling of the relocation (and add a reduced test case from
the Linux kernel) to ensure that we handle complex expressions for
symbolic difference.  This ensures that we correct relocate symbols with
the adddends normalized and associated with the addition portion of the
paired relocation.

This change also addresses some review comments from Alex Bradbury about
the relocations meant for use in the DWARF CFA being named incorrectly
(using ADD6 instead of SET6) in the original change which introduced the
relocation type.

This resolves the issues with the symbolic difference emission
sufficiently to enable building the Linux kernel with clang+IAS+lld
(without linker relaxation).

Resolves PR50153, PR50156!
Fixes: ClangBuiltLinux/linux#1023, ClangBuiltLinux/linux#1143

Reviewed By: nickdesaulniers, maskray

Differential Revision: https://reviews.llvm.org/D103539
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
The file was modifiedllvm/include/llvm/MC/MCDwarf.h
The file was modifiedllvm/test/MC/RISCV/fixups-expr.s
The file was addedllvm/test/MC/RISCV/reloc-addend.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
The file was addedllvm/test/MC/RISCV/scoped-relaxation.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modifiedllvm/lib/MC/MCExpr.cpp
The file was modifiedllvm/lib/MC/MCAsmBackend.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
The file was modifiedllvm/test/MC/RISCV/fde-reloc.s
The file was modifiedllvm/lib/MC/MCObjectStreamer.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modifiedllvm/lib/MC/MCDwarf.cpp
The file was modifiedllvm/include/llvm/MC/MCFixup.h
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll
The file was modifiedllvm/include/llvm/MC/MCAsmBackend.h
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
The file was modifiedllvm/test/MC/RISCV/hilo-constaddr-expr.s
Commit 249d9b051f92d1a323b3dd477f95133648df4774 by kda
Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack."

This reverts commit 07481b37961f5b9a670c924367d2ead2e3c32b86.

Differential Revision: https://reviews.llvm.org/D104469
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp
Commit ac35ed5d34876e3b72442e61543233bd3ac6e632 by peter
[compiler-rt][hwasan]: undefine new/delete operators with alignment on Android.

This is to fix build on Android. And we don't want to intercept more new/delete operators on Android.

Differential Revision: https://reviews.llvm.org/D104313
The file was modifiedcompiler-rt/lib/hwasan/hwasan_new_delete.cpp
Commit 5b1079f6411b7d978550c6bf37e87674d137f1c4 by spatel
[InstCombine][x86] add tests for complex vector shift value tracking; NFC

https://llvm.org/PR50123
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vector-shifts.ll
Commit 61196f855c395b14bffd7c9b1ba29194577e67f6 by spatel
[InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/shift-knownbits.ll
Commit 53f5f14136fbc75e42e18374f3ace05a262a18d3 by hokein.wu
fix an -Wunused-variable warning in release built, NFC
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
Commit e70d4994ea9eb44ba5a86c5073ac83cf500aabdd by Saleem Abdulrasool
test: clean up some of the RISCV tests (NFC)

This addresses some post-commit comments from jrtc27 to make the tests
easier to process.
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll
Commit a22c55c69bcdef193715fd6e1f92a329649bc153 by cjdb
[libcxx][iwyu] 🎨 adds more headers to IWYU

A few slipped through the cracks because D104175 and D104170 didn't
concern themselves with newer commits.

Differential Revision: https://reviews.llvm.org/D104414
The file was modifiedlibcxx/include/__ranges/empty_view.h
The file was modifiedlibcxx/include/__ranges/subrange.h
The file was modifiedlibcxx/include/__ranges/ref_view.h
Commit d827af03bc1d12e813ef207d2a897998ebf64ca1 by cjdb
[libcxx][module-map] 🎨 updates module map to account for ranges headers

Corresponding module map update for D104414, split out for rollback
reasons.

Differential Revision: https://reviews.llvm.org/D104415
The file was modifiedlibcxx/include/module.modulemap
Commit 22911585bb3811767a616c20946290b8e9a988d9 by gusss
[mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test

See this documentation from taco:
http://tensor-compiler.org/docs/data_analytics/index.html

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D104417
The file was addedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
The file was modifiedmlir/test/CMakeLists.txt
The file was addedmlir/test/Integration/data/mttkrp_b.tns
Commit 734d688fbce8a453aa61764b9b5a43b26455dc0d by stilis
[clang] Fix a race condition in the build of clangInterpreter

The library depends on Attributes.inc, so it has to depend on the intrinsics_gen target

Reviewed By: v.g.vassilev

Differential Revision: https://reviews.llvm.org/D104311
The file was modifiedclang/lib/Interpreter/CMakeLists.txt
Commit f27e4548fc42876f66dac260ca3b6df0d5fd5fd6 by gkm
[lld-macho] Implement ICF

ICF = Identical C(ode|OMDAT) Folding

This is the LLD ELF/COFF algorithm, adapted for MachO. So far, only `-icf all` is supported. In order to support `-icf safe`, we will need to port address-significance tables (`.addrsig` directives) to MachO, which will come in later diffs.

`check-{llvm,clang,lld}` have 0 regressions for `lld -icf all` vs. baseline ld64.

We only run ICF on `__TEXT,__text` for reasons explained in the block comment in `ConcatOutputSection.cpp`.

Here is the perf impact for linking `chromium_framekwork` on a Mac Pro (16-core Xeon W) for the non-ICF case vs. pre-ICF:
```
    N           Min           Max        Median           Avg        Stddev
x  20          4.27          4.44          4.34         4.349   0.043029977
+  20          4.37          4.46         4.405        4.4115   0.025188761
Difference at 95.0% confidence
        0.0625 +/- 0.0225658
        1.43711% +/- 0.518873%
        (Student's t, pooled s = 0.0352566)
```

Reviewed By: #lld-macho, int3

Differential Revision: https://reviews.llvm.org/D103292
The file was modifiedlld/MachO/InputSection.cpp
The file was modifiedlld/MachO/Symbols.cpp
The file was addedlld/test/MachO/icf.s
The file was addedlld/test/MachO/icf-scale.s
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/MachO/UnwindInfoSection.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/ConcatOutputSection.h
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/UnwindInfoSection.cpp
The file was addedlld/MachO/ICF.h
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/Config.h
The file was addedlld/MachO/ICF.cpp
The file was modifiedlld/MachO/ConcatOutputSection.cpp
The file was modifiedlld/MachO/Options.td
The file was addedlld/test/MachO/icf-options.s
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
The file was modifiedlld/MachO/CMakeLists.txt

Summary

  1. Update compiler on hexagon-build-0x machines (details)
Commit e7f9b7230c9a17d5ffb64ac3f7b46846ce334c4b by kparzysz
Update compiler on hexagon-build-0x machines
The file was modifiedbuildbot/osuosl/master/config/builders.py