SuccessChanges

Summary

  1. [AArch64] Make target intrinsics DefaultAttrIntrinsics. (details)
  2. [LLD][ELF][AArch64] Set _GLOBAL_OFFSET_TABLE_ at the start of .got (details)
  3. [AArch64] Revert back to Intrinsic<> for TME instructions. (details)
Commit 50ae6a3ac9bdf640ecc69fe6540b08a8b4355398 by flo
[AArch64] Make target intrinsics DefaultAttrIntrinsics.

DefaultAttrIntrinsics was introduced to add very common attributes to a
large set of intrinsics.

Currently the added attributes include:

    nofree nosync nounwind willreturn

I think those should hold for most AArch64 target intrinsics, but
there are too many to check manually. This patch makes most AArch64 target
intrinsics DefaultAttrsIntrinsics.

Some notable exceptions I think are exclusive loads and stores as well
as the memory barrier intrinsics, for which nosync does not apply I
think.

Reviewed By: SjoerdMeijer

Differential Revision: https://reviews.llvm.org/D94687
The file was modifiedllvm/test/Assembler/aarch64-intrinsics-attributes.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
Commit 2f92386e721acd7badac06b67229537c4f0adfad by adhemerval.zanella
[LLD][ELF][AArch64] Set _GLOBAL_OFFSET_TABLE_ at the start of .got

The commit 18aa0be36ed9 changed the default GotBaseSymInGotPlt to true
for AArch64.  This is different than binutils, where
_GLOBAL_OFFSET_TABLE_ points at the start or .got.

It seems to not intefere with current relocations used by LLVM.  However
as indicated by PR#40357 [1] gcc generates R_AARCH64_LD64_GOTPAGE_LO15
for -pie (in fact it also generated the relocation for -fpic).

This change is requires to correctly handle R_AARCH64_LD64_GOTPAGE_LO15
by lld from objects generated by gcc.

[1] https://bugs.llvm.org/show_bug.cgi?id=40357
The file was modifiedlld/ELF/Arch/AArch64.cpp
The file was modifiedlld/test/ELF/global-offset-table-position-aarch64.s
Commit 291ac7e622d542f8b25f74bc28051762edc90938 by flo
[AArch64] Revert back to Intrinsic<> for TME instructions.

This patch reverts back to Intrinsic for the instructions for the
transactional memory extension, so nosync is not included.
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedclang/test/CodeGen/aarch64-tme.cpp