[all-commits] [llvm/llvm-project] a038f9: [clang][Interp] Fix virtual calls with reference i...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Fri Mar 1 09:48:49 PST 2024


  Branch: refs/heads/users/alexey-bataev/spr/slptry-to-vectorize-small-graph-with-extractelements-used-in-buildvector
  Home:   https://github.com/llvm/llvm-project
  Commit: a038f9758e02812803b7efce10ecf784f9842bbb
      https://github.com/llvm/llvm-project/commit/a038f9758e02812803b7efce10ecf784f9842bbb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    M clang/test/SemaCXX/undefined-internal.cpp

  Log Message:
  -----------
  [clang][Interp] Fix virtual calls with reference instance pointers

getCXXRecordType() on those types does not return the type we need.
Use getPointeeCXXRecordType() instead in those cases.


  Commit: 06bd74ba4ac5229f01b64772b49e025be5eb7b53
      https://github.com/llvm/llvm-project/commit/06bd74ba4ac5229f01b64772b49e025be5eb7b53
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplate.cpp
    A clang/test/SemaCXX/GH83461.cpp

  Log Message:
  -----------
  Fix implementation of [temp.param]p14's first sentence. (#83487)

The first sentence says:

If a template-parameter of a class template, variable template, or alias
template has a default template-argument, each subsequent
template-parameter shall either have a default template-argument
supplied or be a template parameter pack.

However, we were only testing for "not a function function template",
and referring to an older version of the standard. As far as I can tell,
CWG2032 added the variable-template, and the alias-template pre-dates
the standard on github.

