[all-commits] [llvm/llvm-project] e42021: [Clang][-fvisibility-from-dllstorageclass] Set DSO...

Hongtao Yu via All-commits all-commits at lists.llvm.org
Tue Nov 24 15:40:36 PST 2020


  Branch: refs/heads/temp-test-main
  Home:   https://github.com/llvm/llvm-project
  Commit: e42021d5cc25a8dc7e3efac1e7007cc0c1a7b2bd
      https://github.com/llvm/llvm-project/commit/e42021d5cc25a8dc7e3efac1e7007cc0c1a7b2bd
  Author: Ben Dunbobbin <Ben.Dunbobbin at sony.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGenCXX/visibility-dllstorageclass.cpp

  Log Message:
  -----------
  [Clang][-fvisibility-from-dllstorageclass] Set DSO Locality from final visibility

Ensure that the DSO Locality of the globals in the IR is derived from
their final visibility when using -fvisibility-from-dllstorageclass.

To accomplish this we reset the DSO locality of globals (before
setting their visibility from their dllstorageclass) at the end of
IRGen in Clang. This removes any effects that visibility options or
annotations may have had on the DSO locality.

The resulting DSO locality of the globals will be pessimistic
w.r.t. to the normal compiler IRGen.

Differential Revision: https://reviews.llvm.org/D91779


  Commit: 4bc88a0e9a2ee29959a9053e867ae6f051348554
      https://github.com/llvm/llvm-project/commit/4bc88a0e9a2ee29959a9053e867ae6f051348554
  Author: Yichao Yu <yyc1992 at gmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/test/Transforms/LoopVectorize/float-reduction.ll

  Log Message:
  -----------
  Enable support for floating-point division reductions

Similar to fsub, fdiv can also be vectorized using fmul.

Also http://llvm.org/viewvc/llvm-project?view=revision&revision=215200

Differential Revision: https://reviews.llvm.org/D34078

Co-authored-by: Jameson Nash <jameson at juliacomputing.com>


  Commit: 8f1e0dcbb090243423faa4228ba58ddbae909c70
      https://github.com/llvm/llvm-project/commit/8f1e0dcbb090243423faa4228ba58ddbae909c70
  Author: Jameson Nash <vtjnash at gmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/include/llvm/ADT/Statistic.h
    M llvm/include/llvm/Config/abi-breaking.h.cmake

  Log Message:
  -----------
  fix some Wundef warnings in public headers

Differential Revision: https://reviews.llvm.org/D91094


  Commit: 97c8fba7e490db57d24a31c68ad12d7f840256d6
      https://github.com/llvm/llvm-project/commit/97c8fba7e490db57d24a31c68ad12d7f840256d6
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp

  Log Message:
  -----------
  Fix signed integer overflow bug that's causing test failures with UBSan.


  Commit: 3e6e6a2db674cd85b33c06b75685c6bce5acb154
      https://github.com/llvm/llvm-project/commit/3e6e6a2db674cd85b33c06b75685c6bce5acb154
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/XRefs.cpp
    M clang-tools-extra/clangd/XRefs.h
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    A clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
    M clang-tools-extra/clangd/unittests/TestTU.cpp

  Log Message:
  -----------
  [clangd] Call hierarchy (XRefs layer, incoming calls)

Support for outgoing calls is left for a future change.

Differential Revision: https://reviews.llvm.org/D91122


  Commit: 4cb976e014db80efd20dfca45ba218c3a69aac42
      https://github.com/llvm/llvm-project/commit/4cb976e014db80efd20dfca45ba218c3a69aac42
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h

  Log Message:
  -----------
  [clangd] Call hierarchy (ClangdServer layer)

Differential Revision: https://reviews.llvm.org/D91123


  Commit: 0a4f99c494d007a21652b1b3939bde4753042c33
      https://github.com/llvm/llvm-project/commit/0a4f99c494d007a21652b1b3939bde4753042c33
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    A clang-tools-extra/clangd/test/call-hierarchy.test
    M clang-tools-extra/clangd/test/initialize-params.test
    M clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp

  Log Message:
  -----------
  [clangd] Call hierarchy (ClangdLSPServer layer)

Differential Revision: https://reviews.llvm.org/D91124


  Commit: dced150375d09df6266448342fbb066d638b59ef
      https://github.com/llvm/llvm-project/commit/dced150375d09df6266448342fbb066d638b59ef
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/ClangdServer.cpp

  Log Message:
  -----------
  [clangd] Use WorkScheduler.run() in ClangdServer::resolveTypeHierarchy()

Differential Revision: https://reviews.llvm.org/D91941


  Commit: 53310ae70841a771b1706dc6f7740957089a748b
      https://github.com/llvm/llvm-project/commit/53310ae70841a771b1706dc6f7740957089a748b
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 3e6e6a2db67


  Commit: b20f3cc5b560ae15a8f9018eb96d65e6f5e125d1
      https://github.com/llvm/llvm-project/commit/b20f3cc5b560ae15a8f9018eb96d65e6f5e125d1
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py

  Log Message:
  -----------
  [lldb] Add platform select to TestProcessConnect.py

Extend TestProcessConnect to cover the scenario fixed by
6c0cd5676e0a0feaf836e0399023a6e21224467b. This replaces
command-process-connect.test which would fail if port 4321
was open.


  Commit: 2bd4540f3816bb7acda31cba5351d02192d63f81
      https://github.com/llvm/llvm-project/commit/2bd4540f3816bb7acda31cba5351d02192d63f81
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp

  Log Message:
  -----------
  [LLDB] Fix typo in RegisterContextPOSIXProcessMonitor_arm64

This patch fixes a minor typo in RegisterContextPOSIXProcessMonitor_arm64
constructor where memset target was wrongly specified as m_fpr instead of
m_gpr_arm64.


  Commit: 9194aa88676fbf6d215efbe461abe9ac18bc0ffc
      https://github.com/llvm/llvm-project/commit/9194aa88676fbf6d215efbe461abe9ac18bc0ffc
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/utils/gn/build/write_library_dependencies.py

  Log Message:
  -----------
  [gn build] modify hotfix in 17df195f705cef76a9 to work with all enabled targets

llvm-config output with the gn build is just good enough to make
tests pass, but llvm-config wants all .a files it knows about to
actually exist. So let it know about fewer .a files that don't
exist if not all targets are enabled.


  Commit: bb1341161478dc589893cda9f808e5f5b859b5ae
      https://github.com/llvm/llvm-project/commit/bb1341161478dc589893cda9f808e5f5b859b5ae
  Author: Brandon Bergren <git at bdragon.rtk0.net>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M libunwind/src/Registers.hpp
    M libunwind/src/UnwindRegistersRestore.S
    M libunwind/src/UnwindRegistersSave.S
    M libunwind/src/assembly.h
    M libunwind/src/config.h

  Log Message:
  -----------
  [libunwind] Multiple preprocessor fixes on PowerPC*

* Remove misnamed `PPC64_HAS_VMX` in preference of directly checking `defined(__VSX__)`.

libunwind was using "VMX" to mean "VSX". "VMX" is just another name for Altivec, while "VSX" is the vector-scalar extensions first used in POWER7. Exposing a "PPC64_HAS_VMX" define was misleading and incorrect.

* Add `defined(__ALTIVEC__)` guards around vector register operations to fix non-altivec CPUS such as the e5500.

When compiling for certain Book-E processors such as the e5500, we want to skip vector save/restore, as the Altivec registers are illegal on non-Altivec implementations.

* Add `!defined(__NO_FPRS__)` guards around traditional floating-point save/restore.

When compiling for powerpcspe, we cannot access floating point registers, as there aren't any. (The SPE on e500v2 is a 64-bit extension of the GPRs, and it doesn't have the normal floating-point registers at all.)
This fixes building for powerpcspe, although no actual handling for SPE save/restore is written yet.

Reviewed By: MaskRay, #libunwind, compnerd

Differential Revision: https://reviews.llvm.org/D91906


  Commit: c2fb114475d15a1d39545f700b8c6d6e18367ca9
      https://github.com/llvm/llvm-project/commit/c2fb114475d15a1d39545f700b8c6d6e18367ca9
  Author: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M clang/lib/Driver/ToolChains/Linux.cpp
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/lib/sparc64-linux-gnu/.keep
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/lib64/.keep
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/c++/4.9/.keep
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/sparc64-linux-gnu/c++/4.9/.keep
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu/4.9/crtbegin.o
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu/4.9/crtend.o
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crt1.o
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crti.o
    R clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crtn.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib/sparc-linux-gnu/.keep
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib64/.keep
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/c++/4.9/backward/.keep
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu/c++/4.9/64/.keep
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/64/crtbegin.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/64/crtend.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/crtbegin.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/crtend.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crt1.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crti.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crtn.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crt1.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crti.o
    R clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crtn.o
    A clang/test/Driver/Inputs/debian_multiarch_tree/lib/sparc-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/lib/sparc64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/sparc-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/sparc64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/sparc-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/sparc64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/sparc-linux-gnu/4.5/crtbegin.o
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/sparc64-linux-gnu/4.5/crtbegin.o
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/sparc-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/sparc64-linux-gnu/.keep
    M clang/test/Driver/linux-header-search.cpp
    M clang/test/Driver/linux-ld.c

  Log Message:
  -----------
  [Driver] Enable getOSLibDir() lib32 workaround for SPARC on Linux

This fixes the Builtins-sparc-linux testsuite failures on Linux
SPARC which occur because clang cannot find the 32-bit runtime
libraries when -m32 is passed on the command line. The same
workaround is already being used on X86 and PPC.

