SuccessChanges

Summary

  1. [obj2yaml][yaml2obj] - Add AArch64 STO_AARCH64_VARIANT_PCS support (details)
  2. [llvm-readobj/elf] - AArch64: Handle AARCH64_VARIANT_PCS for GNUStyle (details)
  3. [lld] [ELF] AArch64: Handle DT_AARCH64_VARIANT_PCS (details)
  4. Remove Python2 fallback and only advertise Python3 in the doc (details)
  5. Fix dead link (details)
  6. [TableGen] Make InstrMap::getFilterClass() const. NFCI. (details)
  7. [ARM][MachineOutliner] Fix costs model. (details)
  8. [InstCombine] Preserve !annotation on newly created instructions. (details)
  9. [TableGen] Return const std::string& in InstrMap getName()/getFilterClass() methods. NFCI. (details)
  10. [Clang] Make nomerge attribute a function attribute as well as a statement attribute. (details)
  11. [flang][openacc] Update serial construct clauses for OpenACC 3.1 (details)
  12. [SampleFDO] Fix uninitialized field warnings. NFCI. (details)
  13. [llvm-symbolizer][Windows] Add start line when searching in line table sections. (details)
  14. Ensure SplitEdge to return the new block between the two given blocks (details)
Commit ef9dc51cd4af509e7c28573e15e13a98b17c9511 by adhemerval.zanella
[obj2yaml][yaml2obj] - Add AArch64 STO_AARCH64_VARIANT_PCS support

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D93235
The file was addedllvm/test/tools/obj2yaml/ELF/aarch64-sym-other.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
Commit e04dc5f557c585f19d5abc73d1e71af81e8d5243 by adhemerval.zanella
[llvm-readobj/elf] - AArch64: Handle AARCH64_VARIANT_PCS for GNUStyle

It mimics the GNU readelf where it prints a [VARIANT_PCS] for symbols
with st_other with STO_AARCH64_VARIANT_PCS.

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D93044
The file was addedllvm/test/tools/llvm-readobj/ELF/aarch64-symbols-stother.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/DynamicTags.def
Commit 978eb3b87bca0837d52d096c343fc70b06d9a04d by adhemerval.zanella
[lld] [ELF] AArch64: Handle DT_AARCH64_VARIANT_PCS

As indicated by AArch64 ELF specification, symbols with st_other
marked with STO_AARCH64_VARIANT_PCS indicates it may follow a variant
procedure call standard with different register usage convention
(for instance SVE calls).

Static linkers must preserve the marking and propagate it to the dynamic
symbol table if any reference or definition of the symbol is marked with
STO_AARCH64_VARIANT_PCS, and add a DT_AARCH64_VARIANT_PCS dynamic tag if
there are R_<CLS>_JUMP_SLOT relocations that reference that symbols.

It implements https://bugs.llvm.org/show_bug.cgi?id=48368.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D93045
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was addedlld/test/ELF/aarch64-variant_pcs.s
Commit 5e31e226b5b2b682607a6578ff5adb33daf4fe39 by sguelton
Remove Python2 fallback and only advertise Python3 in the doc

Differential Revision: https://www.youtube.com/watch?v=RsL0cipURA0
The file was modifiedlld/CMakeLists.txt
The file was modifiedllvm/docs/HowToBuildOnARM.rst
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/docs/GettingStarted.rst
The file was modifiedllvm/docs/TestingGuide.rst
The file was modifiedclang/tools/scan-build-py/README.md
The file was modifiedclang/tools/scan-build/bin/set-xcode-analyzer
The file was modifiedllvm/docs/GettingStartedVS.rst
The file was modifiedclang/CMakeLists.txt
The file was modifiedlldb/docs/resources/build.rst
Commit cfe096d1f68783bcfab4a01d5a471a3c6ed1b46d by noreply
Fix dead link
The file was modifiedlibc/benchmarks/README.md
Commit b9890ae1976ba3c986b3c3df480e26277be9b6f0 by llvm-dev
[TableGen] Make InstrMap::getFilterClass() const. NFCI.

Reported by cppcheck.

I've run clang-format across all the InstrMap accessors as well.
The file was modifiedllvm/utils/TableGen/CodeGenMapTable.cpp
Commit 923ca0b411f78a3d218ff660a5b7a8b9099bdaa4 by yvan.roux
[ARM][MachineOutliner] Fix costs model.

Fix candidates calls costs models allocation and prepare stack fixups
handling.

Differential Revision: https://reviews.llvm.org/D92933
The file was addedllvm/test/CodeGen/ARM/machine-outliner-stack-use.mir
The file was modifiedllvm/test/CodeGen/ARM/machine-outliner-calls.mir
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
Commit 01089c876bff43a7cde1cb9b1ef8c128169ec5b4 by flo
[InstCombine] Preserve !annotation on newly created instructions.

