LLVM/project 244e053llvm/lib/Target/CSKY/MCTargetDesc CSKYAsmBackend.cpp, llvm/lib/Target/Hexagon/MCTargetDesc HexagonAsmBackend.cpp

MC: Remove llvm/MC/MCFixupKindInfo.h

The file used to define `MCFixupKindInfo`, a simple structure,
which is now in MCAsmBackend.h.
DeltaFile
+0-1llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
+0-1llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
+0-1llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp
+0-1llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
+0-1llvm/lib/Target/M68k/MCTargetDesc/M68kAsmBackend.cpp
+0-1llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp
+0-627 files not shown
+0-3233 files

LLVM/project 8c9fcaelibcxx/include locale, libcxx/include/__locale_dir num.h money.h

rebase

Created using spr 1.3.5-bogner
DeltaFile
+6-3,482libcxx/include/locale
+618-888llvm/test/CodeGen/AArch64/itofp.ll
+1,072-0libcxx/include/__locale_dir/num.h
+873-0libcxx/include/__locale_dir/money.h
+766-0libcxx/include/__locale_dir/time.h
+430-0libcxx/include/__locale_dir/wbuffer_convert.h
+3,765-4,370202 files not shown
+7,442-6,156208 files

LLVM/project 152c9d5llvm/include/llvm/MC MCAsmBackend.h, llvm/lib/MC MCAssembler.cpp

MC: Sink FKF_IsAlignedDownTo32Bits to needed targets

Utilize the generalized MCAsmBackend::evaluateFixup hook. This reduces
overhead for other targets (e.g., x86).

Now MCAsmBackend::getFixupKindInfo is only used by MCAsmStreamer
-show-encoding in the generic code.
DeltaFile
+33-22llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+18-6llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
+19-4llvm/lib/Target/Xtensa/MCTargetDesc/XtensaAsmBackend.cpp
+3-15llvm/lib/MC/MCAssembler.cpp
+2-10llvm/include/llvm/MC/MCAsmBackend.h
+2-3llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
+77-603 files not shown
+83-619 files

LLVM/project 3f4be89llvm/lib/Target/AArch64/MCTargetDesc AArch64AsmBackend.cpp

AArch64AsmBackend: Remove redundant PCRelFlagVal

This flag, copied from Thumb, is not needed. adjustFixupValue reports
"fixup not sufficiently aligned" when the fixup value is misaligned.
DeltaFile
+9-12llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+9-121 files

LLVM/project 430c037clang/lib/Sema SemaDecl.cpp

