Changes

Summary

  1. [lldb][nfc] Remove unused makefile test variables (details)
  2. [analyzer] Fix for incorrect handling of 0 length non-POD array construction (details)
  3. [lldb] Add more dylib paths for exception breakpoints (details)
  4. [clang-tidy] Ignore other members in a union if any member of it is initialized in cppcoreguidelines-pro-type-member-init (details)
  5. Revert "[gn build] port bc39d7bdd497 (libclang.map -> libclang.exports)" (details)
  6. [IRCE] Drop SCEV of a Phi after adding a new input. PR57335 (details)
  7. [AArch64] Fix sched model for tsv110 (details)
  8. [CostModel][X86] Support cost kind specific look up tables (details)
  9. [NVPTX] Factor rounding patterns into a multiclass. NFCI. (details)
  10. [NVPTX] Lower llvm.roundeven to cvt.rni (details)
  11. [mlir] Add math.roundeven and llvm.intr.roundeven (details)
Commit 14d5ae2038b58830f0565980e20fe0bfd683fb54 by Felipe de Azevedo Piovezan
[lldb][nfc] Remove unused makefile test variables

The variables LLDB_USING_LIBCPP and LLDB_USING_LIBSTDCPP are no longer
used anywhere.

Differential Revision: https://reviews.llvm.org/D132596
The file was modifiedlldb/packages/Python/lldbsuite/test/make/Makefile.rules (diff)
Commit e3e9082b013ba948e3df6d4a2536df9d04656e76 by 65320245+isuckatcs
[analyzer] Fix for incorrect handling of 0 length non-POD array construction

Prior to this patch when the analyzer encountered a non-POD 0 length array,
it still invoked the constructor for 1 element, which lead to false positives.
This patch makes sure that we no longer construct any elements when we see a
0 length array.

Differential Revision: https://reviews.llvm.org/D131501
The file was addedclang/test/Analysis/flexible-array-member.cpp
The file was modifiedclang/test/Analysis/array-init-loop.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp (diff)
The file was modifiedclang/test/Analysis/dtor-array.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/RegionStore.cpp (diff)
The file was addedclang/test/Analysis/zero-size-non-pod-array.cpp
Commit baeb17cdfa4bba8985ebb9809edf7eb82c636bc4 by Felipe de Azevedo Piovezan
[lldb] Add more dylib paths for exception breakpoints

When setting a breakpoint upon throwing exceptions, LLDB only
searches for the libc++abi code inside dylibs named:
  1. libc++abi.dylib
  2. libSystem.B.dylib

However, this fails to account for libs with a version number. For
example, when building the libcxx and libcxxabi runtimes, the following
dylibs are generated:

build/lib/libc++abi.1.0.dylib
build/lib/libc++abi.1.dylib -> libc++abi.1.0.dylib
build/lib/libc++abi.dylib -> libc++abi.1.dylib

If we are debugging a program linked against any of the "versioned"
libs, the breakpoint doesn't work. This commit adds these names to the
search list.

Differential Revision: https://reviews.llvm.org/D132598
The file was modifiedlldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp (diff)
Commit 2d8e91a5d3597461b5ae2a40d9362abde67b5e1f by liuke.gehry
[clang-tidy] Ignore other members in a union if any member of it is initialized in cppcoreguidelines-pro-type-member-init

If a union member is initialized, the other members of the union are still suggested to be initialized in this check.  This patch fixes this behavior.
Reference issue: https://github.com/llvm/llvm-project/issues/54748

Reviewed By: njames93

Differential Revision: https://reviews.llvm.org/D127293
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp (diff)
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-member-init.cpp (diff)
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst (diff)
Commit 58d630fbfab11a2847bd2970bcff897d860d36eb by thakis
Revert "[gn build] port bc39d7bdd497 (libclang.map -> libclang.exports)"

This reverts commit 94c00c10e837aded6a6b15fe84c12f1ced4d856d.
bc39d7bdd497 was reverted in 0f28d4856630.
The file was modifiedllvm/utils/gn/secondary/clang/tools/libclang/BUILD.gn (diff)
Commit ccf788a5659430571d5970dfc766b235e413dde2 by mkazantsev
[IRCE] Drop SCEV of a Phi after adding a new input. PR57335