Also, switch the CHECK-DEBIAN-SPARC tests to use debian_multiarch_tree
as both sparc and sparc64 are using the MultiArch mechanism on modern Debian
systems the same way as x86_64, powerpc64el and others. Thus, switch the
CHECK-DEBIAN-SPARC32 and CHECK-DEBIAN-SPARC64 tests to use the files from
the debian_multiarch_tree directory for the header and linker path tests.

Finally, rename CHECK-DEBIAN-SPARC32 to CHECK-DEBIAN-SPARC to match the naming
scheme of the Debian MultiArch checks for the other Debian architectures.

Reviewed By: MaskRay, phosek

Differential Revision: https://reviews.llvm.org/D90524


  Commit: 51994f90b618d947427f3c95fe8168d1c848927c
      https://github.com/llvm/llvm-project/commit/51994f90b618d947427f3c95fe8168d1c848927c
  Author: Fangrui Song <i at maskray.me>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/cmake/modules/AddLLVM.cmake

  Log Message:
  -----------
  [CMake] Unify LLVM_LINKER_IS_GOLD -Wl,--gc-sections setting with GNU ld and LLD


  Commit: 1a9c72f8a8d014c2ae6408292e4f48e2e632f139
      https://github.com/llvm/llvm-project/commit/1a9c72f8a8d014c2ae6408292e4f48e2e632f139
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [LoopVec] Reuse a lambda [NFC]

Minor code refactor to improve readability.


  Commit: 932e4f88157194986fa9624edfea9abb9fbde77f
      https://github.com/llvm/llvm-project/commit/932e4f88157194986fa9624edfea9abb9fbde77f
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/convergent.ll

  Log Message:
  -----------
  [FunctionAttrs][NPM] Fix handling of convergent

The legacy pass didn't properly detect indirect calls.

We can still remove the convergent attribute when there are indirect
calls. The LangRef says:

> When it appears on a call/invoke, the convergent attribute indicates
that we should treat the call as though we’re calling a convergent
function. This is particularly useful on indirect calls; without this we
may treat such calls as though the target is non-convergent.

So don't skip handling of convergent when there are unknown calls.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89826


  Commit: aff058b1a92dce2d08974a7d27fa7d032c87601d
      https://github.com/llvm/llvm-project/commit/aff058b1a92dce2d08974a7d27fa7d032c87601d
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/CGSCCPassManager.h
    M llvm/lib/Analysis/CGSCCPassManager.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    A llvm/test/Other/devirtualization-undef.ll
    M llvm/test/Transforms/Inline/devirtualize-3.ll
    A llvm/test/Transforms/Inline/devirtualize-5.ll
    A llvm/test/Transforms/Inline/devirtualize-6.ll
    M llvm/test/Transforms/Inline/devirtualize.ll

  Log Message:
  -----------
  Reland [CGSCC] Detect devirtualization in more cases

The devirtualization wrapper misses cases where if it wraps a pass
manager, an individual pass may devirtualize an indirect call created by
a previous pass. For example, inlining may create a new indirect call
which is devirtualized by instcombine. Currently the devirtualization
wrapper will not see that because it only checks cgscc edges at the very
beginning and end of the pass (manager) it wraps.

This fixes some tests testing this exact behavior in the legacy PM.

Instead of checking WeakTrackingVHs for CallBases at the very beginning
and end of the pass it wraps, check every time
updateCGAndAnalysisManagerForPass() is called.

check-llvm and check-clang with -abort-on-max-devirt-iterations-reached
on by default doesn't show any failures outside of tests specifically
testing it so it doesn't needlessly rerun passes more than necessary.
(The NPM -O2/3 pipeline run the inliner/function simplification pipeline
under a devirtualization repeater pass up to 4 times by default).

http://llvm-compile-time-tracker.com/?config=O3&stat=instructions&remote=aeubanks
shows that 7zip has ~1% compile time regression. I looked at it and saw
that there indeed was devirtualization happening that was not previously
caught, so now it reruns the CGSCC pipeline on some SCCs, which is WAI.

The initial land assumed CallBase WeakTrackingVHs would always be
CallBases, but they can be RAUW'd with undef.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D89587


  Commit: da3bc99bdd778ce2c22f17cab2b94eefcc285953
      https://github.com/llvm/llvm-project/commit/da3bc99bdd778ce2c22f17cab2b94eefcc285953
  Author: Kai Luo <lkail at cn.ibm.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/select.ll

  Log Message:
  -----------
  [PowerPC] Pre-commit more tests for `select` codegen. NFC.


  Commit: 5e9e335a247040a175855f99dbab5957064434ba
      https://github.com/llvm/llvm-project/commit/5e9e335a247040a175855f99dbab5957064434ba
  Author: Gabriel Hjort Åkerlund <gabriel.hjort.akerlund at ericsson.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    A llvm/test/TableGen/GlobalISelEmitter-zero-instr.td
    M llvm/utils/TableGen/GlobalISelEmitter.cpp

  Log Message:
  -----------
  [GlobalISel][TableGen] Fix seg fault for zero instruction

Tablegen seg faulted when parsing a Pat where the destination part has
no output (zero instruction), due to a register class lookup using
nullptr.

Reviewed By: Paul-C-Anagnostopoulos

Differential Revision: https://reviews.llvm.org/D90829


  Commit: 0fb76b9035c8af48f63d965faadfb4b0e58b0a4f
      https://github.com/llvm/llvm-project/commit/0fb76b9035c8af48f63d965faadfb4b0e58b0a4f
  Author: Amara Emerson <amara at apple.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Make <2 x p0> of G_SHUFFLE_VECTOR legal.


  Commit: ca7fdf7ce098ace9ba24a94e985b24cd6801240d
      https://github.com/llvm/llvm-project/commit/ca7fdf7ce098ace9ba24a94e985b24cd6801240d
  Author: Amara Emerson <amara at apple.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/select-dup.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Add pre-isel lowering to convert p0 G_DUPs to use s64.

This uses the same reasoning as other similar conversions just before selection,
without it we miss out on selection because the importer considers s64 and p0
distinct types.


  Commit: c3a331646eecf67d54e4d7ab06ed16a3bb6153b7
      https://github.com/llvm/llvm-project/commit/c3a331646eecf67d54e4d7ab06ed16a3bb6153b7
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/Inline/gvn-inline-iteration.ll

  Log Message:
  -----------
  [test] Fix gvn-inline-iteration.ll under NPM


  Commit: bce2ac9f6d3be91fc744f7efe76d52dbe1b683bf
      https://github.com/llvm/llvm-project/commit/bce2ac9f6d3be91fc744f7efe76d52dbe1b683bf
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
    R llvm/test/DebugInfo/ARM/implicit_value-_Float16.ll

  Log Message:
  -----------
  Revert "[DebugInfo] Refactor code for emitting DWARF expressions for FP constants"

The commit introduced a crash when emitting (debug info for) complex
floats (pr48277).


  Commit: 0b2d84fba84b098a2060862fcbcfccfb4ad1e3f2
      https://github.com/llvm/llvm-project/commit/0b2d84fba84b098a2060862fcbcfccfb4ad1e3f2
  Author: Martin Storsjö <martin at martin.st>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M lld/COFF/MinGW.cpp
    A lld/test/COFF/wrap-dllimport.s
    M lld/test/COFF/wrap-import.ll

  Log Message:
  -----------
  [LLD] [COFF] Allow wrapping dllimported functions

GNU ld doesn't seem to do this though, but it looks like a reasonable
use case, is easy to implement, and was requested in
https://bugs.llvm.org/show_bug.cgi?id=47384.

Differential Revision: https://reviews.llvm.org/D91689


  Commit: 029e199dbfd394c7a3c372a632a4ddac6b591648
      https://github.com/llvm/llvm-project/commit/029e199dbfd394c7a3c372a632a4ddac6b591648
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/Bindings/Python/IRModules.cpp
    A mlir/test/Bindings/CMakeLists.txt
    A mlir/test/Bindings/Python/CMakeLists.txt
    A mlir/test/Bindings/Python/dialects/python_test.py
    M mlir/test/Bindings/Python/lit.local.cfg
    A mlir/test/Bindings/Python/python_test_ops.td
    M mlir/test/CMakeLists.txt
    M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp

  Log Message:
  -----------
  [mlir] Make attributes mutable in Python bindings

Attributes represent additional data about an operation and are intended to be
modifiable during the lifetime of the operation. In the dialect-specific Python
bindings, attributes are exposed as properties on the operation class. Allow
for assigning values to these properties. Also support creating new and
deleting existing attributes through the generic "attributes" property of an
operation. Any validity checking must be performed by the op verifier after the
mutation, similarly to C++. Operations are not invalidated in the process: no
dangling pointers can be created as all attributes are owned by the context and
will remain live even if they are not used in any operation.

Introduce a Python Test dialect by analogy with the Test dialect and to avoid
polluting the latter with Python-specific constructs. Use this dialect to
implement a test for the attribute access and mutation API.

Reviewed By: stellaraccident, mehdi_amini

Differential Revision: https://reviews.llvm.org/D91652


  Commit: 803745b945f46d32770ee8805ef0f458660c441e
      https://github.com/llvm/llvm-project/commit/803745b945f46d32770ee8805ef0f458660c441e
  Author: Haowei Wu <haowei at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/InterfaceStub/ELFObjHandler.cpp
    M llvm/test/tools/llvm-elfabi/write-stub.test

  Log Message:
  -----------
  [llvm-elfabi] Emit ELF .dynsym, .dynamic sections

