[all-commits] [llvm/llvm-project] 01fa55: [tsan][test] Switch SIGPROF to SIGALRM

Fangrui Song via All-commits all-commits at lists.llvm.org
Sat Mar 16 14:25:14 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/sema-allow-wno-main-to-suppress-the-arg-wrong-error
  Home:   https://github.com/llvm/llvm-project
  Commit: 01fa550ff654d6724e6da54c877032baeddff14b
      https://github.com/llvm/llvm-project/commit/01fa550ff654d6724e6da54c877032baeddff14b
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M compiler-rt/test/tsan/signal_reset.cpp

  Log Message:
  -----------
  [tsan][test] Switch SIGPROF to SIGALRM

Followup to #85188.


  Commit: 6818c7b8efef16ff373a1d8a6d7e35ecf14541be
      https://github.com/llvm/llvm-project/commit/6818c7b8efef16ff373a1d8a6d7e35ecf14541be
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M libc/docs/gpu/building.rst
    M libc/docs/gpu/testing.rst
    M libc/docs/gpu/using.rst

  Log Message:
  -----------
  [libc] Update GPU testing documentation (#85459)

Summary:
This documentation was lagging reality and didn't contain much. Update
it with some more information now that it's more mature.


  Commit: ba97dc8c7a8fc26516fbdfe822343bc4d38fe3db
      https://github.com/llvm/llvm-project/commit/ba97dc8c7a8fc26516fbdfe822343bc4d38fe3db
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lldb/source/Host/common/Alarm.cpp

  Log Message:
  -----------
  [lldb] Fix -Wctad-maybe-unsupported in Alarm.cpp (NFC)

llvm-project/lldb/source/Host/common/Alarm.cpp:37:5:
error: 'lock_guard' may not intend to support class template argument deduction [-Werror,-Wctad-maybe-unsupported]
    std::lock_guard alarm_guard(m_alarm_mutex);
    ^


  Commit: 8f2632c45f54d1e91248be81db5d4908d1036213
      https://github.com/llvm/llvm-project/commit/8f2632c45f54d1e91248be81db5d4908d1036213
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lldb/unittests/Host/AlarmTest.cpp

  Log Message:
  -----------
  [lldb][test] Fix -Wctad-maybe-unsupported in AlarmTest.cpp (NFC)

llvm-project/lldb/unittests/Host/AlarmTest.cpp:49:7:
error: 'lock_guard' may not intend to support class template argument deduction [-Werror,-Wctad-maybe-unsupported]
      std::lock_guard guard(m);
      ^


  Commit: 4da2b542b142dac441722e044ee75da2475d9a20
      https://github.com/llvm/llvm-project/commit/4da2b542b142dac441722e044ee75da2475d9a20
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M lldb/source/Commands/CommandObjectDWIMPrint.cpp
    M lldb/test/API/commands/dwim-print/TestDWIMPrint.py

  Log Message:
  -----------
  [lldb] Fix dwim-print to not delete non-result persistent variables (#85152)

`EvaluateExpression` does not always create a new persistent result. If the expression 
is a bare persistent variable, then a new persistent result is not created. This means 
the caller can't assume a new persistent result is created for each evaluation. 
However, `dwim-print` was doing exactly that: assuming a new persistent result for each 
evaluation. This resulted in a bug:

```
(lldb) p int $j = 23
(lldb) p $j
(lldb) p $j
```

The first `p $j` would not create a persistent result, and so `dwim-print` would 
inadvertently delete `$j`. The second `p $j` would fail.

The fix is to try `expr` as a persistent variable, after trying `expr` as a frame 
variable. For persistent variables, this avoids calling `EvaluateExpression`.

Resolves https://github.com/llvm/llvm-project/issues/84806

rdar://124688427


  Commit: 8d7ee4691dadd3a9d831108f77d1f4e511191a44
      https://github.com/llvm/llvm-project/commit/8d7ee4691dadd3a9d831108f77d1f4e511191a44
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/lib/Driver/Driver.cpp
    M clang/tools/driver/driver.cpp

  Log Message:
  -----------
  [clang] Move CCC_OVERRIDE_OPTIONS implementation to Driver (#85425)

Move CCC_OVERRIDE_OPTIONS support to clangDriver so that it may be used outside of the 
clang driver binary.

The override functionality will be used in LLDB, to apply adjustments to ClangImporter 
flags. This will be useful as an escape hatch when there are issues that can be fixed 
by adding or removing clang flags.

The only thing changed is the name, from `ApplyQAOverride` to `applyOverrideOptions`.


  Commit: f128607b89b4818a2265f5ebd09313408277d975
      https://github.com/llvm/llvm-project/commit/f128607b89b4818a2265f5ebd09313408277d975
  Author: Tom Honermann <tom.honermann at intel.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/test/CodeGenCXX/mangle-ms-back-references.cpp

  Log Message:
  -----------
  [clang][MSVC] Correct mangling of thread-safe static initialization variables. (#85300)

Static local variables with dynamic initializers depend on implicitly defined
guard variables to synchronize thread-safe initialization.  These guard
variables may have external linkage and therefore require a stable name for
linkage purposes.  The Microsoft ABI assigns these variables a local name of
'$TSS' followed by a discriminator and mangles them as a static local variable
of type 'int'.  Previously, the '$TSS<discriminator>' portion of the name was
not registered as a back reference candidate and this resulted in incorrect
back references for enclosing class and/or namespace scopes that might be
referenced in the signature of the enclosing function.  This change adds the
previously missing back reference registration.  This matches the mangling
performed by MSVC and resolves incompatibilities when inline functions with
static local variables are inlined across DLL boundaries.

This is an ABI change and has the potential to cause backward compatibility
issues with previous Clang releases.

Fixes #83616


  Commit: 83afcbf5f39b9766fd4e5c7d577e308d71f9edc1
      https://github.com/llvm/llvm-project/commit/83afcbf5f39b9766fd4e5c7d577e308d71f9edc1
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp

  Log Message:
  -----------
  [mlir] Fix -Wunused-variable in DebugTranslation.cpp (NFC)

llvm-project/mlir/lib/Target/LLVMIR/DebugTranslation.cpp:226:10:
error: unused variable '[iter, inserted]' [-Werror,-Wunused-variable]
    auto [iter, inserted] =
         ^
1 error generated.


  Commit: 43fc921795bd130a325c013d60f209b5c6128fc7
      https://github.com/llvm/llvm-project/commit/43fc921795bd130a325c013d60f209b5c6128fc7
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/cmake/modules/HandleLLVMOptions.cmake

  Log Message:
  -----------
  [CMAKE] Enable FatLTO as a build option for LLVM (#80480)

Since LLVM supports `-ffat-lto-objects` we should enable this as an
option in the LLVM build. FatLTO should improve the time it takes to
build tests for LTO enabled builds of the compiler by not linking w/ the
bitcode portion of the object files, which should speed up build times
for LTO builds without disabling optimizations.


  Commit: f3a8af07fa9e9dbc3bfa495b34846e3a5962cc27
      https://github.com/llvm/llvm-project/commit/f3a8af07fa9e9dbc3bfa495b34846e3a5962cc27
  Author: Aart Bik <ajcbik at google.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/StageSparseOperations.cpp
    M mlir/test/Dialect/Bufferization/invalid.mlir
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    A mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_empty.mlir

  Log Message:
  -----------
  [mlir][sparse] best effort finalization of escaping empty sparse tensors (#85482)

This change lifts the restriction that purely allocated empty sparse
tensors cannot escape the method. Instead it makes a best effort to add
a finalizing operation before the escape.

This assumes that
(1) we never build sparse tensors across method boundaries
    (e.g. allocate in one, insert in other method)
(2) if we have other uses of the empty allocation in the
    same method, we assume that either that op will fail
    or will do the finalization for us.

This is best-effort, but fixes some very obvious missing cases.


  Commit: 470040bd4d54f39f9ac0868a2197fa2ae3e6d4f5
      https://github.com/llvm/llvm-project/commit/470040bd4d54f39f9ac0868a2197fa2ae3e6d4f5
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/PluginInterface.h
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp

  Log Message:
  -----------
  [Libomptarget][NFC] Remove warning on return value const


  Commit: 0ead2bd91bd5df4f1d285038d8ebd2f6a5ec569d
      https://github.com/llvm/llvm-project/commit/0ead2bd91bd5df4f1d285038d8ebd2f6a5ec569d
  Author: Bixia Zheng <bixia at google.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp

  Log Message:
  -----------
  [MLIR][LLVM] Suppress unused variable warning. (#85467)


  Commit: 6c3049cd683bac91bd815288d82b25cf695690cc
      https://github.com/llvm/llvm-project/commit/6c3049cd683bac91bd815288d82b25cf695690cc
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M libc/config/baremetal/api.td

  Log Message:
  -----------
  Revert "[libc] Match stdlib.h baremetal entrypoints with types" (#85490)

Reverts llvm/llvm-project#85030

This patch causes build failures when building runtimes for armv6m
```
FAILED: /b/s/w/ir/x/w/llvm_build/include/armv6m-unknown-eabi/stdlib.h 
cd /b/s/w/ir/x/w/llvm-llvm-project/libc/include && /b/s/w/ir/x/w/llvm_build/bin/libc-hdrgen -o /b/s/w/ir/x/w/llvm_build/include/armv6m-unknown-eabi/stdlib.h --header stdlib.h --def /b/s/w/ir/x/w/llvm-llvm-project/libc/include/stdlib.h.def -I /b/s/w/ir/x/w/llvm-llvm-project/libc --e=__assert_fail --e=isalnum --e=isalpha --e=isascii --e=isblank --e=iscntrl --e=isdigit --e=isgraph --e=islower --e=isprint --e=ispunct --e=isspace --e=isupper --e=isxdigit --e=toascii --e=tolower --e=toupper --e=__stack_chk_fail --e=errno --e=bcmp --e=bcopy --e=bzero --e=index --e=memccpy --e=memchr --e=memcmp --e=memcpy --e=memmem --e=memmove --e=mempcpy --e=memrchr --e=memset --e=memset_explicit --e=rindex --e=stpcpy --e=stpncpy --e=strcasecmp --e=strcasestr --e=strcat --e=strchr --e=strchrnul --e=strcmp --e=strcoll --e=strcpy --e=strcspn --e=strerror --e=strerror_r --e=strlcat --e=strlcpy --e=strlen --e=strncasecmp --e=strncat --e=strncmp --e=strncpy --e=strnlen --e=strpbrk --e=strrchr --e=strsep --e=strspn --e=strstr --e=strtok --e=strtok_r --e=strxfrm --e=imaxabs --e=imaxdiv --e=strtoimax --e=strtoumax --e=sprintf --e=snprintf --e=vsprintf --e=vsnprintf --e=stdc_leading_zeros_uc --e=stdc_leading_zeros_us --e=stdc_leading_zeros_ui --e=stdc_leading_zeros_ul --e=stdc_leading_zeros_ull --e=stdc_leading_ones_uc --e=stdc_leading_ones_us --e=stdc_leading_ones_ui --e=stdc_leading_ones_ul --e=stdc_leading_ones_ull --e=stdc_trailing_zeros_uc --e=stdc_trailing_zeros_us --e=stdc_trailing_zeros_ui --e=stdc_trailing_zeros_ul --e=stdc_trailing_zeros_ull --e=stdc_trailing_ones_uc --e=stdc_trailing_ones_us --e=stdc_trailing_ones_ui --e=stdc_trailing_ones_ul --e=stdc_trailing_ones_ull --e=stdc_first_leading_zero_uc --e=stdc_first_leading_zero_us --e=stdc_first_leading_zero_ui --e=stdc_first_leading_zero_ul --e=stdc_first_leading_zero_ull --e=stdc_first_leading_one_uc --e=stdc_first_leading_one_us --e=stdc_first_leading_one_ui --e=stdc_first_leading_one_ul --e=stdc_first_leading_one_ull --e=stdc_first_trailing_zero_uc --e=stdc_first_trailing_zero_us --e=stdc_first_trailing_zero_ui --e=stdc_first_trailing_zero_ul --e=stdc_first_trailing_zero_ull --e=stdc_first_trailing_one_uc --e=stdc_first_trailing_one_us --e=stdc_first_trailing_one_ui --e=stdc_first_trailing_one_ul --e=stdc_first_trailing_one_ull --e=stdc_count_zeros_uc --e=stdc_count_zeros_us --e=stdc_count_zeros_ui --e=stdc_count_zeros_ul --e=stdc_count_zeros_ull --e=stdc_count_ones_uc --e=stdc_count_ones_us --e=stdc_count_ones_ui --e=stdc_count_ones_ul --e=stdc_count_ones_ull --e=stdc_has_single_bit_uc --e=stdc_has_single_bit_us --e=stdc_has_single_bit_ui --e=stdc_has_single_bit_ul --e=stdc_has_single_bit_ull --e=stdc_bit_width_uc --e=stdc_bit_width_us --e=stdc_bit_width_ui --e=stdc_bit_width_ul --e=stdc_bit_width_ull --e=stdc_bit_floor_uc --e=stdc_bit_floor_us --e=stdc_bit_floor_ui --e=stdc_bit_floor_ul --e=stdc_bit_floor_ull --e=stdc_bit_ceil_uc --e=stdc_bit_ceil_us --e=stdc_bit_ceil_ui --e=stdc_bit_ceil_ul --e=stdc_bit_ceil_ull --e=abort --e=abs --e=atoi --e=atof --e=atol --e=atoll --e=bsearch --e=div --e=labs --e=ldiv --e=llabs --e=lldiv --e=qsort --e=qsort_r --e=rand --e=srand --e=strtod --e=strtof --e=strtol --e=strtold --e=strtoll --e=strtoul --e=strtoull --e=feclearexcept --e=fedisableexcept --e=feenableexcept --e=fegetenv --e=fegetexcept --e=fegetexceptflag --e=fegetround --e=feholdexcept --e=fesetenv --e=fesetexceptflag --e=fesetround --e=feraiseexcept --e=fetestexcept --e=feupdateenv --e=acosf --e=acoshf --e=asinf --e=asinhf --e=atanf --e=atanhf --e=ceil --e=ceilf --e=ceill --e=copysign --e=copysignf --e=copysignl --e=cosf --e=coshf --e=erff --e=exp --e=exp10 --e=exp10f --e=exp2 --e=exp2f --e=expf --e=expm1 --e=expm1f --e=fabs --e=fabsf --e=fabsl --e=fdim --e=fdimf --e=fdiml --e=floor --e=floorf --e=floorl --e=fma --e=fmaf --e=fmax --e=fmaxf --e=fmaxl --e=fmin --e=fminf --e=fminl --e=fmod --e=fmodf --e=fmodl --e=frexp --e=frexpf --e=frexpl --e=hypot --e=hypotf --e=ilogb --e=ilogbf --e=ilogbl --e=ldexp --e=ldexpf --e=ldexpl --e=llogb --e=llogbf --e=llogbl --e=llrint --e=llrintf --e=llrintl --e=llround --e=llroundf --e=llroundl --e=log --e=log10 --e=log10f --e=log1p --e=log1pf --e=log2 --e=log2f --e=logb --e=logbf --e=logbl --e=logf --e=lrint --e=lrintf --e=lrintl --e=lround --e=lroundf --e=lroundl --e=modf --e=modff --e=modfl --e=nan --e=nanf --e=nanl --e=nearbyint --e=nearbyintf --e=nearbyintl --e=nextafter --e=nextafterf --e=nextafterl --e=nexttoward --e=nexttowardf --e=nexttowardl --e=powf --e=remainder --e=remainderf --e=remainderl --e=remquo --e=remquof --e=remquol --e=rint --e=rintf --e=rintl --e=round --e=roundf --e=roundl --e=scalbn --e=scalbnf --e=scalbnl --e=sincosf --e=sinf --e=sinhf --e=sqrt --e=sqrtf --e=sqrtl --e=tanf --e=tanhf --e=trunc --e=truncf --e=truncl --e=abshk --e=abshr --e=absk --e=absr --e=abslk --e=abslr --e=exphk --e=expk --e=roundhk --e=roundhr --e=roundk --e=roundr --e=roundlk --e=roundlr --e=rounduhk --e=rounduhr --e=rounduk --e=roundur --e=roundulk --e=roundulr --e=sqrtuhk --e=sqrtuhr --e=sqrtuk --e=sqrtur --e=sqrtulr --e=uhksqrtus --e=uksqrtui /b/s/w/ir/x/w/llvm-llvm-project/libc/config/baremetal/api.td
error: __qsortrcompare_t not found in any standard spec.
```
Original failure:
https://ci.chromium.org/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8753376051397217137/overview
I've tested that reverting this commit would make the build green again.

https://ci.chromium.org/raw/build/logs.chromium.org/fuchsia/led/paulkirth_google.com/29c31064b1fb757cb90a304e79086d644406406dff130569c2e77b066021eee6/+/build.proto?server=chromium-swarm.appspot.com


  Commit: 113214e15b5ce3f3ec313eb1fa91a7038ecd072f
      https://github.com/llvm/llvm-project/commit/113214e15b5ce3f3ec313eb1fa91a7038ecd072f
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M lldb/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp

  Log Message:
  -----------
  [lldb] Update SymbolFilePDBTests for LineEntry change (d5a277d309e9)


  Commit: 8386a388bd4f144889401cc503b2c51bf4bb9275
      https://github.com/llvm/llvm-project/commit/8386a388bd4f144889401cc503b2c51bf4bb9275
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGenHLSL/builtins/clamp-builtin.hlsl
    A clang/test/CodeGenHLSL/builtins/clamp.hlsl
    A clang/test/SemaHLSL/BuiltIns/clamp-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
    A llvm/test/CodeGen/DirectX/clamp-vec.ll
    A llvm/test/CodeGen/DirectX/clamp.ll
    A llvm/test/CodeGen/DirectX/fmax.ll
    A llvm/test/CodeGen/DirectX/fmin.ll
    A llvm/test/CodeGen/DirectX/smax.ll
    A llvm/test/CodeGen/DirectX/smin.ll
    M llvm/test/CodeGen/DirectX/umax.ll
    A llvm/test/CodeGen/DirectX/umin.ll

  Log Message:
  -----------
  [HLSL] implement `clamp` intrinsic (#85424)

closes #70071
- `CGBuiltin.cpp` - Add the unsigned\generic clamp intrinsic emitter.
- `IntrinsicsDirectX.td` - add the `dx.clamp` & `dx.uclamp` intrinsics
- `DXILIntrinsicExpansion.cpp` - add the `clamp` instruction expansion
while maintaining vector form.
- `SemaChecking.cpp` -  Add `clamp`  builtin Sema Checks.
- `Builtins.td` - add a `clamp` builtin
- `hlsl_intrinsics.h` - add the `clamp` api

Why `clamp` as instruction expansion  for DXIL?
1. SPIR-V has a GLSL `clamp` extension via:
-
[FClamp](https://registry.khronos.org/SPIR-V/specs/1.0/GLSL.std.450.html#FClamp)
-
[UClamp](https://registry.khronos.org/SPIR-V/specs/1.0/GLSL.std.450.html#UClamp)
-
[SClamp](https://registry.khronos.org/SPIR-V/specs/1.0/GLSL.std.450.html#SClamp)
2. Further Clamp lowers to `min(max( x, min_range ), max_range)` which
we have float, signed, & unsigned dixilOps.


  Commit: 7c460c6205eedaa24f77d5de272dfd94dc3e9a38
      https://github.com/llvm/llvm-project/commit/7c460c6205eedaa24f77d5de272dfd94dc3e9a38
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Fix a bug in annotating FunctionDeclarationName (#85361)

A name is not a FunctionDeclarationName if it's preceded by an
Objective-C keyword.

Fixes #84578.


  Commit: fadc38efed815511c21032abab4b71e4320adc1c
      https://github.com/llvm/llvm-project/commit/fadc38efed815511c21032abab4b71e4320adc1c
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M mlir/test/Integration/Dialect/Memref/reinterpret-cast-runtime-verification.mlir
    M mlir/test/Integration/Dialect/Memref/subview-runtime-verification.mlir

  Log Message:
  -----------
  [mlir][memref] Fix memory leaks in runtime verification tests (#85362)

Change `memref.alloc` to `memref.alloca`, which does not require manual
deallocation.


  Commit: 513cdb82223a106f183b49a40d9acb1f7efbbe7e
      https://github.com/llvm/llvm-project/commit/513cdb82223a106f183b49a40d9acb1f7efbbe7e
  Author: Justin Fargnoli <justinfargnoli at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Arith/IR/ArithDialect.cpp
    M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
    M mlir/lib/Dialect/Func/IR/FuncOps.cpp
    M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tosa/CMakeLists.txt
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp

  Log Message:
  -----------
  [mlir] Declare promised interfaces for all dialects (#78368)

This PR adds promised interface declarations for all interfaces declared
in `InitAllDialects.h`.

Promised interfaces allow a dialect to declare that it will have an
implementation of a particular interface, crashing the program if one
isn't provided when the interface is used.


  Commit: 53c44187538794a749746339595aa62ec08b3f4a
      https://github.com/llvm/llvm-project/commit/53c44187538794a749746339595aa62ec08b3f4a
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-matmul-masked-vec.mlir
    M mlir/test/Integration/Dialect/Tosa/CPU/test-fully-connected.mlir

  Log Message:
  -----------
  [mlir][linalg, tosa] Fix memory leaks in integration tests (#85366)

Buffers are no longer deallocation by One-Shot Bufferize. This is now
done by a separate buffer deallocation pass.

Also fix a bug in the `vector.mask` folding, which was triggered by
`-buffer-deallocation-pipeline`, which runs the canonicalizer.


  Commit: 426e6945897afbec01c042bec4771522a2aac176
      https://github.com/llvm/llvm-project/commit/426e6945897afbec01c042bec4771522a2aac176
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/lib/Format/BreakableToken.h
    M clang/lib/Format/ContinuationIndenter.h
    M clang/lib/Format/Encoding.h
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatInternal.h
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.h
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/Macros.h
    M clang/lib/Format/SortJavaScriptImports.h
    M clang/lib/Format/TokenAnalyzer.h
    M clang/lib/Format/TokenAnnotator.h
    M clang/lib/Format/UnwrappedLineFormatter.h
    M clang/lib/Format/UnwrappedLineParser.h
    M clang/lib/Format/WhitespaceManager.h

  Log Message:
  -----------
  [clang-format][NFC] Delete redundant and extraneous #include lines


  Commit: 5a3cc7ba24c564a19a7812efd79ecd224b8193f5
      https://github.com/llvm/llvm-project/commit/5a3cc7ba24c564a19a7812efd79ecd224b8193f5
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/lib/Passes/PassBuilder.cpp

  Log Message:
  -----------
  [PassBuilder] Expose parametrized passes related functions (#85357)

Some targets have passes with parameters, e.g. ARM, AMDGPU and MIPS.
For example, AMDGPU has a pass `AMDGPUAtomicOptimizerPass`
which need a `ScanOption`, this commit enables the syntax
like `-passes=amdgpu-atomic-optimizer<strategy=dpp>` for backend passes.


  Commit: 3e69e5a15782a5776a3245170aeb5d97ef746fa5
      https://github.com/llvm/llvm-project/commit/3e69e5a15782a5776a3245170aeb5d97ef746fa5
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/SemaTemplate/concepts.cpp

  Log Message:
  -----------
  [Concepts] Add Decls from the outer scope of the current lambda for conversion function constraints (#83420)

This fixes the case shown by
https://github.com/llvm/llvm-project/issues/64808#issuecomment-1929131611.

Similar to
https://github.com/llvm/llvm-project/commit/f9caa12328b265b77221fe7a310d4504673d814a,
we have some calls to constraint checking for a lambda's conversion
function while determining the conversion sequence.

This patch addresses the problem where the requires-expression within
such a lambda references to a Decl outside of the lambda by adding these
Decls to the current instantiation scope.

I'm abusing the flag `ForOverloadResolution` of
CheckFunctionConstraints, which is actually meant to consider the Decls
from parent DeclContexts.

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>


  Commit: 426bf0c915aca9e9d78b6192898b95a44d9afcf4
      https://github.com/llvm/llvm-project/commit/426bf0c915aca9e9d78b6192898b95a44d9afcf4
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/test/AST/Interp/builtin-functions.cpp

  Log Message:
  -----------
  [clang][Interp] Try to fix builtin-functions test on AIX

See
https://github.com/llvm/llvm-project/commit/0a739eb75fe68b1cec4e4aaad8b5395bb5da9a89#commitcomment-139850284


  Commit: dbbdee2ea2156170062813fb3d7f2c023d65e02d
      https://github.com/llvm/llvm-project/commit/dbbdee2ea2156170062813fb3d7f2c023d65e02d
  Author: Stella Laurenzo <stellaraccident at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/IR/CMakeLists.txt
    M mlir/lib/Dialect/MLProgram/IR/MLProgramDialect.cpp
    A mlir/test/Dialect/MLProgram/inlining.mlir

  Log Message:
  -----------
  [mlir] Make the ml_program dialect allow all of its operations to be inlined. (#85479)


  Commit: fce046ca5b7edb4c0d37a6eb580154ccb7dda966
      https://github.com/llvm/llvm-project/commit/fce046ca5b7edb4c0d37a6eb580154ccb7dda966
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir][bazel] Move InliningUtils into a separate target. (#85411)

Various (in-tree as well as downstream) targets currently depend on
`InliningUtils.h` to avoid circular dependencies. E.g. `TransformUtils`
depends on `ArithDialect`, so `ArithDialect` can't depend on
`TransformUtils` exporting `InliningUtils.h`. This change exposes that
header and it's implementation as a separate target. Having targets that
implement all the declared functions is the preferred approach for bazel
build graphs.

See also PR #84878, which moves the interface definitions to a separate
file in the `Interfaces` directory. This turned out to be controversial
and putting it in a different directory didn't seem to have any support
either. Instead, this PR only changes the bazel build without moving any
C++ code.


  Commit: dec63221d56e8092557f29f1f2c127828d7521bb
      https://github.com/llvm/llvm-project/commit/dec63221d56e8092557f29f1f2c127828d7521bb
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml

  Log Message:
  -----------
  [GitHub][workflows] Use latest clang-format version 18.1.1 (#85502)


  Commit: a02b79f3fc765af77ad565e907989c25b2427fe5
      https://github.com/llvm/llvm-project/commit/a02b79f3fc765af77ad565e907989c25b2427fe5
  Author: Brad Smith <brad at comstyle.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp

  Log Message:
  -----------
  [Mips][NFC] Garbage collect unused code (#85499)


  Commit: 5ac784d1d00ce4733d07c3432ff946497a249e51
      https://github.com/llvm/llvm-project/commit/5ac784d1d00ce4733d07c3432ff946497a249e51
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/include/clang/Format/.clang-format
    M clang/lib/Format/.clang-format
    M clang/tools/clang-format/.clang-format
    M clang/unittests/Format/.clang-format

  Log Message:
  -----------
  Revert "[clang-format][NFC] Don't use clang-format style in config files"

This reverts commit c69ec700adec315b3daa55742f2ef655242fa297, which has been
obsolete since commit dec63221d56e because the clang-format style was added
in version 18.


  Commit: f1ca0b6ce85ba43faf5064e333080092b31eb4c9
      https://github.com/llvm/llvm-project/commit/f1ca0b6ce85ba43faf5064e333080092b31eb4c9
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml

  Log Message:
  -----------
  Revert "[GitHub][workflows] Use latest clang-format version 18.1.1 (#85502)"

This reverts commit dec63221d56e8092557f29f1f2c127828d7521bb.

This probably needs more discussion before we can land it. The consensus
(from what I can gather) in https://discourse.llvm.org/t/rfc-clang-format-all-the-things/76614
is that we should be careful with version upgrades for consistency.


  Commit: ddff198e1133b02271fbb002756ec91b54cf1a68
      https://github.com/llvm/llvm-project/commit/ddff198e1133b02271fbb002756ec91b54cf1a68
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [bazel] Add missing dependency for b43965adacfafc4dc6b5ec17b4bea839372b7626


  Commit: 6f39c1e2844c96f222a0c6e564c0d3e52c0c2feb
      https://github.com/llvm/llvm-project/commit/6f39c1e2844c96f222a0c6e564c0d3e52c0c2feb
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml

  Log Message:
  -----------
  [GitHub][workflows] Use latest clang-format version 18.1.1 (#85502)


  Commit: 367f355fbfe30b1769368c93f30e04b2ecba613e
      https://github.com/llvm/llvm-project/commit/367f355fbfe30b1769368c93f30e04b2ecba613e
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/DeclCXX.cpp
    M clang/test/SemaCXX/lambda-expressions.cpp

  Log Message:
  -----------
  Reapply "[clang] Fix crash when declaring invalid lambda member" (#85427)

This re-applies #74110 with the crashing code disabled in C++11. I'll
try to fix the new crash in it's own patch.


  Commit: 8e69052b0e2f3b1bc7dbcf56a0c771e30d2edbf7
      https://github.com/llvm/llvm-project/commit/8e69052b0e2f3b1bc7dbcf56a0c771e30d2edbf7
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/test/AST/Interp/literals.cpp

  Log Message:
  -----------
  [clang][Interp] Handle ArrayTypeTraitExprs


  Commit: 12978b3e23a2766732595391c193e5631f40a3db
      https://github.com/llvm/llvm-project/commit/12978b3e23a2766732595391c193e5631f40a3db
  Author: Jakub Mazurkiewicz <mazkuba3 at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/__compare/partial_order.h
    M libcxx/include/__compare/strong_order.h
    M libcxx/include/__compare/weak_order.h
    M libcxx/include/__iterator/iter_move.h
    M libcxx/include/__ranges/access.h
    M libcxx/include/__ranges/rbegin.h
    M libcxx/include/__ranges/rend.h
    M libcxx/include/__ranges/size.h
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.swap/iter_swap.pass.cpp
    M libcxx/test/std/ranges/range.access/begin.pass.cpp
    M libcxx/test/std/ranges/range.access/end.pass.cpp
    M libcxx/test/std/ranges/range.access/rbegin.pass.cpp
    M libcxx/test/std/ranges/range.access/rend.pass.cpp
    M libcxx/test/std/ranges/range.access/size.pass.cpp
    A libcxx/test/std/ranges/robust_against_poison_pills.compile.pass.cpp

  Log Message:
  -----------
  [libc++] P2602R2 Poison Pills are Too Toxic (#74534)

Implements [P2602R2 Poison Pills are Too
Toxic](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2602r2.html)
as a DR in C++20 mode.


  Commit: 5bcb78141c628d9bd7a0b6e398858282c16038d3
      https://github.com/llvm/llvm-project/commit/5bcb78141c628d9bd7a0b6e398858282c16038d3
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/format_functions.h
    M libcxx/include/__format/formatter_floating_point.h
    M libcxx/include/format
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv

  Log Message:
  -----------
  [libc++] Remove <locale> includes from <format> (#85478)

This reduces the include time from 767ms to 691ms.


  Commit: 6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e
      https://github.com/llvm/llvm-project/commit/6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M openmp/runtime/src/kmp.h

  Log Message:
  -----------
  Revert "[openmp] __kmp_x86_cpuid fix for i386/PIC builds." (#85526)

Reverts llvm/llvm-project#84626


  Commit: 662010e5398e07287242688c144bd11faaf73861
      https://github.com/llvm/llvm-project/commit/662010e5398e07287242688c144bd11faaf73861
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/include/complex

  Log Message:
  -----------
  [libc++][NFC] Use the tuple forward declaration header for tuple forward declarations


  Commit: 9d5edfde5c3dbc4eb559d316e82e664f291fc2bf
      https://github.com/llvm/llvm-project/commit/9d5edfde5c3dbc4eb559d316e82e664f291fc2bf
  Author: alx32 <103613512+alx32 at users.noreply.github.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64_32.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/macho-relative-method-lists.test
    M llvm/tools/llvm-objdump/MachODump.cpp

  Log Message:
  -----------
  [llvm-objdump][macho] Add support for ObjC relative method lists (#85477)

For Mach-O, ld64 supports the -fobjc-relative-method-lists flag which
changes the format in which method lists are generated. The format uses
delta encoding vs the original direct-pointer encoding.
This change adds support to llvm-objdump and llvm-otool for
decoding/dumping of method lists in the delta format. Previously, if a
binary with this information format was passed to the tooling, it would
output invalid information, trying to parse the delta lists as pointer
lists.
After this change, the tooling will output correct information if a
binary in this format is encountered.
The output format is closest feasible match to XCode 15.1's otool
output. Tests are included for both 32bit and 64bit binaries.

The code style was matched as close as possible to existing
implementation of parsing non-delta method lists.

Diff between llvm-objdump and XCode 15.1 otool:

![image](https://github.com/llvm/llvm-project/assets/103613512/2277e3ff-d59c-4fff-b93a-e0587ee740a6)

Note: This is a retry of this PR:
https://github.com/llvm/llvm-project/pull/84250
On the original PR, the armv7+armv8 builds were failing due to absolute
offsets being different.

Co-authored-by: Alex B <alexborcan at meta.com>


  Commit: 74d1a40915834cbf0629f8d34a7265734d4d9073
      https://github.com/llvm/llvm-project/commit/74d1a40915834cbf0629f8d34a7265734d4d9073
  Author: Sirraide <aeternalmail at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/SemaCXX/cxx23-assume.cpp

  Log Message:
  -----------
  [Clang] Ignore assumptions with side effects at compile time (#85534)

Fixes #85519.


  Commit: 618ce78603241cda3483da0532ef92254bd748cb
      https://github.com/llvm/llvm-project/commit/618ce78603241cda3483da0532ef92254bd748cb
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/include/mutex

  Log Message:
  -----------
  [libc++][NFC] Simplify scoped_lock::__unlock_unpack a bit (#85517)


  Commit: f694f632d9f600601c3dd7a7385e1ab6e2385cd9
      https://github.com/llvm/llvm-project/commit/f694f632d9f600601c3dd7a7385e1ab6e2385cd9
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/include/chrono
    M libcxx/test/libcxx/transitive_includes/cxx20.csv

  Log Message:
  -----------
  [libc++] Add <locale> include in <chrono> (#85521)

I accidentally removed this transitive include in #85478.


  Commit: c51095f51b770f0663b65dd8a651601fca15701e
      https://github.com/llvm/llvm-project/commit/c51095f51b770f0663b65dd8a651601fca15701e
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/include/clang/Basic/AllDiagnostics.h
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/Diagnostic.td
    M clang/include/clang/Basic/DiagnosticIDs.h
    A clang/include/clang/Basic/DiagnosticInstallAPI.h
    A clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    A clang/include/clang/InstallAPI/DylibVerifier.h
    A clang/include/clang/InstallAPI/InstallAPIDiagnostic.h
    M clang/lib/Basic/DiagnosticIDs.cpp
    M clang/test/InstallAPI/driver-invalid-options.test
    M clang/test/InstallAPI/functions.test
    M clang/tools/clang-installapi/CMakeLists.txt
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    A clang/tools/clang-installapi/InstallAPIOpts.td
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M llvm/lib/TextAPI/TextStub.cpp

  Log Message:
  -----------
  [InstallAPI] Add installapi specific options & diagnostics (#85100)

* A lot of `tapi installapi` options are already shared with clang, but
not all. This patch handles installapi-specific options by filtering for
them in the initial argv input, then passing the rest to the clang
driver.
* Installapi not only generates a text file but also reports to library
developers when there are inconsistencies between an interface and its
implementation. To allow this, add support for reporting installapi
diagnostics. This will be leveraged in the verifier service.


  Commit: f2794ccede6d32a6b5ef7a376ced420331e2be27
      https://github.com/llvm/llvm-project/commit/f2794ccede6d32a6b5ef7a376ced420331e2be27
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/include/clang/AST/Availability.h
    M clang/include/clang/InstallAPI/Context.h
    M clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/include/clang/InstallAPI/Frontend.h
    M clang/include/clang/InstallAPI/FrontendRecords.h
    M clang/include/clang/InstallAPI/MachO.h
    M clang/lib/InstallAPI/CMakeLists.txt
    A clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    M clang/lib/InstallAPI/Visitor.cpp
    A clang/test/InstallAPI/asm.test
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    M clang/tools/clang-installapi/Options.cpp
    M llvm/include/llvm/TextAPI/Record.h

  Log Message:
  -----------
  [InstallAPI] Introduce Basic Verifier (#85106)

This adds basic support for calling the verifier on global declarations
that are expected to represent symbol exports. The driver now
exclusively uses this for knowing what symbols make up a TBD file.
Future patches will check against the dylib's symbol table.


  Commit: c9325f8a2e7ec9bb9e0b28320aab4034bcb94a0d
      https://github.com/llvm/llvm-project/commit/c9325f8a2e7ec9bb9e0b28320aab4034bcb94a0d
  Author: Usman Nadeem <mnadeem at quicinc.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
    M llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll
    A llvm/test/Transforms/DFAJumpThreading/unpredictable-heuristic.ll

  Log Message:
  -----------
  [DFAJumpThreading] Add an early exit heuristic for unpredictable values (#85015)

Right now the algorithm does not exit on unpredictable values. It
waits until all the paths have been enumerated to see if any of
those paths have that value. Waiting this late leads to a lot of
wasteful computation and higher compile time.

In this patch I have added a heuristic that checks if the value
comes from the same inner loops as the switch, if so, then it is
likely that the value will also be seen on a threadable path and
the code in `getStateDefMap()` return an empty map.

I tested this on the llvm test suite and the only change in the
number of threaded switches was in 7zip (before 23, after 18).
In all of those cases the current algorithm was partially threading
the loop because it was hitting a limit on the number of paths to
be explored. On increasing this limit even the current algorithm
finds paths where the unpredictable value is seen.

Compile time(with pass enabled by default and this patch):

https://llvm-compile-time-tracker.com/compare.php?from=8c5e9cf737138aba22a4a8f64ef2c5efc80dd7f9&to=42c75d888058b35c6d15901b34e36251d8f766b9&stat=instructions:u


  Commit: 0847c903c8a04a2bdf53d5f1b93be5705d998801
      https://github.com/llvm/llvm-project/commit/0847c903c8a04a2bdf53d5f1b93be5705d998801
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp

  Log Message:
  -----------
  Revert "[libc++] Fix tests on musl (#85085)"

This reverts commit b61fb18456ecd798b2fc340367018ab3109ebfae.

This commit landed with build failures in the pre-commit CI
https://buildkite.com/llvm-project/libcxx-ci/builds/34153


  Commit: e77378cc14ec712942452aca155addacbe904c8f
      https://github.com/llvm/llvm-project/commit/e77378cc14ec712942452aca155addacbe904c8f
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-lifetime-ends.ll

  Log Message:
  -----------
  [Matrix] Adjust lifetime.ends during multiply fusion. (#84914)

At the moment, loads introduced by multiply fusion may be placed after
an objects lifetime has been terminated by lifetime.end. This introduces
reads to dead objects.

To avoid this, first collect all lifetime.end calls in the function.
During fusion, we deal with any lifetime.end calls that may alias any of
the loads.

Such lifetime.end calls are either moved when possible (both the
lifetime.end and the store are in the same block) or deleted.

PR: https://github.com/llvm/llvm-project/pull/84914


  Commit: 2867095917cef0d01a68b112bcb01e2f85de4308
      https://github.com/llvm/llvm-project/commit/2867095917cef0d01a68b112bcb01e2f85de4308
  Author: alirezamoshtaghi <124719818+alirezamoshtaghi at users.noreply.github.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang-tools-extra/clangd/unittests/tweaks/ExtractVariableTests.cpp
    M clang/lib/AST/Expr.cpp

  Log Message:
  -----------
  [clang] Skip implicit designators in DesignatedInitExpr::getBeginLoc (#83369)

Fixes https://github.com/llvm/llvm-project/issues/83185


  Commit: 84b5178124e47f6019b56c04abcfb978a94b1c3c
      https://github.com/llvm/llvm-project/commit/84b5178124e47f6019b56c04abcfb978a94b1c3c
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/FormatTest.cpp

  Log Message:
  -----------
  [clang-format] Correctly parse C++11 attributes in enum specifiers (#85498)

Fixes #85476.


  Commit: 3aa7d5b9726ba51fc943ad80c11369264806fcce
      https://github.com/llvm/llvm-project/commit/3aa7d5b9726ba51fc943ad80c11369264806fcce
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml
    M clang-tools-extra/clangd/unittests/tweaks/ExtractVariableTests.cpp
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Availability.h
    M clang/include/clang/Basic/AllDiagnostics.h
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/Diagnostic.td
    M clang/include/clang/Basic/DiagnosticIDs.h
    A clang/include/clang/Basic/DiagnosticInstallAPI.h
    A clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Format/.clang-format
    M clang/include/clang/InstallAPI/Context.h
    A clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/include/clang/InstallAPI/Frontend.h
    M clang/include/clang/InstallAPI/FrontendRecords.h
    A clang/include/clang/InstallAPI/InstallAPIDiagnostic.h
    M clang/include/clang/InstallAPI/MachO.h
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/Basic/DiagnosticIDs.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Format/.clang-format
    M clang/lib/Format/BreakableToken.h
    M clang/lib/Format/ContinuationIndenter.h
    M clang/lib/Format/Encoding.h
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatInternal.h
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.h
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/Macros.h
    M clang/lib/Format/SortJavaScriptImports.h
    M clang/lib/Format/TokenAnalyzer.h
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/TokenAnnotator.h
    M clang/lib/Format/UnwrappedLineFormatter.h
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Format/UnwrappedLineParser.h
    M clang/lib/Format/WhitespaceManager.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/InstallAPI/CMakeLists.txt
    A clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    M clang/lib/InstallAPI/Visitor.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/AST/Interp/builtin-functions.cpp
    M clang/test/AST/Interp/literals.cpp
    M clang/test/CodeGenCXX/mangle-ms-back-references.cpp
    A clang/test/CodeGenHLSL/builtins/clamp-builtin.hlsl
    A clang/test/CodeGenHLSL/builtins/clamp.hlsl
    A clang/test/InstallAPI/asm.test
    M clang/test/InstallAPI/driver-invalid-options.test
    M clang/test/InstallAPI/functions.test
    M clang/test/SemaCXX/cxx23-assume.cpp
    M clang/test/SemaCXX/lambda-expressions.cpp
    A clang/test/SemaHLSL/BuiltIns/clamp-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl
    M clang/test/SemaTemplate/concepts.cpp
    M clang/tools/clang-format/.clang-format
    M clang/tools/clang-installapi/CMakeLists.txt
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    A clang/tools/clang-installapi/InstallAPIOpts.td
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M clang/tools/driver/driver.cpp
    M clang/unittests/Format/.clang-format
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M compiler-rt/test/tsan/signal_reset.cpp
    M libc/config/baremetal/api.td
    M libc/docs/gpu/building.rst
    M libc/docs/gpu/testing.rst
    M libc/docs/gpu/using.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/__compare/partial_order.h
    M libcxx/include/__compare/strong_order.h
    M libcxx/include/__compare/weak_order.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/format_functions.h
    M libcxx/include/__format/formatter_floating_point.h
    M libcxx/include/__iterator/iter_move.h
    M libcxx/include/__ranges/access.h
    M libcxx/include/__ranges/rbegin.h
    M libcxx/include/__ranges/rend.h
    M libcxx/include/__ranges/size.h
    M libcxx/include/chrono
    M libcxx/include/complex
    M libcxx/include/format
    M libcxx/include/mutex
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.swap/iter_swap.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
    M libcxx/test/std/ranges/range.access/begin.pass.cpp
    M libcxx/test/std/ranges/range.access/end.pass.cpp
    M libcxx/test/std/ranges/range.access/rbegin.pass.cpp
    M libcxx/test/std/ranges/range.access/rend.pass.cpp
    M libcxx/test/std/ranges/range.access/size.pass.cpp
    A libcxx/test/std/ranges/robust_against_poison_pills.compile.pass.cpp
    M lldb/source/Commands/CommandObjectDWIMPrint.cpp
    M lldb/source/Host/common/Alarm.cpp
    M lldb/test/API/commands/dwim-print/TestDWIMPrint.py
    M lldb/unittests/Host/AlarmTest.cpp
    M lldb/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/cmake/modules/HandleLLVMOptions.cmake
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/include/llvm/TextAPI/Record.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
    M llvm/lib/TextAPI/TextStub.cpp
    M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
    A llvm/test/CodeGen/DirectX/clamp-vec.ll
    A llvm/test/CodeGen/DirectX/clamp.ll
    A llvm/test/CodeGen/DirectX/fmax.ll
    A llvm/test/CodeGen/DirectX/fmin.ll
    A llvm/test/CodeGen/DirectX/smax.ll
    A llvm/test/CodeGen/DirectX/smin.ll
    M llvm/test/CodeGen/DirectX/umax.ll
    A llvm/test/CodeGen/DirectX/umin.ll
    M llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll
    A llvm/test/Transforms/DFAJumpThreading/unpredictable-heuristic.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-lifetime-ends.ll
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64_32.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/macho-relative-method-lists.test
    M llvm/tools/llvm-objdump/MachODump.cpp
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Arith/IR/ArithDialect.cpp
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
    M mlir/lib/Dialect/Func/IR/FuncOps.cpp
    M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
    M mlir/lib/Dialect/MLProgram/IR/CMakeLists.txt
    M mlir/lib/Dialect/MLProgram/IR/MLProgramDialect.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/StageSparseOperations.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tosa/CMakeLists.txt
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/test/Dialect/Bufferization/invalid.mlir
    A mlir/test/Dialect/MLProgram/inlining.mlir
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-matmul-masked-vec.mlir
    M mlir/test/Integration/Dialect/Memref/reinterpret-cast-runtime-verification.mlir
    M mlir/test/Integration/Dialect/Memref/subview-runtime-verification.mlir
    A mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_empty.mlir
    M mlir/test/Integration/Dialect/Tosa/CPU/test-fully-connected.mlir
    M openmp/libomptarget/plugins-nextgen/common/include/PluginInterface.h
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp
    M openmp/runtime/src/kmp.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  add release note

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/0fd3675447f4...3aa7d5b9726b

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