If the source instruction has !annotation metadata, all instructions
created during combining should also have it. Tell the builder to
add it.

The !annotation system was discussed on llvm-dev as part of
'RFC: Combining Annotation Metadata and Remarks'
(http://lists.llvm.org/pipermail/llvm-dev/2020-November/146393.html)

This patch is based on an earlier patch by Francis Visoiu Mistrih.

Reviewed By: thegameg, lebedev.ri

Differential Revision: https://reviews.llvm.org/D91444
The file was modifiedclang/test/CodeGenCXX/auto-var-init.cpp
The file was modifiedllvm/test/Transforms/InstCombine/annotations.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit bd343d26814640b4934fdde8637ad5577d30c83c by llvm-dev
[TableGen] Return const std::string& in InstrMap getName()/getFilterClass() methods. NFCI.

Avoid temp std::string instances - we're never keeping these around, just printing them to streams, converting to StringRef etc.
The file was modifiedllvm/utils/TableGen/CodeGenMapTable.cpp
Commit fb0f7288051eb2745bb9211306f53ff9aa6f73e2 by zequanwu
[Clang] Make nomerge attribute a function attribute as well as a statement attribute.

Differential Revision: https://reviews.llvm.org/D92800
The file was modifiedclang/test/Sema/attr-nomerge.cpp
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/test/CodeGen/attr-nomerge.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/include/llvm/IR/Attributes.td
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/include/clang/AST/Attr.h
Commit 36bf2de8d866e2b448d17f4d2cb4bb96819d82b7 by clementval
[flang][openacc] Update serial construct clauses for OpenACC 3.1

Update the allowed clauses for the SERIAL construct for the new OpenACC 3.1
specification.

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D92123
The file was modifiedflang/test/Semantics/acc-clause-validity.f90
The file was modifiedllvm/include/llvm/Frontend/OpenACC/ACC.td
Commit 4bb10be9a6e06a6c51cc1695ff5dc9d68c953334 by llvm-dev
[SampleFDO] Fix uninitialized field warnings. NFCI.

Seems to have been caused by D93254 which added the SecHdrTableEntry::LayoutIndex field.
The file was modifiedllvm/include/llvm/ProfileData/SampleProfWriter.h
Commit 7e13694ac745f6cd4008dd354f2fcfc417b1e1e9 by akhuang
[llvm-symbolizer][Windows] Add start line when searching in line table sections.

Fixes issue where if a line section doesn't start with a line number
then the addresses at the beginning of the section don't have line numbers.

For example, for a line section like this
```
  0001:00000010-00000014, line/column/addr entries = 1
     7 00000013 !
```
a line number wouldn't be found for addresses from 10 to 12.

This matches behavior when using the DIA SDK.

Differential Revision: https://reviews.llvm.org/D93306
The file was addedlld/test/COFF/symbolizer-line-numbers.s
The file was modifiedllvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp
Commit d20e0c3444ad9ada550d9d6d1d56fd72948ae444 by whitneyt
Ensure SplitEdge to return the new block between the two given blocks

This PR implements the function splitBasicBlockBefore to address an
issue
that occurred during SplitEdge(BB, Succ, ...), inside splitBlockBefore.
The issue occurs in SplitEdge when the Succ has a single predecessor
and the edge between the BB and Succ is not critical. This produces
the result ‘BB->Succ->New’. The new function splitBasicBlockBefore
was added to splitBlockBefore to handle the issue and now produces
the correct result ‘BB->New->Succ’.

Below is an example of splitting the block bb1 at its first instruction.

/// Original IR
bb0:
br bb1
bb1:
        %0 = mul i32 1, 2
br bb2
bb2:
/// IR after splitEdge(bb0, bb1) using splitBasicBlock
bb0:
br bb1
bb1:
br bb1.split
bb1.split:
        %0 = mul i32 1, 2
br bb2
bb2:
/// IR after splitEdge(bb0, bb1) using splitBasicBlockBefore
bb0:
br bb1.split
bb1.split
br bb1
bb1:
        %0 = mul i32 1, 2
br bb2
bb2:

Differential Revision: https://reviews.llvm.org/D92200
The file was modifiedllvm/include/llvm/IR/BasicBlock.h
The file was modifiedllvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll
The file was modifiedllvm/lib/IR/BasicBlock.cpp
The file was modifiedllvm/lib/Transforms/Utils/BasicBlockUtils.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/call-constexpr.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/BasicBlockUtils.h