This change makes llvm-elfabi tool to emit .dynsym and .dynamic
sections.

Differential Revision: https://reviews.llvm.org/D89432


  Commit: ee6255d2074ccd50dfc9d993259caa0c5c4da4cd
      https://github.com/llvm/llvm-project/commit/ee6255d2074ccd50dfc9d993259caa0c5c4da4cd
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    A mlir/include/mlir/Bindings/Python/Attributes.td
    R mlir/lib/Bindings/Python/Attributes.td
    M mlir/lib/Bindings/Python/StandardOps.td
    M mlir/test/Bindings/Python/python_test_ops.td
    M mlir/test/mlir-tblgen/op-python-bindings.td

  Log Message:
  -----------
  [mlir] move lib/Bindings/Python/Attributes.td to include/mlir/Bindings/Python

This file is intended to be included by other files, including
out-of-tree dialects, and makes more sense in `include` than in `lib`.

Depends On D91652

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D91961


  Commit: 5b6f47595bab686c6c3351fc1bd1f564add80dbf
      https://github.com/llvm/llvm-project/commit/5b6f47595bab686c6c3351fc1bd1f564add80dbf
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/XRefs.cpp
    M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp

  Log Message:
  -----------
  [clangd] Sort results of incomingCalls request by container name

Differential Revision: https://reviews.llvm.org/D92009


  Commit: c3914bf28e3902c0e039eb31d2f36112a606dc58
      https://github.com/llvm/llvm-project/commit/c3914bf28e3902c0e039eb31d2f36112a606dc58
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/groups.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  [[lvm-readelf/obj] - Remove `tryGetSectionName` helper.

D91867 introduced the `tryGetSectionName` helper.
But we have `getPrintableSectionName` member with the similar
behavior which we can reuse. This patch does it.

Differential revision: https://reviews.llvm.org/D91954


  Commit: 50bd686695ac2ca25996be7994808f93a2b753c5
      https://github.com/llvm/llvm-project/commit/50bd686695ac2ca25996be7994808f93a2b753c5
  Author: Evgeny Leviant <eleviant at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARM.td
    M llvm/lib/Target/ARM/ARMSchedule.td
    M llvm/lib/Target/ARM/ARMScheduleA57.td
    M llvm/lib/Target/ARM/ARMScheduleA57WriteRes.td
    M llvm/test/tools/llvm-mca/ARM/cortex-a57-basic-instructions.s
    M llvm/utils/TableGen/CodeGenSchedule.cpp
    M llvm/utils/TableGen/SubtargetEmitter.cpp

  Log Message:
  -----------
  Add support for branch forms of ALU instructions to Cortex-A57 model

Patch fixes scheduling of ALU instructions which modify pc register. Patch
also fixes computation of mutually exclusive predicates for sequences of
variants to be properly expanded

Differential revision: https://reviews.llvm.org/D91266


  Commit: 245052ac3080681915c4da59e871d43ea583debb
      https://github.com/llvm/llvm-project/commit/245052ac3080681915c4da59e871d43ea583debb
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/stack-sizes.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  [llvm-readelf/obj] - Improve the error reporting in printStackSize().

This stops using `RelocationRef` API in the `printStackSize` method
and starts using the "regular" API that is used in almost all other places
in ELFDumper.cpp.

This is not only makes the code to be more consistent, but helps to diagnose
issues better, because the `ELFObjectFile` API, which is used
currently to implement stack sized dumping sometimes has a behavior
that just doesn't work well for broken inputs.

E.g see how it gets the `symbol_end` iterator. It will just not work
well for a case when the `sh_size` is broken.

```
template <class ELFT>
basic_symbol_iterator ELFObjectFile<ELFT>::symbol_end() const {
...
  DataRefImpl Sym = toDRI(SymTab, SymTab->sh_size / sizeof(Elf_Sym));
  return basic_symbol_iterator(SymbolRef(Sym, this));
}
```

Differential revision: https://reviews.llvm.org/D91624


  Commit: 6b74eabfddbc6629adbf6358f8e78893c4ee1d12
      https://github.com/llvm/llvm-project/commit/6b74eabfddbc6629adbf6358f8e78893c4ee1d12
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test
    M llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
    M llvm/test/tools/llvm-readobj/ELF/versym-invalid.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  [llvm-readelf/obj] - Refine the implementation of `printGNUVersionSectionProlog`

This:
1) Changes its signature.
2) Refines the name of local variable (`SymTabName`->`LinkedSecName`,
   because SHT_GNU_verneed/SHT_GNU_verdef are linked with the string table, not with the symbol table).
3) Stops using the `unwrapOrError` inside.

Differential revision: https://reviews.llvm.org/D91964


  Commit: 5931be60b5238e5e134fcde75eb2d8121f3dca82
      https://github.com/llvm/llvm-project/commit/5931be60b5238e5e134fcde75eb2d8121f3dca82
  Author: Kai Luo <lkail at cn.ibm.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/neg-abs.ll
    M llvm/test/CodeGen/PowerPC/neg-abs.ll
    M llvm/test/CodeGen/RISCV/neg-abs.ll

  Log Message:
  -----------
  [DAGCombine][PowerPC] Convert negated abs to trivial arithmetic ops

This patch converts `0 - abs(x)` to `Y = sra (X, size(X)-1); sub (Y, xor (X, Y))` for better codegen.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D91120


  Commit: 78caf4f1bb13c4cf2af3ee9d9f8ff16f67a177c7
      https://github.com/llvm/llvm-project/commit/78caf4f1bb13c4cf2af3ee9d9f8ff16f67a177c7
  Author: Evgeny Leviant <eleviant at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/utils/TableGen/CodeGenSchedule.cpp

  Log Message:
  -----------
  [SchedModels] Limit set of predicates seen by mutuallyExclusive

Patch limits set of predicates seen by mutuallyExclusive to ones which belong
to current processor model. This needs to be done, because same predicate can
be used by multiple processor models which can make mutuallyExclusive over
optimistic.


  Commit: 605be65c8b484c4d65bda456a0c81a45e8fd07bc
      https://github.com/llvm/llvm-project/commit/605be65c8b484c4d65bda456a0c81a45e8fd07bc
  Author: Marek Kurdej <marek.kurdej at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M libcxx/www/cxx1z_status.html

  Log Message:
  -----------
  [libc++] [www] Fix HTML. NFC.

Needed for a future automatic update to RST.


  Commit: 7b5254223acbf2ef9cd278070c5a84ab278d7e5f
      https://github.com/llvm/llvm-project/commit/7b5254223acbf2ef9cd278070c5a84ab278d7e5f
  Author: AndreyChurbanov <andrey.churbanov at intel.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M openmp/runtime/src/z_Linux_asm.S

  Log Message:
  -----------
  [OpenMP] fix asm code for for arm64 (AARCH64) for Darwin/macOS

Adjusted external reference for Darwin/AARCH64 link compatibility.
Made size directive conditional only if __ELF__ defined.

Patch by Michael_Pique <mpique at icloud.com>

Differential Revision: https://reviews.llvm.org/D88252


  Commit: fd92c5dbeeeb3c777f3a590328f8be41d856aafa
      https://github.com/llvm/llvm-project/commit/fd92c5dbeeeb3c777f3a590328f8be41d856aafa
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
    M mlir/test/Dialect/Linalg/bufferize.mlir

  Log Message:
  -----------
  [mlir][linalg] Add bufferization pattern for `linalg.indexed_generic`.

Differential Revision: https://reviews.llvm.org/D92014


  Commit: a2b59048d99040179c0106e86730f8a45f0e2286
      https://github.com/llvm/llvm-project/commit/a2b59048d99040179c0106e86730f8a45f0e2286
  Author: Evgeny Leviant <eleviant at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/utils/TableGen/CodeGenSchedule.cpp

  Log Message:
  -----------
  [SchedModels] Improve diagnostics. NFC


  Commit: 02fdbc3567249471349474c70828cb5a5d4881c8
      https://github.com/llvm/llvm-project/commit/02fdbc3567249471349474c70828cb5a5d4881c8
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp

  Log Message:
  -----------
  Revert "[NFC][SCEV] Generalize monotonicity check for full and limited iteration space"

This reverts commit 2734a9ebf4a31df0131acdfc739395a5e692c342.

This patch appeared to not be a NFC. It introduced an execution path where
monotonicity check on limited space started relying in existing nsw/nuw
flags, which is illegal. The motivating test will follow-up.


  Commit: 3d95d1b477dee6c1a01f6802527b60ba74271ed5
      https://github.com/llvm/llvm-project/commit/3d95d1b477dee6c1a01f6802527b60ba74271ed5
  Author: Eugene Zhulenev <ezhulenev at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/ExecutionEngine/AsyncRuntime.cpp

  Log Message:
  -----------
  [mlir] AsyncRuntime: fix concurrency bugs + fix exports in methods definitions

1. Move ThreadPool ownership to the runtime, and wait for the async tasks completion in the destructor.
2. Remove MLIR_ASYNCRUNTIME_EXPORT from method definitions because they are unnecessary in .cpp files, as only function declarations need to be exported, not their definitions.
3. Fix concurrency bugs in group emplace and potential use-after-free in token emplace.

Tested internally 10k runs in `async.mlir` and `async-group.mlir`.

