SuccessChanges

Summary

  1. [LegalizeTypes] Remove the call to SplitVecRes_UnaryOp from (details)
  2. [LegalizeTypes] Remove ScalarizeVecRes_STRICT_FP_ROUND in favor of just (details)
  3. [LegalizeTypes] Pre-size the SmallVectors in ScalarizeVecRes_StrictFPOp (details)
  4. [lldb] Fix unused variable warning in ThreadPlanStepRange.cpp (details)
  5. [MachO] Fix detecting malformed DWARF. (details)
  6. [sanitizer] Construct InternalMmapVector without memory allocation. (details)
  7. [ELF] Add IpltSection (details)
  8. [MinGW] Implicitly add .exe suffix if not provided (details)
  9. [lit] [windows] Make sure to convert all path separators to backslashes (details)
  10. [lldb][NFC] Make clang-format happy by removing trailing space in (details)
  11. [ELF] Rename .plt to .iplt and decrease EM_PPC{,64} alignment of .glink (details)
Commit c4d2bb1ede04985a9b1a57b75a6a0d773fb78fd9 by craig.topper
[LegalizeTypes] Remove the call to SplitVecRes_UnaryOp from
SplitVecRes_StrictFPOp. NFCI
It doesn't seem to do anything that SplitVecRes_StrictFPOp can't do.
SplitVecRes_StrictFPOp already handles nodes with a variable number of
arguments and a mix of scalar and vector arguments.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit c738ebc1f57e6e1e3c1c798cb9f3385d67d34f8a by craig.topper
[LegalizeTypes] Remove ScalarizeVecRes_STRICT_FP_ROUND in favor of just
using ScalarizeVecRes_StrictFPOp. NFCI
It looks like ScalarizeVecRes_StrictFPOp can handle a variable number of
arguments with scalar and vector types so it should be sufficient.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 13ce7c1291b95eaadef2c66e372a070b45e207bc by craig.topper
[LegalizeTypes] Pre-size the SmallVectors in ScalarizeVecRes_StrictFPOp
and SplitVecRes_StrictFPOp so we don't have to call push_back. NFCI
This avoids grow checking/handling in each iteration of the loop.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 3c6554be2e3c1500f825df5f7c186f2e58d6a33a by Raphael Isemann
[lldb] Fix unused variable warning in ThreadPlanStepRange.cpp
This was added in 434905b97d961531286d4b49c7ee1969f7cbea0e. Remove it to
fix the compiler warnings for this.
The file was modifiedlldb/source/Target/ThreadPlanStepRange.cpp
Commit 5279f96577af1457a973c071ec5ee3554c9f6cbe by ikudrin
[MachO] Fix detecting malformed DWARF.
This fixes an invalid constant used to detect the reserved range when
reading the compilation unit header. See also: D64622 and D65039.
Differential Revision: https://reviews.llvm.org/D71546
The file was modifiedlld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
Commit a57adc7a0b0dac5484f19f9061eba432d0db19e8 by ikudrin
[sanitizer] Construct InternalMmapVector without memory allocation.
Construction of InternalMmapVector is often followed by a call to
reserve(), which may result in immediate reallocation of the memory for
the internal storage. This patch delays that allocation until it is
really needed.
Differential Revision: https://reviews.llvm.org/D71342
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
Commit 891a8655ab563055e21c1f8a3907f9c43fe5c583 by maskray
[ELF] Add IpltSection
PltSection is used by both PLT and IPLT. The PLT section may have a
header while the IPLT section does not. Split off IpltSection from
PltSection to be clearer.
Unlike other targets, PPC64 cannot use the same code sequence for PLT
and IPLT. This helps make a future PPC64 patch (D71509) more isolated.
On EM_386 and EM_X86_64, when PLT is empty while IPLT is not, currently
we are inconsistent whether the PLT header is conceptually attached to
in.plt or in.iplt .  Consistently attach the header to in.plt can make
the -z retpolineplt logic simpler. It also makes `jmp` point to an
aesthetically better place for non-retpolineplt cases.
Reviewed By: grimar, ruiu
Differential Revision: https://reviews.llvm.org/D71519
The file was modifiedlld/ELF/Arch/PPC.cpp
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/test/ELF/gnu-ifunc-plt-i386.s
The file was modifiedlld/ELF/Symbols.cpp
The file was modifiedlld/test/ELF/gnu-ifunc-plt.s
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/gnu-ifunc.s
The file was modifiedlld/ELF/Arch/AArch64.cpp
The file was modifiedlld/ELF/Arch/PPC64.cpp
The file was modifiedlld/ELF/Arch/X86.cpp
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/SyntheticSections.h
The file was modifiedlld/ELF/Target.h
The file was modifiedlld/test/ELF/gnu-ifunc-shared.s
The file was modifiedlld/test/ELF/gnu-ifunc-i386.s
The file was modifiedlld/ELF/Arch/ARM.cpp
The file was modifiedlld/ELF/Arch/RISCV.cpp
The file was modifiedlld/ELF/Arch/X86_64.cpp
Commit ee0a3b5c776cac769ae68dce369728eaae286671 by martin
[MinGW] Implicitly add .exe suffix if not provided
GCC implicitly adds an .exe suffix if it is given an output file name,
but the file name doesn't contain a suffix, and there are certain users
of GCC that rely on this behaviour (and run into issues when trying to
use Clang instead of GCC). And MSVC's cl.exe also does the same (but not
link.exe).
However, GCC only does this when actually running on windows, not when
operating as a cross compiler.
As GCC doesn't have this behaviour when cross compiling, we definitely
shouldn't introduce the behaviour in such cases (as it would break at
least as many cases as this fixes).
Differential Revision: https://reviews.llvm.org/D71400
The file was modifiedclang/lib/Driver/ToolChains/MinGW.cpp
The file was addedclang/test/Driver/mingw-implicit-extension-windows.c
The file was addedclang/test/Driver/mingw-implicit-extension-cross.c
Commit d39510ec1cda7c7808c1ecadb1364382f92c1af3 by martin
[lit] [windows] Make sure to convert all path separators to backslashes
in NT style \\?\... paths
E.g. the mingw python distributed in msys2 (the mingw one, which is a
normal win32 application and doesn't use the msys2 runtime itself),
despite being a normal win32 python, still uses forward slashes. This
works fine for other cases (many, but not all), but when constructing a
raw NT path, all path separators must be backslashes.
Differential Revision: https://reviews.llvm.org/D71490
The file was modifiedllvm/utils/lit/lit/util.py
Commit ba6f25d7d3671f8ff1d072a43a292950dbbf899e by Raphael Isemann
[lldb][NFC] Make clang-format happy by removing trailing space in
ArchSpec.cpp
The file was modifiedlldb/source/Utility/ArchSpec.cpp
Commit 345f59667d846c4b77258e72c902f4aaf8add166 by maskray
[ELF] Rename .plt to .iplt and decrease EM_PPC{,64} alignment of .glink
to 4
GNU ld creates the synthetic section .iplt, and has a built-in linker
script that assigns .iplt to the output section .plt . There is no
output section named .iplt .
Making .iplt an output section actually has a benefit that makes the
tricky toolchain feature stand out. Symbolizers don't have to deal with
mixed PLT entries (e.g. llvm-objdump -d incorrectly annotates such jump
targets).
On EM_PPC{,64}, .glink contains a PLT resolver and a series of jump
instructions. The 4-byte entry size makes it unnecessary to have an
alignment of 16.
Mark ppc32-gnu-ifunc.s and ppc32-gnu-ifunc-nonpreemptable.s as `XFAIL:
*`. They test IPLT on EM_PPC, which never works.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D71520
The file was modifiedlld/test/ELF/linkerscript/orphan-report.s
The file was modifiedlld/test/ELF/ppc64-toc-relax-ifunc.s
The file was modifiedlld/test/ELF/aarch64-gnu-ifunc.s
The file was modifiedlld/test/ELF/ppc32-call-stub-pic.s
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/test/ELF/aarch64-ifunc-bti.s
The file was modifiedlld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s
The file was modifiedlld/test/ELF/ppc64-dtprel.s
The file was modifiedlld/test/ELF/gnu-ifunc-plt.s
The file was modifiedlld/test/ELF/ppc32-tls-gd.s
The file was modifiedlld/test/ELF/gnu-ifunc-shared.s
The file was modifiedlld/test/ELF/aarch64-gnu-ifunc-plt.s
The file was modifiedlld/test/ELF/aarch64-gnu-ifunc2.s
The file was modifiedlld/test/ELF/gnu-ifunc-plt-i386.s
The file was modifiedlld/test/ELF/ppc32-tls-ld.s
The file was modifiedlld/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s
The file was modifiedlld/test/ELF/ppc32-gnu-ifunc.s
The file was modifiedlld/test/ELF/gnu-ifunc-i386.s
The file was modifiedlld/test/ELF/gnu-ifunc.s
The file was modifiedlld/test/ELF/gnu-ifunc-canon.s
The file was modifiedlld/test/ELF/arm-gnu-ifunc.s