[all-commits] [llvm/llvm-project] baba78: [clang] Fix loss of `dllexport` for exported templ...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Mon Jun 10 13:48:02 PDT 2024


  Branch: refs/heads/users/vitalybuka/spr/main.msan-implement-shadow-propagation-for-_mm_dp_pd-_mm_dp_ps-_mm256_dp_ps
  Home:   https://github.com/llvm/llvm-project
  Commit: baba78daf2b3a3ee9bfa21f1f8ff3584aa982ac8
      https://github.com/llvm/llvm-project/commit/baba78daf2b3a3ee9bfa21f1f8ff3584aa982ac8
  Author: Andrew Ng <andrew.ng at sony.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    A clang/test/CodeGenCXX/windows-instantiate-dllexport-template-specialization.cpp

  Log Message:
  -----------
  [clang] Fix loss of `dllexport` for exported template specialization (#94664)

When dropping DLL attributes, ensure that the most recent declaration is
being checked.


  Commit: 77220823daa06c0e177d7571f73d9b69112861cc
      https://github.com/llvm/llvm-project/commit/77220823daa06c0e177d7571f73d9b69112861cc
  Author: aengelke <engelke at in.tum.de>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/lib/MC/MCObjectStreamer.cpp

  Log Message:
  -----------
  [MC] Maintain MCRelaxAll after reset() (#94945)

RelaxAll was set in the constructor, but cleared after reset().


  Commit: 2f9a80b7343606f62b3e907b888a8e9d17c0c551
      https://github.com/llvm/llvm-project/commit/2f9a80b7343606f62b3e907b888a8e9d17c0c551
  Author: aengelke <engelke at in.tum.de>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp

  Log Message:
  -----------
  [MC][NFC] Make ELFUniquingMap a StringMap (#95006)

This avoid std::map, which is slow, and uses a StringMap. Section name,
group name, linked-to name and unique id are encoded into the key for
fast lookup.

This gives a measurable performance boost (>3%) for applications that
compile many small object files (e.g., functions in JIT compilers).


  Commit: 2cddf72042818a03a4d1dfd2b19ae642dc7a2c90
      https://github.com/llvm/llvm-project/commit/2cddf72042818a03a4d1dfd2b19ae642dc7a2c90
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
    M llvm/test/Instrumentation/MemorySanitizer/X86/sse41-intrinsics-x86.ll

  Log Message:
  -----------
  [msan][NFC] Make mask in test more interesting (#94874)

Low 4 and high 4 bits of mask have a different purpose.

Irrelevant for the current implementation, but
will be used in the followup patches.


  Commit: 66f919272e4eab7ff4f74ea03b2b4f899454f551
      https://github.com/llvm/llvm-project/commit/66f919272e4eab7ff4f74ea03b2b4f899454f551
  Author: aengelke <engelke at in.tum.de>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp

  Log Message:
  -----------
  Revert "[MC] Make ELFUniquingMap a StringMap" (#95023)

Reverts llvm/llvm-project#95006

Seems like there's some bug where the section name is empty in the `if
(!Section.isSingleStringRef())`. Revert for now to get builds back to
green.


  Commit: d63be475e889ba3361799f6907b3c95354684c7d
      https://github.com/llvm/llvm-project/commit/d63be475e889ba3361799f6907b3c95354684c7d
  Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
    M clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py

  Log Message:
  -----------
  [clang-tidy] fix(clang-tools-extra/**.py): fix invalid escape sequences (#94028)


  Commit: bc70c29558c6ecb53e61cc8d668768e919e81bde
      https://github.com/llvm/llvm-project/commit/bc70c29558c6ecb53e61cc8d668768e919e81bde
  Author: Piotr Zegar <me at piotrzegar.pl>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.rst
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.rst
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Stream.rst
    M clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py
    M clang-tools-extra/docs/clang-tidy/checks/list.rst

  Log Message:
  -----------
  [clang-tidy][DOC] Update doc for Clang Static Analyzer checks

Fix gen-static-analyzer-docs.py script.
Commit doc for:
 - clang-analyzer-cplusplus.ArrayDelete
 - clang-analyzer-security.SetgidSetuidOrder
 - clang-analyzer-unix.Stream


  Commit: 23a33a72c620f7e37778fa26af46e88a0042cd15
      https://github.com/llvm/llvm-project/commit/23a33a72c620f7e37778fa26af46e88a0042cd15
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M bolt/lib/Rewrite/DWARFRewriter.cpp

  Log Message:
  -----------
  [BOLT] Fix a warning

This patch fixes:

  bolt/lib/Rewrite/DWARFRewriter.cpp:187:18: error: private field
  'Rewriter' is not used [-Werror,-Wunused-private-field]

Note that:

  commit 61df854d4c4d5f955693394d57f09b9fcd35be67
  Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
  Date:   Mon Jun 10 10:46:20 2024 -0700

removed the last use of Rewriter.


  Commit: 43229977fe0f74bcdfeda20e478065a2072a1846
      https://github.com/llvm/llvm-project/commit/43229977fe0f74bcdfeda20e478065a2072a1846
  Author: aengelke <engelke at in.tum.de>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp

  Log Message:
  -----------
  [MC] Don't evaluate name of unnamed symbols (#95021)

There's only one way to create unnamed symbols (createTempSymbol).
Previously, the name was evaluated unconditionally, but often
unnecessarily. Avoid this.

Also the parameter names in the header were wrong, fix these.


  Commit: a9e5f42e2a4bc94dbd8d5bb027dfab230945eca8
      https://github.com/llvm/llvm-project/commit/a9e5f42e2a4bc94dbd8d5bb027dfab230945eca8
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/float16-macros.h

  Log Message:
  -----------
  [libc][math][c23] Temporarily disable float16 on 32-bit Arm (#95027)

See Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/229/builds/27009.


  Commit: c7308d405d286674fbcd427da3f7a06f52dd70a2
      https://github.com/llvm/llvm-project/commit/c7308d405d286674fbcd427da3f7a06f52dd70a2
  Author: David Green <david.green at arm.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/test/CodeGen/AArch64/sve-lsrchain.ll

  Log Message:
  -----------
  [LSR][AArch64] Optimize chain generation based on legal addressing modes (#94453)

LSR will generate chains of related instructions with a known increment
between them. With SVE, in the case of the test case, this can include
increments like 'vscale * 16 + 8'. The idea of this patch is if we have
a '+8' increment already calculated in the chain, we can generate a
(legal) '+ vscale*16' addressing mode from it, allowing us to use the
'[x16, #1, mul vl]' addressing mode instructions.

In order to do this we keep track of the known 'bases' when generating
chains in GenerateIVChain, checking for each if the accumulated
increment expression from the base neatly folds into a legal addressing
mode. If they do not we fall back to the existing LeftOverExpr, whether
it is legal or not.

This is mostly orthogonal to #88124, dealing with the generation of
chains as opposed to rest of LSR. The existing vscale addressing mode
work has greatly helped compared to the last time I looked at this,
allowing us to check that the addressing modes are indeed legal.


  Commit: 65310f34d7edf7924ca4cbe7df836770669f70dc
      https://github.com/llvm/llvm-project/commit/65310f34d7edf7924ca4cbe7df836770669f70dc
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/CeilTest.h
    M libc/test/src/math/FloorTest.h
    M libc/test/src/math/RoundEvenTest.h
    M libc/test/src/math/RoundTest.h
    M libc/test/src/math/TruncTest.h
    A libc/test/src/math/ceilf16_test.cpp
    A libc/test/src/math/floorf16_test.cpp
    A libc/test/src/math/roundevenf16_test.cpp
    A libc/test/src/math/roundf16_test.cpp
    A libc/test/src/math/truncf16_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp

  Log Message:
  -----------
  Reapply "[libc][math][c23] Add MPFR unit tests for {ceil,floor,round,roundeven,trunc}f16 (#94383)" (#94807)

This reverts commit cbe97e959dc67503d7cc44a3810e3124b6d3340e.


  Commit: 52050f3ff388773b9345d421d968a7d1ee880531
      https://github.com/llvm/llvm-project/commit/52050f3ff388773b9345d421d968a7d1ee880531
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M mlir/docs/DialectConversion.md
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [mlir][Transforms] Dialect Conversion: Simplify block conversion API (#94866)

This commit simplifies and improves documentation for the part of the
`ConversionPatternRewriter` API that deals with signature conversions.

There are now two public functions for signature conversion:
* `applySignatureConversion` converts a single block signature. This
function used to take a `Region *` (but converted only the entry block).
It now takes a `Block *`.
* `convertRegionTypes` converts all block signatures of a region.

`convertNonEntryRegionTypes` is removed because it is not widely used
and can easily be expressed with a call to `applySignatureConversion`
inside a loop. (See `Detensorize.cpp` for an example.)

Note: For consistency, `convertRegionTypes` could be renamed to
`applySignatureConversion` (overload) in the future. (Or
`applySignatureConversion` renamed to `convertBlockTypes`.)

Also clarify when a type converter and/or signature conversion object is
needed and for what purpose.

Internal code refactoring (NFC) of `ConversionPatternRewriterImpl` (the
part that deals with signature conversions). This part of the codebase
was quite convoluted and unintuitive.

>From a functional perspective, this change is NFC. However, the public
API changes, thus not marking as NFC.

Note for LLVM integration: When you see
`applySignatureConversion(region, ...)`, replace with
`applySignatureConversion(region->front(), ...)`. In the unlikely case
that you see `convertNonEntryRegionTypes`, apply the same changes as
this commit did to `Detensorize.cpp`.

---------

Co-authored-by: Markus Böck <markus.boeck02 at gmail.com>


  Commit: be067615453bab711fd4996c3c235ca996a306a1
      https://github.com/llvm/llvm-project/commit/be067615453bab711fd4996c3c235ca996a306a1
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M clang/CMakeLists.txt
    M clang/cmake/caches/Release.cmake
    M clang/utils/perf-training/CMakeLists.txt

  Log Message:
  -----------
  [clang][cmake] Fixes for PGO builds when invoking ninja twice (#92591)

This fixes two problems with the 2-stage PGO builds. The first problem
was that the stage2-instrumented and stage2 targets would not be built
on the second ninja invocation. For example:

This would work as expected.
$ ninja -v -C build stage2-instrumented-generate-profdata

Edit a file.
$ touch llvm/lib/Support/StringExtras.cpp

This would rebuild stage1 only and not build stage2-instrumented or
regenerate the profile data.
$ ninja -v -C build stage2-instrumented-generate-profdata

The second problem was that in some cases, the profile data would be
regenerated, but not all of the stage2 targets would be rebuilt. One
common scenario where this would happen is:

This would work as expected.
$ ninja -C build stage2-check-all

This would regenerate the profile data, but then only build the
targets that were needed for install, but weren't needed for
check-all.  This would cause errors like:
ld.lld: error: Function Import: link error: linking module flags
'ProfileSummary': IDs have conflicting values in ...
 This is because the executibles being built for the install target
used the new profile data, but they were linking with libraries that
used the old profile data.
$ ninja -C build stage2-install

With this change we can re-enable PGO for the release builds.


  Commit: 4f416989d80ef6a3b5d759a2b1c576c019cbedbe
      https://github.com/llvm/llvm-project/commit/4f416989d80ef6a3b5d759a2b1c576c019cbedbe
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  Log Message:
  -----------
  [NFC][msan] Prepare function to extract main logic (#94880)


  Commit: 983bf657945e4e400997b127fe4a7b644d63c047
      https://github.com/llvm/llvm-project/commit/983bf657945e4e400997b127fe4a7b644d63c047
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  Log Message:
  -----------
  [NFC][msan] Extract `handleSelectLikeInst` (#94881)

`blendv` instructions are very similar to `select`.
We will add support for them in followup patches.


  Commit: d3c0ed387c478dc07daac575b2ec1216b8044b56
      https://github.com/llvm/llvm-project/commit/d3c0ed387c478dc07daac575b2ec1216b8044b56
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-double.ll
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-float.ll
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-long-double.ll

  Log Message:
  -----------
  [NFCI][metadata][LibCallsShrinkWrap] Use create{Unlikely,Likely}BranchWeights (#89465)

It does not look like 2000 is needed here in particular.

Follow up to #89464


  Commit: 2689604a2ee7a4ac188fb6bc074eed9640e144cd
      https://github.com/llvm/llvm-project/commit/2689604a2ee7a4ac188fb6bc074eed9640e144cd
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.rst
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.rst
    A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Stream.rst
    M clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py
    M clang-tools-extra/docs/clang-tidy/checks/list.rst
    M clang/CMakeLists.txt
    M clang/cmake/caches/Release.cmake
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    A clang/test/CodeGenCXX/windows-instantiate-dllexport-template-specialization.cpp
    M clang/utils/perf-training/CMakeLists.txt
    M libc/include/llvm-libc-macros/float16-macros.h
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/CeilTest.h
    M libc/test/src/math/FloorTest.h
    M libc/test/src/math/RoundEvenTest.h
    M libc/test/src/math/RoundTest.h
    M libc/test/src/math/TruncTest.h
    A libc/test/src/math/ceilf16_test.cpp
    A libc/test/src/math/floorf16_test.cpp
    A libc/test/src/math/roundevenf16_test.cpp
    A libc/test/src/math/roundf16_test.cpp
    A libc/test/src/math/truncf16_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCObjectStreamer.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
    M llvm/test/CodeGen/AArch64/sve-lsrchain.ll
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-double.ll
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-float.ll
    M llvm/test/Transforms/Util/libcalls-shrinkwrap-long-double.ll
    M mlir/docs/DialectConversion.md
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/4984fbc78f37...2689604a2ee7

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list