Fixed: https://bugs.llvm.org/show_bug.cgi?id=48267

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D91988


  Commit: 49e463ff803d144bec510d6c1e061aafbf3b27cf
      https://github.com/llvm/llvm-project/commit/49e463ff803d144bec510d6c1e061aafbf3b27cf
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/IR/Constants.cpp
    M llvm/test/Transforms/InstCombine/vscale_extractelement.ll

  Log Message:
  -----------
  [IR] Constant::getAggregateElement - early-out for ScalableVectorType

We can't call getNumElements() for ScalableVectorType types - just bail for now, although ConstantAggregateZero/UndefValue could return a reasonable value.

Fixes crash shown in OSS-Fuzz #25272 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25272


  Commit: f726101b6240a6740b3c0926af759da5e7336f8a
      https://github.com/llvm/llvm-project/commit/f726101b6240a6740b3c0926af759da5e7336f8a
  Author: Kadir Cetinkaya <kadircet at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/index/remote/CMakeLists.txt
    M clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
    M clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    M llvm/cmake/modules/FindGRPC.cmake

  Log Message:
  -----------
  [clangd] Fix shared-lib builds

Differential Revision: https://reviews.llvm.org/D91859


  Commit: ca1f2f2716b3f9477ced8ae5bb3b0a2a767ab439
      https://github.com/llvm/llvm-project/commit/ca1f2f2716b3f9477ced8ae5bb3b0a2a767ab439
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rv32Zbp.ll
    M llvm/test/CodeGen/RISCV/rv64Zbp.ll

  Log Message:
  -----------
  [RISCV] Combine GREVI sequences

This combine step performs the following type of transformation:

    rev.p a0, a0   # grevi a0, a0, 0b01
    rev2.n a0, a0  # grevi a0, a0, 0b10
    -->
    rev.n a0, a0   # grevi a0, a0, 0b11

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D91877


  Commit: 1eded173a91d3bbfa283eacdabb191cd53dd49e5
      https://github.com/llvm/llvm-project/commit/1eded173a91d3bbfa283eacdabb191cd53dd49e5
  Author: Ulysse Beaugnon <ulysse at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/tools/mlir-tblgen/OpInterfacesGen.cpp

  Log Message:
  -----------
  [MLIR] Fix TableGen generator for attribute interfaces.

Use the correct interface base type name when generating attribute interfaces
with TabeGen.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D92023


  Commit: 38236656ab4a4bea5e582f709929003abfa1ddcd
      https://github.com/llvm/llvm-project/commit/38236656ab4a4bea5e582f709929003abfa1ddcd
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/docs/ThinLTO.rst

  Log Message:
  -----------
  [docs] Try to make this bullet list in ThinLTO.rst actually be a bullet list


  Commit: cb08558caa3bad69213b08e6361586491232c745
      https://github.com/llvm/llvm-project/commit/cb08558caa3bad69213b08e6361586491232c745
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/docs/LanguageExtensions.rst
    M clang/docs/UsersManual.rst
    M clang/include/clang/Basic/LangOptions.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/test/CodeGenCUDA/fp-contract.cu
    M clang/test/Driver/autocomplete.c

  Log Message:
  -----------
  [HIP] Fix regressions due to fp contract change

Recently HIP toolchain made a change to use clang instead of opt/llc to do compilation
(https://reviews.llvm.org/D81861). The intention is to make HIP toolchain canonical like
other toolchains.

However, this change introduced an unintentional change regarding backend fp fuse
option, which caused regressions in some HIP applications.

Basically before the change, HIP toolchain used clang to generate bitcode, then use
opt/llc to optimize bitcode and generate ISA. As such, the amdgpu backend takes
the default fp fuse mode which is 'Standard'. This mode respect contract flag of
fmul/fadd instructions and do not fuse fmul/fadd instructions without contract flag.

However, after the change, HIP toolchain now use clang to generate IR, do optimization,
and generate ISA as one process. Now amdgpu backend fp fuse option is determined
by -ffp-contract option, which is 'fast' by default. And this -ffp-contract=fast language option
is translated to 'Fast' fp fuse option in backend. Suddenly backend starts to fuse fmul/fadd
instructions without contract flag.

This causes wrong result for some device library functions, e.g. tan(-1e20), which should
return 0.8446, now returns -0.933. What is worse is that since backend with 'Fast' fp fuse
option does not respect contract flag, there is no way to use #pragma clang fp contract
directive to enforce fp contract requirements.

This patch fixes the regression by introducing a new value 'fast-honor-pragmas' for -ffp-contract
and use it for HIP by default. 'fast-honor-pragmas' is equivalent to 'fast' in frontend but
let the backend to use 'Standard' fp fuse option. 'fast-honor-pragmas' is useful since 'Fast'
fp fuse option in backend does not honor contract flag, it is of little use to HIP
applications since all code with #pragma STDC FP_CONTRACT or any IR from a
source compiled with -ffp-contract=on is broken.

Differential Revision: https://reviews.llvm.org/D90174


  Commit: 32d9a386bf8f447dbbfaf55f6fef4fea4463205b
      https://github.com/llvm/llvm-project/commit/32d9a386bf8f447dbbfaf55f6fef4fea4463205b
  Author: Ayal Zaks <ayal.zaks at intel.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/dead_instructions.ll

  Log Message:
  -----------
  [LV] Keep Primary Induction alive when folding tail by masking

Fix PR47390.

The primary induction should be considered alive when folding tail by masking,
because it will be used by said masking; even when it may otherwise appear
useless: feeding only its own 'bump', which is correctly considered dead, and
as the 'bump' of another induction variable, which may wrongfully want to
consider its bump = the primary induction, dead.

Differential Revision: https://reviews.llvm.org/D92017


  Commit: e16c0a9a689719f379e49d0a05cb58774cce4adb
      https://github.com/llvm/llvm-project/commit/e16c0a9a689719f379e49d0a05cb58774cce4adb
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Darwin.h
    A clang/test/Driver/darwin-ld-demangle-lld.c
    M lld/Common/Strings.cpp
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/Options.td
    M lld/MachO/Symbols.cpp
    M lld/MachO/Writer.cpp
    M lld/test/ELF/undef.s
    A lld/test/MachO/demangle.s
    M lld/test/MachO/silent-ignore.test
    M lld/tools/lld/CMakeLists.txt
    M llvm/utils/gn/secondary/lld/tools/lld/BUILD.gn

  Log Message:
  -----------
  clang+lld: Improve clang+ld.darwinnew.lld interaction, pass -demangle

This patch:
- adds an ld64.lld.darwinnew symlink for lld, to go with f2710d4b576,
  so that `clang -fuse-ld=lld.darwinnew` can be used to test new
  Mach-O lld while it's in bring-up. (The expectation is that we'll
  remove this again once new Mach-O lld is the defauld and only Mach-O
  lld.)
- lets the clang driver know if the linker is lld (currently
  only triggered if `-fuse-ld=lld` or `-fuse-ld=lld.darwinnew` is
  passed). Currently only used for the next point, but could be used
  to implement other features that need close coordination between
  compiler and linker, e.g. having a diag for calling `clang++` instead
  of `clang` when link errors are caused by a missing C++ stdlib.
- lets the clang driver pass `-demangle` to Mach-O lld (both old and
  new), in addition to ld64
- implements -demangle for new Mach-O lld
- changes demangleItanium() to accept _Z, __Z, ___Z, ____Z prefixes
  (and updates one test added in D68014). Mach-O has an extra
  underscore for symbols, and the three (or, on Mach-O, four)
  underscores are used for block names.

Differential Revision: https://reviews.llvm.org/D91884


  Commit: a8de412f516c6b796aad9c3765962eca4d126a17
      https://github.com/llvm/llvm-project/commit/a8de412f516c6b796aad9c3765962eca4d126a17
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.h
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/Interfaces/ViewLikeInterface.h
    M mlir/include/mlir/Interfaces/ViewLikeInterface.td
    M mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Interfaces/ViewLikeInterface.cpp
    M mlir/test/IR/invalid-ops.mlir

  Log Message:
  -----------
  [mlir] NFC - Expose an OffsetSizeAndStrideOpInterface

This revision will make it easier to create new ops base on the strided memref abstraction outside of the std dialect.

OffsetSizeAndStrideOpInterface is an interface for ops that allow specifying mixed dynamic and static offsets, sizes and strides variadic operands.
    Ops that implement this interface need to expose the following methods:
      1. `getArrayAttrRanks` to specify the length of static integer
          attributes.
      2. `offsets`, `sizes` and `strides` variadic operands.
      3. `static_offsets`, resp. `static_sizes` and `static_strides` integer
          array attributes.

    The invariants of this interface are:
      1. `static_offsets`, `static_sizes` and `static_strides` have length
          exactly `getArrayAttrRanks()`[0] (resp. [1], [2]).
      2. `offsets`, `sizes` and `strides` have each length at most
         `getArrayAttrRanks()`[0] (resp. [1], [2]).
      3. if an entry of `static_offsets` (resp. `static_sizes`,
         `static_strides`) is equal to a special sentinel value, namely
         `ShapedType::kDynamicStrideOrOffset` (resp. `ShapedType::kDynamicSize`,
         `ShapedType::kDynamicStrideOrOffset`), then the corresponding entry is
         a dynamic offset (resp. size, stride).
      4. a variadic `offset` (resp. `sizes`, `strides`) operand  must be present
         for each dynamic offset (resp. size, stride).

    This interface is useful to factor out common behavior and provide support
    for carrying or injecting static behavior through the use of the static
    attributes.

Differential Revision: https://reviews.llvm.org/D92011


  Commit: a6a6d11c7b05b5b317818246e09ededda671f0b9
      https://github.com/llvm/llvm-project/commit/a6a6d11c7b05b5b317818246e09ededda671f0b9
  Author: Evgeny Leviant <eleviant at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    A llvm/test/MC/ARM/tMOVSr.s

  Log Message:
  -----------
  [MC][ARM] Fix number of operands of tMOVSr

