SuccessChanges

Summary

  1. [clang][Lifetimes] Fix false positive warning from BUG 49342 (details)
  2. Store (cache) the Argument number (index in the argument list) inside the BlockArgumentImpl (details)
  3. [lld-macho] Properly test subtractor relocations & fix their attributes (details)
  4. [lld-macho] Don't emit rebase opcodes for subtractor minuend relocs (details)
  5. [lld-macho] Add test for a variety of arm64 relocations (details)
  6. [lld-macho] Extract embedded addends for arm64 UNSIGNED relocations (details)
Commit dd6738d93de148f2239ef5be82a61cf8f5f71124 by xazax.hun
[clang][Lifetimes] Fix false positive warning from BUG 49342

Differential Revision: https://reviews.llvm.org/D97605
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/test/Sema/warn-lifetime-analysis-nocfg.cpp
Commit ee90bb3486948c472a67ec3ca0f0d64927f6643d by joker.eph
Store (cache) the Argument number (index in the argument list) inside the BlockArgumentImpl

This avoids linear search in BlockArgument::getArgNumber().

Differential Revision: https://reviews.llvm.org/D97596
The file was modifiedmlir/lib/IR/Block.cpp
The file was modifiedmlir/include/mlir/IR/Value.h
Commit cc5c03e10957b8dd4ba4efbc5583084c7636a3ba by jezng
[lld-macho] Properly test subtractor relocations & fix their attributes

`llvm-mc` doesn't generate any relocations for subtractions
between local symbols -- they must be global -- so the previous test
wasn't actually testing any relocation logic. I've fixed that and
extended the test to cover r_length=3 relocations as well as both x86_64
and arm64.

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D97057
The file was removedlld/test/MachO/x86-64-reloc-subtract.s
The file was modifiedlld/MachO/Arch/ARM64.cpp
The file was addedlld/test/MachO/reloc-subtractor.s
The file was modifiedlld/MachO/Arch/X86_64.cpp
Commit 541390131ef72a8dad93c936d816279c8b76374e by jezng
[lld-macho] Don't emit rebase opcodes for subtractor minuend relocs

Also add a few asserts to verify that we are indeed handling an
UNSIGNED relocation as the minued. I haven't made it an actual
user-facing error since I don't think llvm-mc is capable of generating
SUBTRACTOR relocations without an associated UNSIGNED.

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D97103
The file was modifiedlld/MachO/InputSection.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/Arch/ARM64.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/test/MachO/reloc-subtractor.s
Commit 8da88d4b605bd3e596fc26845969ba83a6bf076d by jezng
[lld-macho] Add test for a variety of arm64 relocations

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D97104
The file was modifiedlld/test/MachO/compact-unwind.s
The file was addedlld/test/MachO/arm64-relocs.s
Commit 82b3da6f6f0e91e47074f454907e82b284b8beda by jezng
[lld-macho] Extract embedded addends for arm64 UNSIGNED relocations

On arm64, UNSIGNED relocs are the only ones that use embedded addends
instead of the ADDEND relocation.

Also ensure that the addend works when UNSIGNED is part of a SUBTRACTOR
pair.

Reviewed By: #lld-macho, alexshap

Differential Revision: https://reviews.llvm.org/D97105
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/test/MachO/reloc-subtractor.s
The file was modifiedlld/test/MachO/arm64-relocs.s
The file was modifiedlld/MachO/Arch/ARM64.cpp