[all-commits] [llvm/llvm-project] 66f944: [NFC][ubsan] Pre-commit test with missed optimizat...

Alexander Richardson via All-commits all-commits at lists.llvm.org
Sat Dec 7 21:16:46 PST 2024


  Branch: refs/heads/users/arichardson/spr/sanitizercoverage-avoid-unnecessary-inttoptr
  Home:   https://github.com/llvm/llvm-project
  Commit: 66f9448b4b14a117141a3efd014e1240b30b741f
      https://github.com/llvm/llvm-project/commit/66f9448b4b14a117141a3efd014e1240b30b741f
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    A clang/test/CodeGen/allow-ubsan-check-inline.c

  Log Message:
  -----------
  [NFC][ubsan] Pre-commit test with missed optimization (#119012)


  Commit: 1f9f68a1cdbfaed813b35137a600bd76532f0c7e
      https://github.com/llvm/llvm-project/commit/1f9f68a1cdbfaed813b35137a600bd76532f0c7e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/lib/Support/BalancedPartitioning.cpp

  Log Message:
  -----------
  [BalancedPartitioning] Fix -Wdeprecated-this-capture


  Commit: e5480f57bbf95e4e7996ad7d2c260a109af6de6a
      https://github.com/llvm/llvm-project/commit/e5480f57bbf95e4e7996ad7d2c260a109af6de6a
  Author: Giordano Salvador <73959795+e3m3 at users.noreply.github.com>
  Date:   2024-12-08 (Sun, 08 Dec 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td

  Log Message:
  -----------
  [mlir][docs] Fix typos in documentation for MLIR tensor dialect (#119095)

Fix typos in the tensor dialect documentation:

1. Typos/Copy-paste errors referencing invalid `memref` type for
`tensor.dim` op.
2. Miscellaneous typos across other tensor dialect ops.


  Commit: 639e1fa255206c1e82246b49afbd8c1e44a22c11
      https://github.com/llvm/llvm-project/commit/639e1fa255206c1e82246b49afbd8c1e44a22c11
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/include/llvm/ADT/IntervalMap.h

  Log Message:
  -----------
  [IntervalMap] Fix -Wdeprecated-anon-enum-enum-conversion due to InstrProf.h


  Commit: 7787328dd64c750c7acf30b86b31f0d7166c8f27
      https://github.com/llvm/llvm-project/commit/7787328dd64c750c7acf30b86b31f0d7166c8f27
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/test/CodeGen/allow-ubsan-check-inline.c

  Log Message:
  -----------
  [ubsan] Improve lowering of @llvm.allow.ubsan.check (#119013)

This fix the case, when single hot inlined callsite, prevent
checks for all other. This helps to reduce number of removed checks up
to 50% (deppedes on `cutoff-hot` value) .

`ScalarOptimizerLateEPCallback` was happening during
CGSCC walk, after each inlining, but this is effectively
after inlining.

Example, order in comments:

```
static void overflow() {
  // 1. Inline get/set if possible
  // 2. Simplify
  // 3. LowerAllowCheckPass
  set(get() + get());
}

void test() {
  // 4. Inline
  // 5. Nothing for LowerAllowCheckPass
  overflow();
}
```

With this patch it will look like:
```
static void overflow() {
  // 1. Inline get/set if possible
  // 2. Simplify
  set(get() + get());
}

void test() {
  // 3. Inline
  // 4. Simplify
  overflow();
}

// Later, after inliner CGSCC walk complete:
// 5. LowerAllowCheckPass for `overflow`
// 6. LowerAllowCheckPass for `test`
```


  Commit: 4153c2dc0537de926b786efebf1849f9986313ef
      https://github.com/llvm/llvm-project/commit/4153c2dc0537de926b786efebf1849f9986313ef
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/lib/ProfileData/MemProfReader.cpp

  Log Message:
  -----------
  [ProfileData] Avoid deprecated is_pod


  Commit: cb61a5e4209beef64b0a3b621c16010c53ed323a
      https://github.com/llvm/llvm-project/commit/cb61a5e4209beef64b0a3b621c16010c53ed323a
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

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

  Log Message:
  -----------
  [clang-format] Fix an assertion failure in RemoveSemicolon (#117472)

Fixes #117290.


  Commit: 70c1764d7a223b14b38bb394e5020e753be9c869
      https://github.com/llvm/llvm-project/commit/70c1764d7a223b14b38bb394e5020e753be9c869
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/AST/ast-dump-types-json.cpp
    M clang/test/CXX/conv/conv.mem/p4.cpp
    M clang/test/CXX/drs/cwg0xx.cpp
    M clang/test/CXX/drs/cwg13xx.cpp
    M clang/test/CXX/drs/cwg3xx.cpp
    M clang/test/CXX/drs/cwg4xx.cpp
    M clang/test/CXX/drs/cwg5xx.cpp
    M clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
    M clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
    M clang/test/Index/print-type.cpp
    M clang/test/Layout/ms-x86-member-pointers.cpp
    M clang/test/Parser/cxx1z-decomposition.cpp
    M clang/test/SemaCXX/addr-of-overloaded-function.cpp
    M clang/test/SemaCXX/calling-conv-compat.cpp
    M clang/test/SemaCXX/static-cast.cpp
    M clang/unittests/Tooling/Syntax/BuildTreeTest.cpp

  Log Message:
  -----------
  [clang] [Sema] Preserve nested name specifier prefix in MemberPointerType (#118236)

Fixes https://github.com/llvm/llvm-project/issues/118198
Fixes https://github.com/clangd/clangd/issues/2235


  Commit: f0297ae552e1e5aacafc1ed43968041994dc8a6e
      https://github.com/llvm/llvm-project/commit/f0297ae552e1e5aacafc1ed43968041994dc8a6e
  Author: Chandler Carruth <chandlerc at gmail.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.h
    M llvm/lib/IR/Intrinsics.cpp
    M llvm/unittests/IR/IntrinsicsTest.cpp
    M llvm/utils/TableGen/IntrinsicEmitter.cpp

  Log Message:
  -----------
  Switch the intrinsic names to a string table (#118929)

This avoids the need to dynamically relocate each pointer in the table.

To make this work, this PR also moves the binary search of intrinsic
names to an internal function with an adjusted signature, and switches
the unittesting to test against actual intrinsics.


  Commit: 16c2a1016e50051909091da078031a3a04b6c880
      https://github.com/llvm/llvm-project/commit/16c2a1016e50051909091da078031a3a04b6c880
  Author: Valentin Clement (ใƒใƒฌใƒณใ‚ฟใ‚คใƒณ ใ‚ฏใƒฌใƒกใƒณ) <clementval at gmail.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M flang/include/flang/Runtime/CUDA/allocator.h
    M flang/include/flang/Runtime/CUDA/common.h
    M flang/include/flang/Runtime/allocatable.h
    M flang/include/flang/Runtime/allocator-registry.h
    M flang/include/flang/Runtime/descriptor.h
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Optimizer/Builder/Runtime/Allocatable.cpp
    M flang/runtime/CUDA/allocatable.cpp
    M flang/runtime/CUDA/allocator.cpp
    M flang/runtime/CUDA/descriptor.cpp
    M flang/runtime/allocatable.cpp
    M flang/runtime/array-constructor.cpp
    M flang/runtime/descriptor.cpp
    M flang/test/HLFIR/elemental-codegen.fir
    M flang/test/Lower/OpenACC/acc-declare.f90
    M flang/test/Lower/allocatable-polymorphic.f90
    M flang/test/Lower/allocatable-runtime.f90
    M flang/test/Lower/allocate-mold.f90
    M flang/test/Lower/polymorphic.f90
    M flang/unittests/Runtime/CUDA/Allocatable.cpp
    M flang/unittests/Runtime/CUDA/AllocatorCUF.cpp
    M flang/unittests/Runtime/CUDA/Memory.cpp

  Log Message:
  -----------
  Revert "[flang] Allow to pass an async id to allocate the descriptor (#118713)" (#119109)

This reverts commit 7d1c661381d36018fd105f4ad4c2d6dc45e7288b.

This commit breaks some device runtime builds. Need time to investigate.


  Commit: 9a156f6b2b0c892d8713ba907f07f027b24953d8
      https://github.com/llvm/llvm-project/commit/9a156f6b2b0c892d8713ba907f07f027b24953d8
  Author: Stefan Schulze Frielinghaus <stefansf at linux.ibm.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M compiler-rt/lib/asan/asan_interceptors.cpp
    M compiler-rt/lib/asan/asan_interceptors.h
    M compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
    M compiler-rt/lib/memprof/memprof_interceptors.cpp
    M compiler-rt/lib/memprof/memprof_interceptors.h
    M compiler-rt/lib/memprof/memprof_interceptors_memintrinsics.h
    M compiler-rt/lib/msan/msan_interceptors.cpp
    M compiler-rt/lib/msan/msan_poisoning.cpp
    M compiler-rt/lib/nsan/nsan_allocator.cpp
    M compiler-rt/lib/nsan/nsan_interceptors.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp

  Log Message:
  -----------
  [sanitizer] Replace uptr by usize/SIZE_T in interfaces

For some targets uptr is mapped to unsigned int and size_t to unsigned
long and sizeof(int)==sizeof(long) holds.  Still, these are distinct
types and type checking may fail.  Therefore, replace uptr by
usize/SIZE_T wherever a size_t is expected.

Part of #116957


  Commit: 684e79f25415250afa51bfcd294d793720aa4bae
      https://github.com/llvm/llvm-project/commit/684e79f25415250afa51bfcd294d793720aa4bae
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/InstrProfReader.h
    M llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/MemProfReader.cpp
    A llvm/test/tools/llvm-profdata/memprof-yaml-invalid.test
    A llvm/test/tools/llvm-profdata/memprof-yaml.test
    M llvm/tools/llvm-profdata/llvm-profdata.cpp

  Log Message:
  -----------
  [memprof] Add YAML read/write support to llvm-profdata (#118915)

This patch adds YAML read/write support to llvm-profdata.  The primary
intent is to accommodate MemProf profiles in test cases, thereby
avoiding the binary format.

The read support is via llvm-profdata merge.  This is useful when we
want to verify that the compiler does the right thing on a given .ll
file and a MemProf profile in a test case.  In the test case, we would
convert the MemProf profile in YAML to an indexed profile and invoke
the compiler on the .ll file along with the indexed profile.

The write support is via llvm-profdata show --memory.  This is useful
when we wish to convert an indexed MemProf profile to YAML while
writing tests.  We would compile a test case in C++, run it for an
indexed MemProf profile, and then convert it to the text format.


  Commit: ae5fdaea43cbe7dd722f4fef84be005b2a41711d
      https://github.com/llvm/llvm-project/commit/ae5fdaea43cbe7dd722f4fef84be005b2a41711d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M lld/ELF/Relocations.cpp

  Log Message:
  -----------
  [ELF] Simplify printLocation

sym.file is always non-null (since around #78944).


  Commit: ce44640fe29550461120d22b0358e6cac4aed822
      https://github.com/llvm/llvm-project/commit/ce44640fe29550461120d22b0358e6cac4aed822
  Author: Stefan Schulze Frielinghaus <stefansf at linux.ibm.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M compiler-rt/lib/interception/interception.h
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h

  Log Message:
  -----------
  [sanitizer] Add type __sanitizer::ssize (#116957)

Since the sanitizer merge in commit r15-5164-gfa321004f3f628 of GCC
which entails LLVM commit 61a6439f35b6de28ff4aff4450d6fca970292fd5, GCCs
bootstrap is broken on s390 -m31. This is due to commit
ec68dc1ca4d967b599f1202855917d5ec9cae52f which introduces stricter type
checking which is why GCC bootstrap fails with

```
In file included from /gcc/src/libsanitizer/interception/interception.h:18,
                 from /gcc/src/libsanitizer/interception/interception_type_test.cpp:14:
/gcc/src/libsanitizer/interception/interception_type_test.cpp:30:61: error: static assertion failed
   30 | COMPILER_CHECK((__sanitizer::is_same<::SSIZE_T, ::ssize_t>::value));
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/gcc/src/libsanitizer/sanitizer_common/sanitizer_internal_defs.h:363:44: note: in definition of macro 'COMPILER_CHECK'
  363 | #define COMPILER_CHECK(pred) static_assert(pred, "")
      |                                            ^~~~
make[8]: *** [Makefile:469: interception_type_test.lo] Error 1
```

The culprit seems to be that we don't check for equality of type sizes
anymore but rather whether the types are indeed the same. On s390 -m31
we have that `sizeof(int)==sizeof(long)` holds which is why previously
the checks succeeded. They fail now because

```
size_t      => unsigned long
ssize_t     => long
ptrdiff_t   => int
::SSIZE_T   => __sanitizer::sptr => int
::PTRDIFF_T => __sanitizer::sptr => int
```

This is fixed by mapping `SSIZE_T` to `long` in the end.

```
#if defined(__s390__) && !defined(__s390x__)
typedef long ssize;
#else
typedef sptr ssize;
#endif

#define SSIZE_T __sanitizer::ssize
```


  Commit: 8669028c1898ac95a5b14a9eacb1d084ab7d7781
      https://github.com/llvm/llvm-project/commit/8669028c1898ac95a5b14a9eacb1d084ab7d7781
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M lld/ELF/Arch/Mips.cpp
    M lld/ELF/Arch/X86_64.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Symbols.cpp
    M lld/ELF/Writer.cpp

  Log Message:
  -----------
  [ELF] Remove unneeded sym->file check

After #78944 and some follow-ups, sym->file, unless in the initial
Placeholder stage, is guaranteed to be non-null.


  Commit: 6dec33834d1fd89f16e271dde9607c1de9554144
      https://github.com/llvm/llvm-project/commit/6dec33834d1fd89f16e271dde9607c1de9554144
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M compiler-rt/lib/asan/asan_interceptors.cpp
    M compiler-rt/lib/memprof/memprof_interceptors.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc

  Log Message:
  -----------
  [sanitizer] Fix few size types in memprof (#119114)

Fix type in a few related Min() calls.

Follow up to #116957.

Co-authored-by: Stefan Schulze Frielinghaus <stefansf at linux.ibm.com>


  Commit: 118f7b95c8546826f222c13daea47cde4aa97bc9
      https://github.com/llvm/llvm-project/commit/118f7b95c8546826f222c13daea47cde4aa97bc9
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M llvm/test/Instrumentation/SanitizerCoverage/missing_dbg.ll

  Log Message:
  -----------
  [sancov] Regenerate test (#119115)

For #119097.


  Commit: 8c1a3ae4ec41ae4c508707f0b96292cfebcb8961
      https://github.com/llvm/llvm-project/commit/8c1a3ae4ec41ae4c508707f0b96292cfebcb8961
  Author: Alex Richardson <alexrichardson at google.com>
  Date:   2024-12-07 (Sat, 07 Dec 2024)

  Changed paths:
    M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/TokenAnnotator.h
    M clang/lib/Sema/SemaType.cpp
    M clang/test/AST/ast-dump-types-json.cpp
    M clang/test/CXX/conv/conv.mem/p4.cpp
    M clang/test/CXX/drs/cwg0xx.cpp
    M clang/test/CXX/drs/cwg13xx.cpp
    M clang/test/CXX/drs/cwg3xx.cpp
    M clang/test/CXX/drs/cwg4xx.cpp
    M clang/test/CXX/drs/cwg5xx.cpp
    M clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
    M clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
    A clang/test/CodeGen/allow-ubsan-check-inline.c
    M clang/test/Index/print-type.cpp
    M clang/test/Layout/ms-x86-member-pointers.cpp
    M clang/test/Parser/cxx1z-decomposition.cpp
    M clang/test/SemaCXX/addr-of-overloaded-function.cpp
    M clang/test/SemaCXX/calling-conv-compat.cpp
    M clang/test/SemaCXX/static-cast.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
    M compiler-rt/lib/asan/asan_interceptors.cpp
    M compiler-rt/lib/asan/asan_interceptors.h
    M compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
    M compiler-rt/lib/interception/interception.h
    M compiler-rt/lib/memprof/memprof_interceptors.cpp
    M compiler-rt/lib/memprof/memprof_interceptors.h
    M compiler-rt/lib/memprof/memprof_interceptors_memintrinsics.h
    M compiler-rt/lib/msan/msan_interceptors.cpp
    M compiler-rt/lib/msan/msan_poisoning.cpp
    M compiler-rt/lib/nsan/nsan_allocator.cpp
    M compiler-rt/lib/nsan/nsan_interceptors.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M flang/include/flang/Runtime/CUDA/allocator.h
    M flang/include/flang/Runtime/CUDA/common.h
    M flang/include/flang/Runtime/allocatable.h
    M flang/include/flang/Runtime/allocator-registry.h
    M flang/include/flang/Runtime/descriptor.h
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Optimizer/Builder/Runtime/Allocatable.cpp
    M flang/runtime/CUDA/allocatable.cpp
    M flang/runtime/CUDA/allocator.cpp
    M flang/runtime/CUDA/descriptor.cpp
    M flang/runtime/allocatable.cpp
    M flang/runtime/array-constructor.cpp
    M flang/runtime/descriptor.cpp
    M flang/test/HLFIR/elemental-codegen.fir
    M flang/test/Lower/OpenACC/acc-declare.f90
    M flang/test/Lower/allocatable-polymorphic.f90
    M flang/test/Lower/allocatable-runtime.f90
    M flang/test/Lower/allocate-mold.f90
    M flang/test/Lower/polymorphic.f90
    M flang/unittests/Runtime/CUDA/Allocatable.cpp
    M flang/unittests/Runtime/CUDA/AllocatorCUF.cpp
    M flang/unittests/Runtime/CUDA/Memory.cpp
    M lld/ELF/Arch/Mips.cpp
    M lld/ELF/Arch/X86_64.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Symbols.cpp
    M lld/ELF/Writer.cpp
    M llvm/include/llvm/ADT/IntervalMap.h
    M llvm/include/llvm/IR/Intrinsics.h
    M llvm/include/llvm/ProfileData/InstrProfReader.h
    M llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/lib/IR/Intrinsics.cpp
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/MemProfReader.cpp
    M llvm/lib/Support/BalancedPartitioning.cpp
    M llvm/test/Instrumentation/SanitizerCoverage/missing_dbg.ll
    A llvm/test/tools/llvm-profdata/memprof-yaml-invalid.test
    A llvm/test/tools/llvm-profdata/memprof-yaml.test
    M llvm/tools/llvm-profdata/llvm-profdata.cpp
    M llvm/unittests/IR/IntrinsicsTest.cpp
    M llvm/utils/TableGen/IntrinsicEmitter.cpp
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td

  Log Message:
  -----------
  rebase

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/fa78bc00e095...8c1a3ae4ec41

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