Differential revision: https://reviews.llvm.org/D92029


  Commit: c80fbdf29191a698b3540d92c68aac6600e0c7a1
      https://github.com/llvm/llvm-project/commit/c80fbdf29191a698b3540d92c68aac6600e0c7a1
  Author: diggerlin <digger.llvm at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/include/llvm/Object/XCOFFObjectFile.h
    M llvm/lib/Object/XCOFFObjectFile.cpp
    M llvm/unittests/Object/XCOFFObjectFileTest.cpp

  Log Message:
  -----------
  [NFC][AIX][XCOFF] change function name from getNumofGPRsSaved to getNumOfGPRsSaved

change function name from getNumofGPRsSaved to getNumOfGPRsSaved for class XCOFFTracebackTable

Reviewers: Jason Liu
Differential Revision: https://reviews.llvm.org/D91882


  Commit: 9c3b68dc6fe1475bf49c2a878748de32cac83ede
      https://github.com/llvm/llvm-project/commit/9c3b68dc6fe1475bf49c2a878748de32cac83ede
  Author: Evgeny Leviant <eleviant at accesssoftek.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/MCA/InstrBuilder.cpp
    A llvm/test/tools/llvm-mca/ARM/cortex-a57-thumb.s

  Log Message:
  -----------
  [llvm-mca] Fix processing thumb instruction set

Differential revision: https://reviews.llvm.org/D91704


  Commit: 5ce85e66358a69e786093756c77fae2e140947c1
      https://github.com/llvm/llvm-project/commit/5ce85e66358a69e786093756c77fae2e140947c1
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    A clang/test/Driver/Inputs/lld/ld64.lld
    A clang/test/Driver/Inputs/lld/ld64.lld.darwinnew
    M clang/test/Driver/darwin-ld-demangle-lld.c

  Log Message:
  -----------
  Fix driver test from e16c0a9a689719

The test failed silently if lld wasn't built alongside clang.
But the test uses -###, so the "invalid linker name in -fuse-ld=lld"
diag didn't make clang fail, and something else happened to match
"-demangle", so the test passed.

To fix, pass -B to a directory with two empty +x files (which works
on non-Windows), and look for `"-demangle"` instead of just `-demangle`.
Also force linker_version to 0 and pass a darwin triple.

Differential Revision: https://reviews.llvm.org/D92028


  Commit: 9e83d0bcdfe86fd13f2817c9f40c5ca0b08f1443
      https://github.com/llvm/llvm-project/commit/9e83d0bcdfe86fd13f2817c9f40c5ca0b08f1443
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/DumpAST.cpp
    M clang-tools-extra/clangd/unittests/DumpASTTests.cpp

  Log Message:
  -----------
  [clangd] Mention when CXXThis is implicit in exposed AST.

Seeing an implicit this in the AST is pretty confusing I think.
While here, also mention when `this` is const.

Differential Revision: https://reviews.llvm.org/D91868


  Commit: ee95c7020cebe4668a501f24305a76a044df5266
      https://github.com/llvm/llvm-project/commit/ee95c7020cebe4668a501f24305a76a044df5266
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/__string
    M libcxx/include/algorithm
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp

  Log Message:
  -----------
  [libc++] Remove _LIBCPP_CONSTEXPR_AFTER_CXX17_WITH_IS_CONSTANT_EVALUATED.

Zoe Carver says: "We decided that libc++ only supports C++20 constexpr algorithms
when `is_constant_evaluated` is also supported. Here's a link to the discussion."
https://reviews.llvm.org/D65721#inline-735682

Remove _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED from tests, too.
See Louis's 5911e6a8857f146fb5a8f23af1d768aba25e7c3e if needed to fix bots.
I've applied `UNSUPPORTED: clang-8` preemptively to the altered tests;
I don't know for sure that this was needed, because no clang-8 buildbots
are triggered on pull requests.


  Commit: c8414fa9410841da20964758c89bf9e312941dfa
      https://github.com/llvm/llvm-project/commit/c8414fa9410841da20964758c89bf9e312941dfa
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M lld/tools/lld/CMakeLists.txt
    M llvm/utils/gn/secondary/lld/tools/lld/BUILD.gn

  Log Message:
  -----------
  lld: Fix darwinnew symlink name added in e16c0a9a68971


  Commit: 1b0ca81a6c358d2d52d4f84b7f42e620ead1ed26
      https://github.com/llvm/llvm-project/commit/1b0ca81a6c358d2d52d4f84b7f42e620ead1ed26
  Author: Sergey Dmitriev <serguei.n.dmitriev at intel.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp

  Log Message:
  -----------
  [clang-offload-bundler] use std::forward_list for storing temp file names [NFC]

Use a different container that preserves existing elements on modification
for storing temporary file names. Current container can make StringRefs
returned earlier invalid on reallocation.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D92010


  Commit: 9a8386dba889b038c23bfc89dd0ff3cf55bbf86a
      https://github.com/llvm/llvm-project/commit/9a8386dba889b038c23bfc89dd0ff3cf55bbf86a
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Darwin.h
    M clang/test/Driver/darwin-ld-platform-version-ios.c
    M clang/test/Driver/darwin-ld-platform-version-macos.c
    M clang/test/Driver/darwin-ld-platform-version-tvos.c
    M clang/test/Driver/darwin-ld-platform-version-watchos.c

  Log Message:
  -----------
  clang: Pass -platform-version to new MachO LLD

New MachO LLD doesn't implement the old -macos_version_min (etc)
flags, but it understands the modern platform_version flag.
So make the clang driver pass that when using new MachO LLD.

Also, while here, don't pass -lto_library to LLD, since it
links in LTO libraries statically (which it can because it's
versioned alongside clang).

Differential Revision: https://reviews.llvm.org/D92037


  Commit: b86a1cd2f8540b311b5b921235e612fea4134dff
      https://github.com/llvm/llvm-project/commit/b86a1cd2f8540b311b5b921235e612fea4134dff
  Author: Masoud Ataei <msd.ataei at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp
    M llvm/test/CodeGen/PowerPC/pow_massv_075_025exp.ll
    M llvm/test/CodeGen/PowerPC/powf_massv_075_025exp.ll

  Log Message:
  -----------
  [PowerPC] dyn_cast should be dyn_cast_or_null in MASSV pass

It is possible that we have different constants in different slots
of second vector double (float) of pow function. So, in this case
Exp->getSplatValue() will return nullptr. Here, I handle it properly.

Reviewed By: steven.zhang, PowerPC

Differential Revision: https://reviews.llvm.org/D91729


  Commit: 11b76258331659daa57e15fe86c1f1234267a78d
      https://github.com/llvm/llvm-project/commit/11b76258331659daa57e15fe86c1f1234267a78d
  Author: Nico Weber <thakis at chromium.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M lld/COFF/DriverUtils.cpp
    M lld/ELF/DriverUtils.cpp
    M lld/MachO/DriverUtils.cpp
    M lld/test/MachO/color-diagnostics.test
    A lld/test/MachO/driver.test
    M lld/test/MachO/silent-ignore.test

  Log Message:
  -----------
  [lld/mac] Implement basic typo correction for flags

Also use "unknown flag 'flag'" instead of "unknown flag: flag" for
consistency with the other ports.

Differential Revision: https://reviews.llvm.org/D91970


  Commit: 1a036e9cc82a7f6d6f4675d631fa5eecd8748784
      https://github.com/llvm/llvm-project/commit/1a036e9cc82a7f6d6f4675d631fa5eecd8748784
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/include/bit
    M libcxx/include/version
    M libcxx/test/libcxx/numerics/bit.ops.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
    A libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp
    A libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.pass.cpp
    A libcxx/test/std/numerics/bit/bit.pow.two/bit_floor.pass.cpp
    A libcxx/test/std/numerics/bit/bit.pow.two/bit_width.pass.cpp
    R libcxx/test/std/numerics/bit/bit.pow.two/ceil2.fail.cpp
    R libcxx/test/std/numerics/bit/bit.pow.two/ceil2.pass.cpp
    R libcxx/test/std/numerics/bit/bit.pow.two/floor2.pass.cpp
    A libcxx/test/std/numerics/bit/bit.pow.two/has_single_bit.pass.cpp
    R libcxx/test/std/numerics/bit/bit.pow.two/ispow2.pass.cpp
    R libcxx/test/std/numerics/bit/bit.pow.two/log2p1.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/www/cxx2a_status.html

  Log Message:
  -----------
  [libcxx] Implement P1956 rename low-level bit functions

Implements P1956: On the names of low-level bit manipulation functions.

Users may use older versions of libc++ or other standard libraries with the old names. In order to keep compatibility the old functions are kept, but marked as deprecated.

The patch also adds a new config macro `_LIBCPP_DEPRECATED_MSG`. Do you prefer a this is a separate patch?

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D90551


  Commit: 9c8af93c93d0eec980cd58c194ad964e14d245ac
      https://github.com/llvm/llvm-project/commit/9c8af93c93d0eec980cd58c194ad964e14d245ac
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  Log Message:
  -----------
  Add support for STRICT_FSETCC promotion