[Sema] Remove an unnecessary cast (NFC) (#147154)

BitWidth is already of Expr *.
DeltaFile
+1-2clang/lib/Sema/SemaDecl.cpp
+1-21 files

LLVM/project fb2c761clang/lib/AST/ByteCode Pointer.cpp Interp.h, clang/test/AST/ByteCode new-delete.cpp literals.cpp

[clang][bytecode] Fix comparing pointers pointing to base classes (#146285)

In the attached test case, one pointer points to the `Derived` class and
one to `Base`, but they should compare equal. They didn't because those
two bases are saved at different offsets in the block. Use
`computeOffsetForComparison` not just for unions and fix it to work in
the more general cases.
DeltaFile
+36-0clang/test/AST/ByteCode/new-delete.cpp
+28-4clang/lib/AST/ByteCode/Pointer.cpp
+4-22clang/lib/AST/ByteCode/Interp.h
+12-0clang/test/AST/ByteCode/literals.cpp
+3-0clang/lib/AST/ByteCode/Pointer.h
+83-265 files

LLVM/project 38b8ef1mlir/lib/Target/LLVM ModuleToObject.cpp, mlir/lib/Target/LLVM/NVVM Target.cpp

[mlir] Remove unused includes (NFC) (#147158)

These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.
DeltaFile
+0-6mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+0-4mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMIRToLLVMTranslation.cpp
+0-4mlir/lib/Target/SPIRV/TranslateRegistration.cpp
+0-4mlir/lib/Target/LLVMIR/DebugImporter.cpp
+0-3mlir/lib/Target/LLVM/ModuleToObject.cpp
+0-3mlir/lib/Target/LLVM/NVVM/Target.cpp
+0-2414 files not shown
+0-4020 files

LLVM/project b94a9bcllvm/test/MC/ARM thumb-branches.s elf-thumbfunc-reloc.s, llvm/test/MC/ARM/Relocations thumb-branch-out-of-range.s thumb-branch.s

ARM: Improve branch fixup test
DeltaFile
+71-0llvm/test/MC/ARM/Relocations/thumb-branch-out-of-range.s
+0-71llvm/test/MC/ARM/thumb-branches.s
+21-0llvm/test/MC/ARM/Relocations/thumb-branch.s
+1-8llvm/test/MC/ARM/elf-thumbfunc-reloc.s
+93-794 files

LLVM/project 7d65cb1llvm/lib/Target/ARM ARMISelLowering.cpp, llvm/test/CodeGen/ARM cmp-select-sign.ll

[ARM] Copy (SELECT_CC setgt, iN lhs, -1, 1, -1) -> (OR (ASR lhs, N-1), 1 from AArch64 to ARM (#146561)

It works perfectly for ARM too.
DeltaFile
+171-0llvm/test/CodeGen/ARM/cmp-select-sign.ll
+15-0llvm/lib/Target/ARM/ARMISelLowering.cpp
+186-02 files

LLVM/project 3448e9cllvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp

[AArch64][GlobalISel] Fix lowering of i64->f32 itofp. (#132703)

This is a GISel equivalent of #130665, preventing a double-rounding
issue in sitofp/uitofp by scalarizing i64->f32 converts. Most of the
changes are made in the ActionDefinitionsBuilder for G_SITOFP/G_UITOFP.
Because it is legal to convert i64->f16 itofp without double-rounding,
but not a fpround f64->f16, that variant is lowered to build the two
extends.
DeltaFile
+618-888llvm/test/CodeGen/AArch64/itofp.ll
+22-0llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+14-2llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+654-8903 files

LLVM/project 9eb4fc7libcxx/include/__flat_set flat_set.h, libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons sorted_iter_iter.pass.cpp range.pass.cpp

[libc++] constexpr `flat_set` (#140360)

Fixes #128675
DeltaFile
+171-117libcxx/include/__flat_set/flat_set.h
+123-95libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_iter_iter.pass.cpp
+115-86libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/range.pass.cpp
+104-88libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/containers.pass.cpp
+100-85libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_container.pass.cpp
+104-74libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/iter_iter.pass.cpp
+717-54562 files not shown
+1,751-1,01168 files

LLVM/project 113ea3dllvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn build] Port ca697096aa6f
DeltaFile
+9-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+9-01 files

LLVM/project f17a638llvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn build] Port 1121d64ba96d
DeltaFile
+1-2llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-21 files

LLVM/project ca69709libcxx/include locale, libcxx/include/__locale_dir num.h money.h

[libc++] Granularize <locale> (#146650)

DeltaFile
+6-3,482libcxx/include/locale
+1,072-0libcxx/include/__locale_dir/num.h
+873-0libcxx/include/__locale_dir/money.h
+766-0libcxx/include/__locale_dir/time.h
+430-0libcxx/include/__locale_dir/wbuffer_convert.h
+254-0libcxx/include/__locale_dir/wstring_convert.h
+3,401-3,48237 files not shown
+3,864-3,53243 files

LLVM/project 1121d64libcxx/include CMakeLists.txt, libcxx/include/__type_traits add_reference.h add_rvalue_reference.h

[libc++][NFC] Merge add_{r,l}value_reference.h (#147022)

The implementation is now quite simple, so it doesn't make a ton of
sense to have these in separate headers.
DeltaFile
+58-0libcxx/include/__type_traits/add_reference.h
+0-40libcxx/include/__type_traits/add_rvalue_reference.h
+0-40libcxx/include/__type_traits/add_lvalue_reference.h
+5-16libcxx/include/__type_traits/is_bounded_array.h
+1-2libcxx/include/__type_traits/is_nothrow_constructible.h
+1-2libcxx/include/CMakeLists.txt
+65-10014 files not shown
+79-12220 files

LLVM/project bdbac2blibcxx/include map set

[libc++] default some special members in map and set (#147081)

We don't actually do anything special in these special member functions,
so we can just `= default` them to save a bit of code.
DeltaFile
+7-38libcxx/include/map
+4-12libcxx/include/set
+11-502 files

LLVM/project 22f8cedlibcxx/include __config shared_mutex, libcxx/test/libcxx/thread/thread.mutex thread_safety_missing_unlock.verify.cpp thread_safety_lock_guard.pass.cpp

[libc++] Add the thread safety annotations unconditionally (#117497)

For these annotations to do anything you need `-Wthread-safety`, in
which case users most likely enable them anyways. This avoids that users
have to explictly define a macro just to use the feature they already
had to opt-in to.
DeltaFile
+54-17libcxx/include/__config
+22-34libcxx/include/shared_mutex
+8-9libcxx/test/libcxx/thread/thread.shared_timed_mutex/thread_safety.verify.cpp
+7-9libcxx/test/libcxx/thread/thread.mutex/thread_safety_missing_unlock.verify.cpp
+6-7libcxx/test/libcxx/thread/thread.shared_mutex/thread_safety.verify.cpp
+6-6libcxx/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp
+103-829 files not shown
+138-12415 files

LLVM/project c9d9c3ellvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine icmp.ll

[InstCombine] Fold `icmp pred X + K, Y -> icmp pred2 X, Y` if both X and Y is divisible by K (#147130)

This patch generalizes `icmp ule X +nuw 1, Y -> icmp ult X, Y`-like
optimizations to handle the case that the added RHS constant is a common
power-of-2 divisor of both X and Y. We can further generalize this
pattern to handle non-power-of-2 divisors as well.
Alive2: https://alive2.llvm.org/ce/z/QgpeM_

Compile-time improvement (Stage2-O3 -0.09%):
https://llvm-compile-time-tracker.com/compare.php?from=0ba59587fa98849ed5107fee4134e810e84b69a3&to=f80e5fe0bb2e63c05401bde7cd42899ea270909b&stat=instructions:u

The original case is from the comparison of expanded GEP offsets:
https://github.com/dtcxzyw/llvm-opt-benchmark/pull/2530/files#r2183005292
DeltaFile
+62-54llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+102-0llvm/test/Transforms/InstCombine/icmp.ll
+164-542 files

LLVM/project 0bc6d60llvm/docs DeveloperPolicy.rst

[llvm] Fix typos in documentation (#147129)

DeltaFile
+2-2llvm/docs/DeveloperPolicy.rst
+2-21 files

LLVM/project 15f07dbclang/docs DebuggingCoroutines.rst

[clang] Fix a typo in documentation (#147128)

DeltaFile
+1-1clang/docs/DebuggingCoroutines.rst
+1-11 files

LLVM/project e64289bclang-tools-extra/clangd InlayHints.cpp, clang/include/clang/Sema HeuristicResolver.h

[clang][Sema] Unify getPrototypeLoc helpers in SemaCodeComplete and clangd (#143345)

HeuristicResolver houses the unified implementation.

Fixes https://github.com/llvm/llvm-project/issues/143240
DeltaFile
+80-0clang/unittests/Sema/HeuristicResolverTest.cpp
+57-0clang/lib/Sema/HeuristicResolver.cpp
+2-49clang-tools-extra/clangd/InlayHints.cpp
+1-49clang/lib/Sema/SemaCodeComplete.cpp
+7-0clang/include/clang/Sema/HeuristicResolver.h
+147-985 files

LLVM/project 0a067dcllvm/lib/Transforms/IPO AttributorAttributes.cpp Attributor.cpp, llvm/test/Transforms/Attributor range.ll value-simplify.ll

[Attributor] Swap range metadata to attribute for calls. (#108835)

DeltaFile
+49-30llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+39-6llvm/test/Transforms/Attributor/range.ll
+3-5llvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
+7-0llvm/lib/Transforms/IPO/Attributor.cpp
+1-3llvm/test/Transforms/Attributor/value-simplify.ll
+99-445 files

LLVM/project 9d994d1utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[bazel] Port b9b2661f72ac5f9d4f23d9bb83131aa3d46020b9
DeltaFile
+61-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+61-01 files

LLVM/project a38cf85llvm/lib/CodeGen MachineLICM.cpp

[MachineLICM] Let targets decide if copy instructions are cheap (#146599)

When checking whether it is profitable to hoist an instruction, the pass
may override a target's ruling because it assumes that all COPY
instructions are cheap, and that may not be the case for all
micro-architectures (especially for when copying between different
register classes).

On AArch64 there's 0% difference in performance in LLVM's test-suite
with this change. Additionally, very few tests were affected which shows
how it is not so useful to keep it.

x86 performance is slightly better (but maybe that's just noise) for an
A/B comparison consisting of five iterations on LLVM's test suite (Ryzen
5950X on Ubuntu):
```
$ ./utils/compare.py build-a/results* vs build-b/results* --lhs-name base --rhs-name patch --absolute-diff
Tests: 3341
Metric: exec_time

    [28 lines not shown]
DeltaFile
+1-1llvm/lib/CodeGen/MachineLICM.cpp
+1-11 files

LLVM/project be6d2afllvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/lib/Target/AArch64/GISel AArch64CallLowering.cpp

[AArch64][PAC] Rework discriminator analysis for calls and tail calls

Make use of fixupBlendComponents for AUTH_TCRETURN[_BTI] and for
BLRA[_RVMARKER] pseudos the same way it is done for AUT/PAC/AUTPAC.

This patch unifies discriminator analysis for DAGISel and GlobalISel
and improves cross-BB analysis in case of DAGISel.
DeltaFile
+22-41llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+23-16llvm/test/CodeGen/AArch64/ptrauth-isel.ll
+6-18llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
+2-2llvm/test/CodeGen/AArch64/ptrauth-call.ll
+3-1llvm/lib/Target/AArch64/AArch64InstrInfo.td
+56-785 files

LLVM/project 63a240fllvm/test/CodeGen/AArch64 ptrauth-isel.ll

[AArch64][PAC] Precommit ptrauth-isel.ll tests on calls and tail calls
DeltaFile
+209-0llvm/test/CodeGen/AArch64/ptrauth-isel.ll
+209-01 files

LLVM/project 0c5ca58clang/lib/Driver/ToolChains/Arch AArch64.cpp, clang/test/SemaCXX nested-name-spec.cpp

rebase

Created using spr 1.3.5-bogner
DeltaFile
+0-43llvm/include/llvm/MC/MCFixupKindInfo.h
+29-11clang/test/SemaCXX/nested-name-spec.cpp
+28-0llvm/test/CodeGen/LoongArch/lasx/ir-instruction/bitcast-extract-element.ll
+3-24clang/lib/Driver/ToolChains/Arch/AArch64.cpp
+26-0llvm/test/CodeGen/LoongArch/lsx/ir-instruction/bitcast-extract-element.ll
+25-0llvm/include/llvm/MC/MCAsmBackend.h
+111-7819 files not shown
+146-11125 files

LLVM/project fb13be0llvm/include/llvm/MC MCAsmBackend.h, llvm/lib/MC MCAssembler.cpp

MC: Generalize evaluateTargetFixup

Generalize evaluateTargetFixup to be called by all targets,
making FKF_IsTarget unneeded.

Next: Update targets that use FKF_IsAlignedDownTo32Bits to define
`evaluateFixup` and remove FKF_IsAlignedDownTo32Bits from the generic
code.
DeltaFile
+7-6llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
+6-3llvm/include/llvm/MC/MCAsmBackend.h
+2-2llvm/lib/MC/MCAssembler.cpp
+2-2llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
+1-1llvm/test/MC/RISCV/Relocations/mc-dump.s
+18-145 files

LLVM/project cd39eaellvm/include/llvm/MC MCFixupKindInfo.h MCAsmBackend.h, llvm/lib/Target/SystemZ/MCTargetDesc SystemZMCFixups.h

MC: Merge MCFixupKindInfo.h into MCAsmBackend.h

... due to their close relationship. MCFixupKindInfo.h is a very simple
header.
DeltaFile
+0-43llvm/include/llvm/MC/MCFixupKindInfo.h
+25-0llvm/include/llvm/MC/MCAsmBackend.h
+1-0llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h
+26-433 files

LLVM/project a49a5dbllvm/test/MC/ELF mc-dump.s

test: Update mc-dump.s
DeltaFile
+4-4llvm/test/MC/ELF/mc-dump.s
+4-41 files