SuccessChanges

Summary

  1. [AArch64] Cortex-A55 scheduler model (details)
  2. [NFC][ARM] More tail predication tests. (details)
  3. [llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols. (details)
  4. Do not dereference an array out of bound just to take its address (details)
  5. [ARM] Select f32 constants with vmov.f16 (details)
Commit 4b8ade837e36b7f0181ce86fc23f33851d0fdd35 by sjoerd.meijer
[AArch64] Cortex-A55 scheduler model

This is an initial commit adding the A55 model, but it isn't used/enabled yet.
We will follow up on this to improve the model, then flip the switch.

The optimisation guide describing Cortex-A55 micro-architecture in more detail
can be found here:

https://static.docs.arm.com/epm128372/20/arm_cortex_a55_software_optimization_guide_v2.pdf

Original patch by Javed Absar.

Differential Revision: https://reviews.llvm.org/D46884
The file was modifiedllvm/lib/Target/AArch64/AArch64.td (diff)
The file was addedllvm/lib/Target/AArch64/AArch64SchedA55.td
Commit 13c73632c7cfcc2c8e70c93781d8fb9872153ede by sam.parker
[NFC][ARM] More tail predication tests.

Add mir tests for use/def of P0.
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir (diff)
Commit 095f6fbbd7b61af205d761f6951a869ec4a61722 by grimar
[llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols.

We have an issue with `ELFDumper<ELFT>::getSymbolSectionName`:
1) It is used deeply for both LLVM/GNU styles and might return LLVM-style only
   values to describe symbols: "Undefined", "Processor Specific", "Absolute", etc.

2) `getSymbolSectionName` is used by `getFullSymbolName` and these special values
   might appear instead of symbol names in many places.
   This occurs for unnamed section symbols currently.

This patch extracts the LLVM specific logic to `LLVMStyle<ELFT>::printSymbolSection`,
which seems to be the only place where we want to print the special values mentioned.
It also adds a meaningful new warning that is reported when we are unable to get
a section index for a section symbol.

Differential revision: https://reviews.llvm.org/D87764
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbol-shndx.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-plt.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-got.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols.test (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit 2a774411174466010c69a2460c81b8d0d4f7165f by sguelton
Do not dereference an array out of bound just to take its address

This is UB by the standard, and caught by the libstdc++ asserts

Differential Revision: https://reviews.llvm.org/D87892
The file was modifiedflang/lib/Parser/token-sequence.cpp (diff)
Commit f4c5cadbcbb41f13cff0905449cfff4aef6a083c by david.green
[ARM] Select f32 constants with vmov.f16

This adds lowering for f32 values using the vmov.f16, which zeroes the
top bits whilst setting the lower bits to a pattern. This range of
values does not often come up, except where a f16 constant value has
been converted to a f32.

Differential Revision: https://reviews.llvm.org/D87790
The file was modifiedllvm/lib/Target/ARM/ARMInstrVFP.td (diff)
The file was modifiedllvm/test/CodeGen/ARM/cmse-clear-float-hard.ll (diff)
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/ARM/fp16-bitcast.ll (diff)