Add missing handling of STRICT_FSETCC promotion. This prevents assert
failure in llvm::TargetLoweringBase::getTypeToPromoteTo().

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D91962


  Commit: 25777080549bb62b6e46a1809f93257969f5dd53
      https://github.com/llvm/llvm-project/commit/25777080549bb62b6e46a1809f93257969f5dd53
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/OpenMP/parallel_region_merging.ll
    R llvm/test/Transforms/OpenMP/parallel_region_merging_legacy_pm.ll

  Log Message:
  -----------
  [test] Merge parallel_region_merging{,_legacy_pm}.ll

These are identical except for the RUN lines.
Also pin legacy RUN line to legacy PM.


  Commit: a248eca6659779116a6fb348117d74a0b8a05316
      https://github.com/llvm/llvm-project/commit/a248eca6659779116a6fb348117d74a0b8a05316
  Author: Yichao Yu <yyc1992 at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp

  Log Message:
  -----------
  Clear NewGEPBases after finish using them in CodeGenPrep pass

AFAICT all other set/map are correctly cleared in `runOnFunction`.

With assertion enabled this causes a crash when the module is freed and potentially if a later pass delete the instruction (not observed in real world though). Without assertion this can potentially cause confusing result when running on a new Function/Module.

Reviewed By: loladiro

Differential Revision: https://reviews.llvm.org/D84031


  Commit: 44174b3d518ed70482ff5df2879523a4e26f92cc
      https://github.com/llvm/llvm-project/commit/44174b3d518ed70482ff5df2879523a4e26f92cc
  Author: Hubert Tong <hubert.reinterpretcast at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/test/CodeGen/thinlto_embed_bitcode.ll

  Log Message:
  -----------
  [NFC][tests] Replace non-portable grep with FileCheck

After commit 2482648a795afbe12774168bbbf70dc14c031267, a GNU grep option
is just passed unconditionally to `grep` in general. This patch fixes
the test for platforms where `grep` is not GNU grep.


  Commit: 0ec73a61cca6cddf3255338c24fb5398fe45b74d
      https://github.com/llvm/llvm-project/commit/0ec73a61cca6cddf3255338c24fb5398fe45b74d
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M libcxx/include/numeric

  Log Message:
  -----------
  [libc++] NFC: Fix confusing indentation in <numeric>


  Commit: db9713cd776ac5963efc502a5db6b315335aad9a
      https://github.com/llvm/llvm-project/commit/db9713cd776ac5963efc502a5db6b315335aad9a
  Author: Stella Laurenzo <stellaraccident at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    A mlir/test/Dialect/Tosa/constant_folding.mlir

  Log Message:
  -----------
  [mlir] Add Tosa dialect const folder for tosa.const.

* Was missed in the initial submission and is required for a ConstantLike op.
* Also adds a materializeConstant hook to preserve it.
* Tightens up the argument constraint on tosa.const to match what is actually legal.

Differential Revision: https://reviews.llvm.org/D92040


  Commit: 1f5c4a0d04ac0384218bf56e78e3c1d9c3c2f53f
      https://github.com/llvm/llvm-project/commit/1f5c4a0d04ac0384218bf56e78e3c1d9c3c2f53f
  Author: Victor Huang <wei.huang at ibm.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
    A llvm/test/CodeGen/PowerPC/pcrel-tls_get_addr_clobbers.ll

  Log Message:
  -----------
  [PowerPC][PCRelative] Add new pseudo instructions for PCRel TLS to fix R2 clobber issue

New pseudo instructions GETtlsADDRPCREL and GETtlsldADDRPCREL are added for properly
setting REGMASK for tls_get_addr function when using PCRelative address.

Differential Revisien: https://reviews.llvm.org/D91420
Reviewed by: bsaleil


  Commit: 6e4c1cf2938842ceefc2712f0007843369dd16ca
      https://github.com/llvm/llvm-project/commit/6e4c1cf2938842ceefc2712f0007843369dd16ca
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
    M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  Log Message:
  -----------
  [ThinLTO/WPD] Enable -wholeprogramdevirt-skip in ThinLTO backends

Previously this option could be used to skip devirtualizations of the
given functions in regular LTO and in the ThinLTO indexing step. This
change allows them to be skipped in the backend as well, which is useful
when debugging WPD in a distributed ThinLTO backend.

Differential Revision: https://reviews.llvm.org/D91812


  Commit: 760063267c462c21cfdeafb0d5fe63ecfa2f2c30
      https://github.com/llvm/llvm-project/commit/760063267c462c21cfdeafb0d5fe63ecfa2f2c30
  Author: Tei Jeong <taeheej at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/Dialect/Quant/IR/TypeParser.cpp
    M mlir/test/Dialect/Quant/parse-calibrated.mlir

  Log Message:
  -----------
  Fix CalibratedQuantizedType's print function to match parser

Reviewed By: liufengdb

Differential Revision: https://reviews.llvm.org/D92034


  Commit: 4926eed59c77bb452539d88a0a8ba3f3c21c4016
      https://github.com/llvm/llvm-project/commit/4926eed59c77bb452539d88a0a8ba3f3c21c4016
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIDefines.h
    M llvm/lib/Target/AMDGPU/SIInstrFormats.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/VOP1Instructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td

  Log Message:
  -----------
  [AMDGPU] Add a TRANS bit to TSFlags. NFC.

This is used to mark transcendental instructions that execute on a
separate pipeline from the normal VALU pipeline.

Differential Revision: https://reviews.llvm.org/D92042


  Commit: f96fef89b5eca29f2dc41e97829c20bf742cdcd9
      https://github.com/llvm/llvm-project/commit/f96fef89b5eca29f2dc41e97829c20bf742cdcd9
  Author: Fangrui Song <i at maskray.me>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/test/Driver/aarch64-features.c

  Log Message:
  -----------
  [Driver] Default Generic_GCC aarch64 to -fasynchronous-unwind-tables