Since SCEV learned to look through single value phis with
20d798bd47ec5191de1b2a8a031da06a04e612e1, whenever we add
a new input to a Phi, we should make sure that the old cached
value is dropped. Otherwise, it may lead to various miscompiles,
such as breach of dominance as shown in the bug
https://github.com/llvm/llvm-project/issues/57335
The file was addedllvm/test/Transforms/IRCE/pr57335.ll
The file was modifiedllvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp (diff)
Commit 3c8f327ce94fd706ec11d927b22a3642b98adad1 by zhongyunde
[AArch64] Fix sched model for tsv110

Update three changes:
1.Split the Load/Store resources into two, Ld0St and Ld1,
  since only one of them is capable of stores.
2.Integer ADD and SUB instructions have different latencies
  and processor resource usage (pipeline) when they have a shift of
  zero vs. non-zero, refer to D8043
3.The throughout of scalar DIV instruction.

Reviewed By: dmgreen, bryanpkc

Differential Revision: https://reviews.llvm.org/D132529
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedTSV110.td (diff)
The file was modifiedllvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s (diff)
Commit 45846854a2c1414c27bc819033f6de588dea56fe by llvm-dev
[CostModel][X86] Support cost kind specific look up tables

Most of our cost model tables have been created assuming cost kind == recip-throughput. But we're starting to see passes wanting to get accurate costs for the other kinds as well. Some of these can be determined procedurally (e.g. codesize by default could just be the split count after type legalization), but others are going to need to be handled in cost tables - this is especially true for x86 which has so many ISA combinations.

I've created a 'CostKindCosts' struct which can hold cost values for the 4 cost kinds, defaulting to -1U for unknown cost, this can be used with the existing CostTblEntryT/CostTableLookup template code. I've also added a [TargetCostKind] accessor to make it much easier to look up individual <Optional> costs.

This just changes the ISD::SELECT costs to check the effect (and also to check that the ISD::SETCC are correctly handled for default/None cost kinds) - the plan would be to slowly extend this and move the CostKindTblEntry type somewhere generic to allow other targets to use it once its matured.

I'm also going to resurrect D103695 so that it can help with latency/codesize/sizelatency coverage testing.

For sizelatency - IIRC the definition was vague to let it be target specific - I've tried to use typical uop counts so they're comparable to MicroOpBufferSize etc.

Differential Revision: https://reviews.llvm.org/D132216
The file was modifiedllvm/test/Analysis/CostModel/X86/select-sizelatency.ll (diff)
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/select-latency.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/select-codesize.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp (diff)
Commit a385abfeb7fc850205f7a8113c389602f8a371e9 by benny.kra
[NVPTX] Factor rounding patterns into a multiclass. NFCI.
The file was modifiedllvm/lib/Target/NVPTX/NVPTXInstrInfo.td (diff)
Commit 3ccaabe0517d70ce0bd47305e0d2477df3b0dff9 by benny.kra
[NVPTX] Lower llvm.roundeven to cvt.rni
The file was modifiedllvm/test/CodeGen/NVPTX/math-intrins.ll (diff)
The file was modifiedllvm/lib/Target/NVPTX/NVPTXInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/NVPTX/f16x2-instructions.ll (diff)
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/NVPTX/f16-instructions.ll (diff)
Commit 4639a85f94be6355c55dcc802a9b01b622d6f7b1 by tpopp
[mlir] Add math.roundeven and llvm.intr.roundeven

This is similar to math.round, but rounds to even instead of rounding away from
zero in the case of halfway values. This CL also adds lowerings to libm and
to the LLVM intrinsic.

Differential Revision: https://reviews.llvm.org/D132375
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td (diff)
The file was modifiedmlir/test/Conversion/MathToLibm/convert-to-libm.mlir (diff)
The file was modifiedmlir/test/Dialect/Math/ops.mlir (diff)
The file was modifiedmlir/test/Conversion/MathToLLVM/math-to-llvm.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Math/IR/MathOps.td (diff)
The file was modifiedmlir/lib/Conversion/MathToLibm/MathToLibm.cpp (diff)
The file was modifiedmlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp (diff)