This patch started as a bug fix for #83461 , but ended up fixing a
number of similar cases, so those are validated as well.


  Commit: 601a9587a1a7eb8dd6377c4ab332edd3bce97a98
      https://github.com/llvm/llvm-project/commit/601a9587a1a7eb8dd6377c4ab332edd3bce97a98
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M flang/docs/Directives.md
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    A flang/test/Parser/assume-aligned.f90

  Log Message:
  -----------
  [Flang] Add support for assume_aligned directive (#81747)

This adds the parsing (and unparse) of the compiler drective assume_aligned.

The compiler will issue a warning that the directive is ignored.


  Commit: 2b4d67bf59d609321701540a15f48eda04688652
      https://github.com/llvm/llvm-project/commit/2b4d67bf59d609321701540a15f48eda04688652
  Author: Vinayak Dev <104419489+vinayakdsci at users.noreply.github.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/SemaCXX/warn-unused-variables.cpp

  Log Message:
  -----------
  [Clang][Sema]: Allow copy constructor side effects (#81127)

Copy constructors can have initialization with side effects, and thus
clang should not emit a warning when -Wunused-variable is used in this
context. Currently however, a warning is emitted.

Now, compilation happens without warnings.

Fixes #79518


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

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/openmp-offload-gpu.c

  Log Message:
  -----------
  [OpenMP] Fix test after updating library search paths (#83573)

Summary:
We still use this bitcode library in one case, the NVPTX non-LTO build.
The patch updated the search paths to treat it the same as other
libraries, which unintentionally prioritized system paths over
LIBRARY_PATH which is generally not correct. Also we had a test that
relied on system state so remove that.


  Commit: 92fe6c61f900d6479f7ab708784c9e62d7523768
      https://github.com/llvm/llvm-project/commit/92fe6c61f900d6479f7ab708784c9e62d7523768
  Author: Martin Wehking <martin.wehking at codeplay.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def

  Log Message:
  -----------
  Silence illegal address computation warning (#83244)

Add an assertion before an access of ValMappings to ensure that it is
within the array bounds.
Silence a static analyzer warning through this.


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

  Changed paths:
    M lldb/include/lldb/Interpreter/CommandOptionArgumentTable.h
    M lldb/include/lldb/lldb-private-enumerations.h
    M lldb/source/Symbol/Symtab.cpp
    A lldb/test/Shell/SymbolFile/Breakpad/symtab-sorted-by-size.test

  Log Message:
  -----------
  [lldb] Add support for sorting by size to `target module dump symtab` (#83527)

This patch adds support to sort the symbol table by size. The command
already supports sorting and it already reports sizes. Sorting by size
helps diagnosing size issues.

rdar://123788375


  Commit: 8f65e7b917c580d1b58b024db6fc889cbcd964c7
      https://github.com/llvm/llvm-project/commit/8f65e7b917c580d1b58b024db6fc889cbcd964c7
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/include/llvm/IR/DIBuilder.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/DebugInfoMetadata.cpp
    M llvm/lib/IR/LLVMContextImpl.h
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/Assembler/debug-info.ll
    A llvm/test/DebugInfo/AArch64/ptrauth.ll
    M llvm/unittests/IR/MetadataTest.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp

  Log Message:
  -----------
  [Dwarf] Support `__ptrauth` qualifier in metadata nodes (#82363)

Emit `__ptrauth`-qualified types as `DIDerivedType` metadata nodes in IR
with tag `DW_TAG_LLVM_ptrauth_type`, baseType referring to the type
which has the qualifier applied, and the following parameters
representing the signing schema:

- `ptrAuthKey` (integer)
- `ptrAuthIsAddressDiscriminated` (boolean)
- `ptrAuthExtraDiscriminator` (integer)
- `ptrAuthIsaPointer` (boolean)
- `ptrAuthAuthenticatesNullValues` (boolean)

Co-authored-by: Ahmed Bougacha <ahmed at bougacha.org>


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

  Changed paths:
    M libc/CMakeLists.txt
    M libc/lib/CMakeLists.txt

  Log Message:
  -----------
  [libc] Update install directory for offloading versions of libraries (#83592)

Summary:
These currently go to `lib/`, but if the user has `lib/<triple>` they
should go there because it's always searched first.


  Commit: 64216ba1e427fab1ee38ef9492d3fbca907606b9
      https://github.com/llvm/llvm-project/commit/64216ba1e427fab1ee38ef9492d3fbca907606b9
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/SemaCXX/warn-bool-conversion.cpp

  Log Message:
  -----------
  [Sema] -Wpointer-bool-conversion: suppress lambda function pointer conversion diagnostic during instantiation (#83497)

I have seen two internal pieces of code that uses a template type
parameter to accept any callable type (function pointer, std::function,
closure type, etc). The diagnostic added in #83152 would require
adaptation to the template, which is difficult and also seems
unnecessary. Example:

```cpp
template <typename... Ts>
static bool IsFalse(const Ts&...) { return false; }

template <typename T, typename... Ts,
          typename = typename std::enable_if<std::is_constructible<bool, const T&>::value>::type>
static bool IsFalse(const T& p, const Ts&...) {
  return p ? false : true;
}

template <typename... Args>
void Init(Args&&... args) {
  if (IsFalse(absl::implicit_cast<const typename std::decay<Args>::type&>(
              args)...)) {
    // A callable object convertible to false is either a null pointer or a
    // null functor (e.g., a default-constructed std::function).
    empty_ = true;
  } else {
    empty_ = false;
    new (&factory_) Factory(std::forward<Args>(args)...);
  }
}
```


  Commit: 68516bfd2f086736dfd88374a11017276e61ad3d
      https://github.com/llvm/llvm-project/commit/68516bfd2f086736dfd88374a11017276e61ad3d
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/ByteCodeEmitter.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/EvalEmitter.h
    M clang/test/AST/Interp/lambda.cpp

  Log Message:
  -----------
  [clang][Interp] Lambda This captures can be non-pointers

If they are captured by value.


  Commit: 0813b90ff5d195d8a40c280f6b745f1cc43e087a
      https://github.com/llvm/llvm-project/commit/0813b90ff5d195d8a40c280f6b745f1cc43e087a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/TypePromotion.cpp
    M llvm/test/CodeGen/AArch64/and-mask-removal.ll
    M llvm/test/CodeGen/AArch64/signed-truncation-check.ll
    M llvm/test/CodeGen/AArch64/typepromotion-overflow.ll
    M llvm/test/CodeGen/RISCV/typepromotion-overflow.ll
    M llvm/test/Transforms/TypePromotion/ARM/icmps.ll
    M llvm/test/Transforms/TypePromotion/ARM/wrapping.ll

  Log Message:
  -----------
  [TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)

We can support these by changing the sext promotion to -zext(-C) and
replacing a sgt check with ugt. Reframing the logic in terms of how the
unsigned range are affected. More comments in the patch.

The new cases check isLegalAddImmediate to avoid some
regressions in lit tests.


  Commit: f6f79d46e580b34b2c98bd9bda7ede3a38f43f77
      https://github.com/llvm/llvm-project/commit/f6f79d46e580b34b2c98bd9bda7ede3a38f43f77
  Author: Kirill Stoimenov <kstoimenov at google.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    R llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
    R llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll

  Log Message:
  -----------
  Revert "[HWASAN] Implement selective instrumentation based on profiling information (#83503)"

Broke a build bot: https://lab.llvm.org/buildbot/#/builders/124/builds/9846

This reverts commit e7c3cd245665042bbae163f7280aceed35f0fee5.


  Commit: 53f89a0bb7695ef2f7a34472b0e6799122896ae4
      https://github.com/llvm/llvm-project/commit/53f89a0bb7695ef2f7a34472b0e6799122896ae4
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/BUFInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SMInstructions.td

  Log Message:
  -----------
  [AMDGPU] Remove AtomicNoRet class and getAtomicNoRetOp table (#83593)


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

  Changed paths:
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    A clang/test/CodeGenHLSL/builtins/round.hlsl
    A clang/test/SemaHLSL/BuiltIns/round-errors.hlsl
    M llvm/lib/Target/DirectX/DXIL.td
    A llvm/test/CodeGen/DirectX/round.ll

  Log Message:
  -----------
  [HLSL][DXIL] Implementation of round intrinsic (#83570)

hlsl_intrinsics.h - add the round  api
DXIL.td add the llvm intrinsic to DXIL lowering mapping 
This change reuses llvm's existing intrinsic
`__builtin_elementwise_round`\ `int_round`
This change implements: #70077


  Commit: ae58b676f1716b381b1232d47ed308f3eec590fc
      https://github.com/llvm/llvm-project/commit/ae58b676f1716b381b1232d47ed308f3eec590fc
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp

  Log Message:
  -----------
  [flang] Fixed ieee_logb to behave for denormals. (#83518)

For denormals we have to account for the exponent coming
from the significand.


  Commit: 3337d693735d6a361cde87de82624d89ca9660f1
      https://github.com/llvm/llvm-project/commit/3337d693735d6a361cde87de82624d89ca9660f1
  Author: Francesco Petrogalli <francesco.petrogalli at apple.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td

  Log Message:
  -----------
  [llvm][Intrinsics] Add llvm_v3i8_ty. [NFCI] (#83576)


  Commit: ce95a56db552fde4836d71992b2c42cadd0088c8
      https://github.com/llvm/llvm-project/commit/ce95a56db552fde4836d71992b2c42cadd0088c8
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

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

  Log Message:
  -----------
  [pgo][nfc] Model `Count` as a `std::optional` in `PGOUseEdge` (#83505)

Similar to PR #83364.


  Commit: ab4517b70c62ab0e7245fa4a6918e2d1a0d81fb2
      https://github.com/llvm/llvm-project/commit/ab4517b70c62ab0e7245fa4a6918e2d1a0d81fb2
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/ByteCodeEmitter.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/EvalEmitter.h
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/AST/Interp/lambda.cpp
    A clang/test/CodeGenHLSL/builtins/round.hlsl
    M clang/test/Driver/openmp-offload-gpu.c
    A clang/test/SemaCXX/GH83461.cpp
    M clang/test/SemaCXX/undefined-internal.cpp
    M clang/test/SemaCXX/warn-bool-conversion.cpp
    M clang/test/SemaCXX/warn-unused-variables.cpp
    A clang/test/SemaHLSL/BuiltIns/round-errors.hlsl
    M flang/docs/Directives.md
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    A flang/test/Parser/assume-aligned.f90
    M libc/CMakeLists.txt
    M libc/lib/CMakeLists.txt
    M lldb/include/lldb/Interpreter/CommandOptionArgumentTable.h
    M lldb/include/lldb/lldb-private-enumerations.h
    M lldb/source/Symbol/Symtab.cpp
    A lldb/test/Shell/SymbolFile/Breakpad/symtab-sorted-by-size.test
    M llvm/include/llvm/IR/DIBuilder.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
    M llvm/lib/CodeGen/TypePromotion.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/DebugInfoMetadata.cpp
    M llvm/lib/IR/LLVMContextImpl.h
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/BUFInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SMInstructions.td
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
    M llvm/test/Assembler/debug-info.ll
    M llvm/test/CodeGen/AArch64/and-mask-removal.ll
    M llvm/test/CodeGen/AArch64/signed-truncation-check.ll
    M llvm/test/CodeGen/AArch64/typepromotion-overflow.ll
    A llvm/test/CodeGen/DirectX/round.ll
    M llvm/test/CodeGen/RISCV/typepromotion-overflow.ll
    A llvm/test/DebugInfo/AArch64/ptrauth.ll
    R llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
    R llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
    M llvm/test/Transforms/TypePromotion/ARM/icmps.ll
    M llvm/test/Transforms/TypePromotion/ARM/wrapping.ll
    M llvm/unittests/IR/MetadataTest.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp

  Log Message:
  -----------
  Rebase

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/004c15f6ddf9...ab4517b70c62

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