In GCC, `aarch64-*-linux` and `aarch64-*-freebsd` made the switch in 2018
(https://gcc.gnu.org/pipermail/gcc-patches/2018-March/495549.html).
In Clang, FreeBSD/Fuchsia/NetBSD/MinGW aarch64 default to -fasynchronous-unwind-tables.

This patch defaults Generic_GCC aarch64 (which affects Linux) to use -fasynchronous-unwind-tables.

Reviewed By: nickdesaulniers

Differential Revision: https://reviews.llvm.org/D91760


  Commit: 15481bba1ff2c03ff969cba8e0e7c37888f966a3
      https://github.com/llvm/llvm-project/commit/15481bba1ff2c03ff969cba8e0e7c37888f966a3
  Author: Stella Laurenzo <stellaraccident at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/CMakeLists.txt
    M mlir/cmake/modules/MLIRDetectPythonEnv.cmake

  Log Message:
  -----------
  [mlir][Python] Fix the last remaining instance of PYTHON_EXECUTABLE.

* Was causing auto-detect of pybind11 to fail on clean configure.

Differential Revision: https://reviews.llvm.org/D92043


  Commit: f6e59294b63e1fd0b25720f24111cd17865004be
      https://github.com/llvm/llvm-project/commit/f6e59294b63e1fd0b25720f24111cd17865004be
  Author: Adam Czachorowski <adamcz at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/refactor/tweaks/AddUsing.cpp
    M clang-tools-extra/clangd/unittests/TweakTests.cpp

  Log Message:
  -----------
  [clangd] AddUsing: Used spelled text instead of type name.

This improves the behavior related to type aliases, as well as cases of
typo correction.

Differential Revision: https://reviews.llvm.org/D91966


  Commit: 42eaf4fe0adef3344adfd9fbccd49f325cb549ef
      https://github.com/llvm/llvm-project/commit/42eaf4fe0adef3344adfd9fbccd49f325cb549ef
  Author: Janek van Oirschot <janekvo at graphcore.ai>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/CodeGen/HardwareLoops.cpp
    M llvm/test/CodeGen/PowerPC/shrink-wrap.ll

  Log Message:
  -----------
  [HardwareLoops] Change order of SCEV expression construction for InitLoopCount.

Putting the +1 before the zero-extend will allow scalar evolution to fold the expression in some cases such as the one shown in PowerPC's `shrink-wrap.ll` test.

Reviewed By: samparker

Differential Revision: https://reviews.llvm.org/D91724


  Commit: e3bb78293a13b0c85ee774615d1cf490e6f175d9
      https://github.com/llvm/llvm-project/commit/e3bb78293a13b0c85ee774615d1cf490e6f175d9
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/OpenMP/rtf_type_checking.ll

  Log Message:
  -----------
  [test] Fix rtf_type_checking.ll under NPM


  Commit: 785a2552550a3e2ddc83bbad95f987ad350477b6
      https://github.com/llvm/llvm-project/commit/785a2552550a3e2ddc83bbad95f987ad350477b6
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    A llvm/test/Transforms/DeadStoreElimination/MSSA/out-of-bounds-stores.ll

  Log Message:
  -----------
  [DSE] Precommit test case for PR48279.


  Commit: 116660257f789150e6c2f896ccc8cd605e153cd9
      https://github.com/llvm/llvm-project/commit/116660257f789150e6c2f896ccc8cd605e153cd9
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/OpenMP/parallel_deletion_cg_update.ll

  Log Message:
  -----------
  [test] Pin parallel_deletion_cg_update.ll to legacy PM

This tests legacy PM-specific code.


  Commit: 075468621c0f4569f4c91d4f3097b3a60812cfcc
      https://github.com/llvm/llvm-project/commit/075468621c0f4569f4c91d4f3097b3a60812cfcc
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [LoopVec] Add a minor clarifying comment


  Commit: a991d5334045d1e7f3c7e292245aecbce66184b0
      https://github.com/llvm/llvm-project/commit/a991d5334045d1e7f3c7e292245aecbce66184b0
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/InstCombine/sub-gep.ll

  Log Message:
  -----------
  [InstCombine] add tests for gep math; NFC


  Commit: ccf6f15bc62b7c17c82a8cc2010eeaae470a1563
      https://github.com/llvm/llvm-project/commit/ccf6f15bc62b7c17c82a8cc2010eeaae470a1563
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/Transforms/InstCombine/sub.ll

  Log Message:
  -----------
  [InstCombine] add tests for sub of muls; NFC


  Commit: 678b9c5dde0d119e91f5f905c3d9101cf8c514f9
      https://github.com/llvm/llvm-project/commit/678b9c5dde0d119e91f5f905c3d9101cf8c514f9
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/sub-gep.ll
    M llvm/test/Transforms/InstCombine/sub.ll

  Log Message:
  -----------
  [InstCombine] try difference-of-shifts factorization before negator

We need to preserve wrapping flags to allow better folds.
The cases with geps may be non-intuitive, but that appears to agree with Alive2:
https://alive2.llvm.org/ce/z/JQcqw7
We create 'nsw' ops independent from the original wrapping on the sub.


  Commit: 1e821217cb3619449d536978bae7c9f05bdf0fa5
      https://github.com/llvm/llvm-project/commit/1e821217cb3619449d536978bae7c9f05bdf0fa5
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/refactor/Rename.cpp

  Log Message:
  -----------
  [clangd] Add more trace spans for rename, NFC.


  Commit: 5f0c1e380661f5a28fb8e87d70a68fa31e923436
      https://github.com/llvm/llvm-project/commit/5f0c1e380661f5a28fb8e87d70a68fa31e923436
  Author: zhanghb97 <hongbin2019 at iscas.ac.cn>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/Bindings/Python/IRModules.cpp
    M mlir/lib/Bindings/Python/PybindUtils.h

  Log Message:
  -----------
  [mlir][Python] Sync Python bindings with C API MlirStringRef modification.

MLIR C API use the `MlirStringRef` instead of `const char *` for the string type now. This patch sync the Python bindings with the C API modification.

Differential Revision: https://reviews.llvm.org/D92007


  Commit: b6c71c13a38b76942c9561575837c94215f23c9e
      https://github.com/llvm/llvm-project/commit/b6c71c13a38b76942c9561575837c94215f23c9e
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Interfaces/ViewLikeInterface.h
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Interfaces/ViewLikeInterface.cpp

  Log Message:
  -----------
  [mlir] NFC - Refactor and expose a parsing helper for OffsetSizeAndStrideInterface

Parse trailing part of an op of the form:
```
  <optional-offset-prefix>`[` offset-list `]`
  <optional-size-prefix>`[` size-list `]`
  <optional-stride-prefix>[` stride-list `]`
```
Each entry in the offset, size and stride list either resolves to an integer
constant or an operand of index type.
Constants are added to the `result` as named integer array attributes with
name `OffsetSizeAndStrideOpInterface::getStaticOffsetsAttrName()` (resp.
`getStaticSizesAttrName()`, `getStaticStridesAttrName()`).

Append the number of offset, size and stride operands to `segmentSizes`
before adding it to `result` as the named attribute:
`OpTrait::AttrSizedOperandSegments<void>::getOperandSegmentSizeAttr()`.
Offset, size and stride operands resolution occurs after `preResolutionFn`
to give a chance to leading operands to resolve first, after parsing the
types.
```
ParseResult parseOffsetsSizesAndStrides(
    OpAsmParser &parser, OperationState &result, ArrayRef<int> segmentSizes,
    llvm::function_ref<ParseResult(OpAsmParser &, OperationState &)>
        preResolutionFn = nullptr,
    llvm::function_ref<ParseResult(OpAsmParser &)> parseOptionalOffsetPrefix =
        nullptr,
    llvm::function_ref<ParseResult(OpAsmParser &)> parseOptionalSizePrefix =
        nullptr,
    llvm::function_ref<ParseResult(OpAsmParser &)> parseOptionalStridePrefix =
        nullptr);
```

Differential revision: https://reviews.llvm.org/D92030


  Commit: 8f8bbf98dae1c513b70614a9640b861e6e240b5f
      https://github.com/llvm/llvm-project/commit/8f8bbf98dae1c513b70614a9640b861e6e240b5f
  Author: Fangrui Song <i at maskray.me>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    A clang/test/Driver/ppc-cpus.c
    M clang/test/Driver/ppc-features.cpp

  Log Message:
  -----------
  [test] Clean up ppc-features.cpp and improve tests

And add ppc-cpus.cpp for -mcpu= specific tests.


  Commit: c24708102501115efae27f82c24d5991059a5770
      https://github.com/llvm/llvm-project/commit/c24708102501115efae27f82c24d5991059a5770
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/Interfaces/ViewLikeInterface.h
    M mlir/include/mlir/Interfaces/ViewLikeInterface.td
    M mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Interfaces/ViewLikeInterface.cpp

  Log Message:
  -----------
  [mlir] NFC - Refactor and expose a helper printOffsetSizesAndStrides helper function.

Print part of an op of the form:
```
  <optional-offset-prefix>`[` offset-list `]`
  <optional-size-prefix>`[` size-list `]`
  <optional-stride-prefix>[` stride-list `]`
```

Also address some leftover nits.

Differential revision: https://reviews.llvm.org/D92031


  Commit: 0768b0576a938b6a4832884384fcb02cd2f74e09
      https://github.com/llvm/llvm-project/commit/0768b0576a938b6a4832884384fcb02cd2f74e09
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp

  Log Message:
  -----------
  Avoid redundant work when computing vtable vcall visibility

Add a Visited set to avoid repeatedly processing the same base classes
in complex class hierarchies. This cut down the compile time of one
source file from >12min to ~1min.

Differential Revision: https://reviews.llvm.org/D91676


  Commit: 9c97e4ef4529ee2b518af6c1f2f68d2634946b3a
      https://github.com/llvm/llvm-project/commit/9c97e4ef4529ee2b518af6c1f2f68d2634946b3a
  Author: Marek Kurdej <marek at quasardb.net>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M libcxx/include/atomic
    M libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
    M libcxx/test/std/atomics/atomics.lockfree/lockfree.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/integral.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/integral_typedefs.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h
    M libcxx/test/std/atomics/types.pass.cpp

  Log Message:
  -----------
  [libc++] [P0482] [C++20] Implement missing bits for atomic

Added: ATOMIC_CHAR8_T_LOCK_FREE, atomic<char8_t>, atomic_char8_t.
http://wg21.link/P0482

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D91706


  Commit: 119545f4338efacabf99e06eeca965913f6617f2
      https://github.com/llvm/llvm-project/commit/119545f4338efacabf99e06eeca965913f6617f2
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.h
    M mlir/include/mlir/Conversion/Passes.td
    A mlir/include/mlir/Conversion/SCFToOpenMP/SCFToOpenMP.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Conversion/CMakeLists.txt
    M mlir/lib/Conversion/PassDetail.h
    A mlir/lib/Conversion/SCFToOpenMP/CMakeLists.txt
    A mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    A mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir

  Log Message:
  -----------
  [mlir] Add conversion from SCF parallel loops to OpenMP

Introduce a conversion pass from SCF parallel loops to OpenMP dialect
constructs - parallel region and workshare loop. Loops with reductions are not
supported because the OpenMP dialect cannot model them yet.

The conversion currently targets only one level of parallelism, i.e. only
one top-level `omp.parallel` operation is produced even if there are nested
`scf.parallel` operations that could be mapped to `omp.wsloop`. Nested
parallelism support is left for future work.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D91982


  Commit: 4f5355ee73626f8b8fe6bf0dd6d167fea7628a2c
      https://github.com/llvm/llvm-project/commit/4f5355ee73626f8b8fe6bf0dd6d167fea7628a2c
  Author: Sean Fertile <sd.fertile at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    A llvm/test/CodeGen/PowerPC/cvt_i64_to_fp.ll

  Log Message:
  -----------
  [PowerPC] Don't reuse an illegal typed load for int_to_fp conversion.

When the operand to an (s/u)int_to_fp node is an illegally typed load we
cannot reuse the load address since we can not build a proper dependancy
chain. The legalized loads will use a different chain output then the
illegal load. If we reuse the load address then we will build a
conversion node that uses the chain of the illegal load and operations
which modify the memory address in the other dependancy chain can be
scheduled before the floating point load which feeds the conversion.

Differential Revision: https://reviews.llvm.org/D91265


  Commit: b228e2bd92a7959b6a48ac208871ad0cb5c09ebf
      https://github.com/llvm/llvm-project/commit/b228e2bd92a7959b6a48ac208871ad0cb5c09ebf
  Author: Aart Bik <ajcbik at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
    M mlir/test/Dialect/Linalg/sparse_2d.mlir

  Log Message:
  -----------
  [mlir][sparse] generalize invariant expression handling in sparse compiler

Generalizes invariant handling to anything defined outside the Linalg op
(parameters and SSA computations). Fixes bug that was using parameter number
as tensor number.

Reviewed By: penpornk

Differential Revision: https://reviews.llvm.org/D91985


  Commit: dfbb5a087e20ea1c14300eef600e52360320b390
      https://github.com/llvm/llvm-project/commit/dfbb5a087e20ea1c14300eef600e52360320b390
  Author: Sean Silva <silvasean at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/test/IR/invalid-ops.mlir

  Log Message:
  -----------
  [mlir] Remove SameOperandsAndResultShape when redundant with ElementwiseMappable

SameOperandsAndResultShape and ElementwiseMappable have similar
verification, but in general neither is strictly redundant with the
other.

Examples:
- SameOperandsAndResultShape allows
  `"foo"(%0) : tensor<2xf32> -> tensor<?xf32> but ElementwiseMappable
  does not.
- ElementwiseMappable allows
  `select %scalar_pred, %true_tensor, %false_tensor` but
  SameOperandsAndResultShape does not.

SameOperandsAndResultShape is redundant with ElementwiseMappable when
we can prove that the mixed scalar/non-scalar case cannot happen. In
those situations, `ElementwiseMappable & SameOperandsAndResultShape ==
ElementwiseMappable`:
- Ops with 1 operand: the case of mixed scalar and non-scalar operands
  cannot happen since there is only one operand.
- When SameTypeOperands is also present, the mixed scalar/non-scalar
  operand case cannot happen.

Differential Revision: https://reviews.llvm.org/D91396


  Commit: f8317bb256be2cd8ed81ebc567f0fa626b645f63
      https://github.com/llvm/llvm-project/commit/f8317bb256be2cd8ed81ebc567f0fa626b645f63
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    A llvm/test/CodeGen/RISCV/ghccc-rv32.ll
    A llvm/test/CodeGen/RISCV/ghccc-rv64.ll

  Log Message:
  -----------
  [RISCV] Add GHC calling convention

This is a special calling convention to be used by the GHC compiler.

Differential Revision: https://reviews.llvm.org/D89788


  Commit: a200501bca4dc7f3292d824f249fa21a479e9873
      https://github.com/llvm/llvm-project/commit/a200501bca4dc7f3292d824f249fa21a479e9873
  Author: Adam Czachorowski <adamcz at google.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang-tools-extra/clangd/refactor/tweaks/AddUsing.cpp
    M clang-tools-extra/clangd/unittests/TweakTests.cpp

  Log Message:
  -----------
  [clangd] Addusing tweak: find insertion point after definition

When type/function is defined in the middle of the file, previuosly we
would sometimes insert a "using" line before that definition, leading to
a compilation error. With this fix, we pick a point after such
definition in translation unit.

This is not a perfect solution. For example, it still doesn't handle
"using namespace" directives. It is, however, a significant improvement.

Differential Revision: https://reviews.llvm.org/D92053


  Commit: 77e98eaee2e8d4b9b297b66fda5b1e51e2a69999
      https://github.com/llvm/llvm-project/commit/77e98eaee2e8d4b9b297b66fda5b1e51e2a69999
  Author: cchen <chichunchen844 at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/docs/OpenMPSupport.rst

  Log Message:
  -----------
  [OpenMP50][DOCS] Mark target data non-contiguous as done, NFC.


  Commit: 8d06a678a5c24e98034f6d48a19e734b2c87d22e
      https://github.com/llvm/llvm-project/commit/8d06a678a5c24e98034f6d48a19e734b2c87d22e
  Author: Hsiangkai Wang <kai.wang at sifive.com>
  Date:   2020-11-25 (Wed, 25 Nov 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
    M llvm/unittests/CodeGen/CMakeLists.txt
    A llvm/unittests/CodeGen/SelectionDAGAddressAnalysisTest.cpp

  Log Message:
  -----------
  [SelectionDAG] Avoid aliasing analysis if the object size is unknown.

If the size of memory access is unknown, do not use it to analysis. One
example of unknown size memory access is to load/store scalable vector
objects on the stack.

Differential Revision: https://reviews.llvm.org/D91833


  Commit: 73c181cf3ab3dd8cfe48a97d71dffceec8e00af7
      https://github.com/llvm/llvm-project/commit/73c181cf3ab3dd8cfe48a97d71dffceec8e00af7
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 8d06a678a5c


  Commit: e4d9380245518ee8dcb765eb2e5f4f2788b53cc6
      https://github.com/llvm/llvm-project/commit/e4d9380245518ee8dcb765eb2e5f4f2788b53cc6
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    R llvm/test/CodeGen/RISCV/ghccc-rv32.ll
    R llvm/test/CodeGen/RISCV/ghccc-rv64.ll

  Log Message:
  -----------
  Revert "[RISCV] Add GHC calling convention"

This reverts commit f8317bb256be2cd8ed81ebc567f0fa626b645f63 due to lack of
proper attribution.


  Commit: a8dc2110cd4dd69212a204bc1074729f95d5402a
      https://github.com/llvm/llvm-project/commit/a8dc2110cd4dd69212a204bc1074729f95d5402a
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    A llvm/test/CodeGen/RISCV/ghccc-rv32.ll
    A llvm/test/CodeGen/RISCV/ghccc-rv64.ll

  Log Message:
  -----------
  [RISCV] Add GHC calling convention

This is a special calling convention to be used by the GHC compiler.

Patch by Andreas Schwab (schwab)

Differential Revision: https://reviews.llvm.org/D89788


  Commit: 0c926e6d245bec176bf2554a9f0bd48ef2276678
      https://github.com/llvm/llvm-project/commit/0c926e6d245bec176bf2554a9f0bd48ef2276678
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/lib/AST/ASTImporter.cpp
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [ASTImporter] Make the Import() return value consistent with the map of imported decls when merging ClassTemplateSpecializationDecls

When importing a `ClassTemplateSpecializationDecl` definition into a TU with a matching
`ClassTemplateSpecializationDecl` definition and a more recent forward decl, the ASTImporter
currently will call `MapImported()` for the definitions, but will return the forward declaration
from the `ASTImporter::Import()` call.

This is triggering some assertions in LLDB when we try to fully import some DeclContexts
before we delete the 'From' AST. The returned 'To' Decl before this patch is just the most recent
forward decl but that's not the Decl with the definition to which the ASTImporter will import
the child declarations.

This patch just changes that the ASTImporter returns the definition that the imported Decl was
merged with instead of the found forward declaration.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D92016


  Commit: 28de0fb4863a3cfef06c26260219089123a80c2f
      https://github.com/llvm/llvm-project/commit/28de0fb4863a3cfef06c26260219089123a80c2f
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/lib/Basic/Targets/RISCV.cpp

  Log Message:
  -----------
  [RISCV] Set __GCC_HAVE_SYNC_COMPARE_AND_SWAP_x defines

The RISCV target did not set the GCC atomic compare and swap defines,
unlike other targets. This broke builds for things like glib on RISCV.

Patch by Kristof Provost (kprovost)

Differential Revision: https://reviews.llvm.org/D91784


  Commit: 22169e11c304780627c3ed1cc6bd0daf91e852c3
      https://github.com/llvm/llvm-project/commit/22169e11c304780627c3ed1cc6bd0daf91e852c3
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/test/MC/AsmParser/include.ll

  Log Message:
  -----------
  [MC/AsmParser] Fix use of Arm calling convention in target-agnostic test

Remove target-specific calling convention specifier in target-agnostic test.

Differential Revision: https://reviews.llvm.org/D91042


  Commit: 21b346bd70baa8e69d60988cc41cfd7b6ec98dfc
      https://github.com/llvm/llvm-project/commit/21b346bd70baa8e69d60988cc41cfd7b6ec98dfc
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2020-11-25 (Wed, 25 Nov 2020)

  Changed paths:
    M mlir/cmake/modules/MLIRDetectPythonEnv.cmake

  Log Message:
  -----------
  [mlir] use STATUS instead of CHECK_* in MLIRDetectPythonEnv.cmake

CHECK_* directives for message() where added in Cmake 3.17, LLVM
requires 3.14 as minimum so they may not be intepreted correctly and
just print "CHECK_*" into the message stream. Replace them with STATUS.

Reviewed By: stellaraccident

Differential Revision: https://reviews.llvm.org/D91959


  Commit: c92f29b05e68c251b20242daf0898af7cd4982a6
      https://github.com/llvm/llvm-project/commit/c92f29b05e68c251b20242daf0898af7cd4982a6
  Author: Zarko Todorovski <zarko at ca.ibm.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M clang/docs/ClangCommandLineReference.rst
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/Targets/OSTargets.h
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/test/CodeGen/altivec.c
    A clang/test/Driver/aix-vec-extabi.c
    A clang/test/Preprocessor/aix-vec_extabi.c
    M llvm/include/llvm/CodeGen/CommandFlags.h
    M llvm/include/llvm/Target/TargetOptions.h
    M llvm/lib/CodeGen/CommandFlags.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    A llvm/test/CodeGen/PowerPC/aix-vec-abi.ll

  Log Message:
  -----------
  [AIX] Add mabi=vec-extabi options to enable the AIX extended and default vector ABIs.

Added support for the options mabi=vec-extabi and mabi=vec-default which are analogous to qvecnvol and qnovecnvol when using XL on AIX.
The extended Altivec ABI on AIX is enabled using mabi=vec-extabi in clang and vec-extabi in llc.

Reviewed By: Xiangling_L, DiggerLin

Differential Revision: https://reviews.llvm.org/D89684


  Commit: abbf4802bb4fb519dce436ba16d90c3eeb1135b1
      https://github.com/llvm/llvm-project/commit/abbf4802bb4fb519dce436ba16d90c3eeb1135b1
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2020-11-24 (Tue, 24 Nov 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/SelectionDAGNodes.h

  Log Message:
  -----------
  [SelectionDAG] Add PseudoProbeSDNode to LargestSDNode to fix 32-bt build break.


Compare: https://github.com/llvm/llvm-project/compare/1b63177a56e8...abbf4802bb4f


More information about the All-commits mailing list