[all-commits] [llvm/llvm-project] b45c9c: [clang][NFC] Move more functions to `SemaHLSL` (#8...
Pengcheng Wang via All-commits
all-commits at lists.llvm.org
Sun Apr 14 23:11:50 PDT 2024
Branch: refs/heads/users/wangpc-pp/spr/riscv-dont-use-v0-directly-in-patterns
Home: https://github.com/llvm/llvm-project
Commit: b45c9c313c5107b1942cd325e8ab3b4235948a08
https://github.com/llvm/llvm-project/commit/b45c9c313c5107b1942cd325e8ab3b4235948a08
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/lib/Parse/ParseHLSL.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaHLSL.cpp
Log Message:
-----------
[clang][NFC] Move more functions to `SemaHLSL` (#88354)
A follow-up to #87912. I'm moving more HLSL-related functions from
`Sema` to `SemaHLSL`. I'm also dropping `HLSL` from their names in the
process.
Commit: 505a9ae81d620b92284f7b2cbe874c936cf19583
https://github.com/llvm/llvm-project/commit/505a9ae81d620b92284f7b2cbe874c936cf19583
Author: Sirraide <aeternalmail at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
M clang/test/SemaCXX/lambda-expressions.cpp
Log Message:
-----------
[Clang] Look through type sugar when accessing FunctionProtoType (#88428)
This fixes a bug introduced by #84473: if a lambda’s type is type sugar
(e.g. an `AttributedType`), we need to use `getAs()` instead of `cast()`
to retrieve the `FunctionProtoType`.
Commit: f21ead06750b670cf8ce72d6666e3550b04056a2
https://github.com/llvm/llvm-project/commit/f21ead06750b670cf8ce72d6666e3550b04056a2
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
A clang/test/CXX/module/module.glob.frag/cxx20-10-4-ex2.cppm
M clang/test/Modules/inconsistent-deduction-guide-linkage.cppm
M clang/test/Modules/named-modules-adl-2.cppm
M clang/test/Modules/named-modules-adl.cppm
M clang/test/Modules/placement-new-reachable.cpp
M clang/test/Modules/polluted-operator.cppm
M clang/test/Modules/pr62589.cppm
M clang/test/Modules/preferred_name.cppm
M clang/test/Modules/redundant-template-default-arg3.cpp
M clang/test/Modules/template-function-specialization.cpp
Log Message:
-----------
[C++20] [Modules] [Reduced BMI] Remove unreachable decls GMF in redued BMI (#88359)
Following of https://github.com/llvm/llvm-project/pull/76930
This follows the idea of "only writes what we writes", which I think is
the most natural and efficient way to implement this optimization.
We start writing the BMI from the first declaration in module purview
instead of the global module fragment, so that everything in the GMF
untouched won't be written in the BMI naturally.
The exception is, as I said in
https://github.com/llvm/llvm-project/pull/76930, when we write a
declaration we need to write its decl context, and when we write the
decl context, we need to write everything from it. So when we see
`std::vector`, we basically need to write everything under namespace
std. This violates our intention. To fix this, this patch delays the
writing of namespace in the GMF.
>From my local measurement, the size of the BMI decrease to 90M from 112M
for a local modules build. I think this is significant.
This feature will be covered under the experimental reduced BMI so that
it won't affect any existing users. So I'd like to land this when the CI
gets green.
Documents will be added seperately.
Commit: 506ff547924ab81123865964b7d998a5a378330a
https://github.com/llvm/llvm-project/commit/506ff547924ab81123865964b7d998a5a378330a
Author: NimishMishra <42909663+NimishMishra at users.noreply.github.com>
Date: 2024-04-11 (Thu, 11 Apr 2024)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Lower/OpenMP/default-clause.f90
Log Message:
-----------
[flang][Semantics] Fix updating flags of threadprivate symbols in presence of default clause (#78283)
Current semantic checks of default clause incorrectly update symbol
flags related to threadprivate symbols. This patch adds an additional
check to skip such updation should a symbol be already declared
threadprivate.
Fixes https://github.com/llvm/llvm-project/issues/78282
Commit: b502dc596ba3ed1e857e163e21ed6426125760ef
https://github.com/llvm/llvm-project/commit/b502dc596ba3ed1e857e163e21ed6426125760ef
Author: Sirraide <aeternalmail at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
A clang/test/SemaCXX/gh84473.cpp
M clang/test/SemaCXX/lambda-expressions.cpp
Log Message:
-----------
[Clang] Fix test broken due to unsupported calling convention (#88472)
#88428 ended up breaking CI because it included a test that uses the
`regcall` calling convention, which isn’t supported on all targets; I’ve
moved it into a separate file that sets the triple.
Commit: 469758c944dfb492102ded9e50eac5e478f85f6a
https://github.com/llvm/llvm-project/commit/469758c944dfb492102ded9e50eac5e478f85f6a
Author: Dominik Adamski <dominik.adamski at amd.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
A flang/test/Driver/arch-specific-libdir-rpath.f95
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
Log Message:
-----------
[Flang] Add options frtlib-add-rpath and resource-dir (#88280)
frtlib-add-rpath option is used by clang and should also be visible in
flang. It is already handled by the toolchains used by both clang and
flang.
Reported issue: https://github.com/llvm/llvm-project/issues/82553
Commit: 1b8830c56abd01c9ab70bbbb71a00c2506cf2116
https://github.com/llvm/llvm-project/commit/1b8830c56abd01c9ab70bbbb71a00c2506cf2116
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/AST/Interp/FunctionPointer.h
M clang/lib/AST/Interp/Interp.h
M clang/test/AST/Interp/c.c
Log Message:
-----------
[clang][Interp] Fix comparing to integral function pointers
We need to account for the fact that the Function pointer is not
accessible here. Add FunctionPointer::isWeak() for that.
Commit: ff9bc3a0fa4e3790c437e62450903bf399df37f9
https://github.com/llvm/llvm-project/commit/ff9bc3a0fa4e3790c437e62450903bf399df37f9
Author: Johannes Reifferscheid <jreiffers at google.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
M mlir/test/Conversion/ComplexToStandard/full-conversion.mlir
Log Message:
-----------
Fix overflows in complex sqrt lowering. (#88480)
This ports XLA's complex sqrt lowering. The accuracy was tested with its
exhaustive_unary_test_complex test.
Note: rsqrt is still broken.
Commit: 1e7763557bbace002b6bb811167942ebebf50f99
https://github.com/llvm/llvm-project/commit/1e7763557bbace002b6bb811167942ebebf50f99
Author: wanglei <wanglei at loongson.cn>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
A llvm/test/Transforms/LoopVectorize/LoongArch/reg-usage.ll
Log Message:
-----------
[LoongArch] Add support for getNumberOfRegisters() (#88372)
The `TTI` hooks are used during vectorization for calculating register
pressure. The default implementation defined wrong value for register
number (all register class are 8 registers).
This patch also defines LoongArch's own register classes.
Commit: a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4
https://github.com/llvm/llvm-project/commit/a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/X86/X86InstrSSE.td
Log Message:
-----------
[X86][BF16] Fix a typo, NFCI
VR128X is not enabled under AVXNECONVERT.
Commit: ad4e1aba3fd12f81de71ce3985ae66ff80773d90
https://github.com/llvm/llvm-project/commit/ad4e1aba3fd12f81de71ce3985ae66ff80773d90
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/test/Lower/call-by-value.f90
Log Message:
-----------
[flang] Pass VALUE CHARACTER arg by register in BIND(C) calls (#87774)
Fortran mandates "CHARACTER(1), VALUE" be passed as a C "char" in calls
to BIND(C) procedures (F'2023 18.3.7 (4)). Lowering passed them by
memory instead. Update call interface lowering code to pass them by
register. Fix related test and update it to use HLFIR.
Commit: d488b2225d484027eb2c21a06d27decf008e878b
https://github.com/llvm/llvm-project/commit/d488b2225d484027eb2c21a06d27decf008e878b
Author: Beal Wang <colorfishes at outlook.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/IR/OpDefinition.h
M mlir/lib/IR/Operation.cpp
M mlir/test/IR/properties.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir][ods] Do not print default-valued properties when the value is equal to the default (#87970)
This diff causes the `tblgen`-erated printProperties() function to skip
printing a `DefaultValuedAttr` property when the value is equal to the
default.
Co-authored-by: Biao Wang <biaow at nvidia.com>
Commit: d019b9aaaaa60c858ee82fdbaf5de16e048e9db2
https://github.com/llvm/llvm-project/commit/d019b9aaaaa60c858ee82fdbaf5de16e048e9db2
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaAccess.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
Log Message:
-----------
[clang][NFC] Refactor `CXXSpecialMember`
In preparation for `SemaCUDA`, which requires this enum to be forward-declarable.
Commit: 9250aedb5cabf0e44c694f0c8e68ae03e937be89
https://github.com/llvm/llvm-project/commit/9250aedb5cabf0e44c694f0c8e68ae03e937be89
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
A llvm/test/Analysis/ScalarEvolution/range-attribute.ll
Log Message:
-----------
[SCEV] Add range attribute handling (#88449)
Commit: 5d6b00929bd026d1448a5dd3a8341ea99b3befe1
https://github.com/llvm/llvm-project/commit/5d6b00929bd026d1448a5dd3a8341ea99b3befe1
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Log Message:
-----------
[NFC] Replace m_Sub(m_Zero(), X) with m_Neg(X) (#88461)
Commit: 0e6367236413e50599b49aff15b086088f152769
https://github.com/llvm/llvm-project/commit/0e6367236413e50599b49aff15b086088f152769
Author: Sergio Afonso <safonsof at amd.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
Log Message:
-----------
[MLIR][OpenMP] Add omp.loop_nest operation (#87083)
This patch introduces an operation intended to hold loop information
associated to the `omp.distribute`, `omp.simdloop`, `omp.taskloop` and
`omp.wsloop` operations. This is a stopgap solution to unblock work on
transitioning these operations to becoming wrappers, as discussed in
[this
RFC](https://discourse.llvm.org/t/rfc-representing-combined-composite-constructs-in-the-openmp-dialect/76986).
Long-term, this operation will likely be replaced by
`omp.canonical_loop`, which is being designed to address missing support
for loop transformations, etc.
Commit: f5b2d24b59f168eaeed08b5f45bf0c8dfcc1c292
https://github.com/llvm/llvm-project/commit/f5b2d24b59f168eaeed08b5f45bf0c8dfcc1c292
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/test/CodeGen/NVPTX/bf16-instructions.ll
Log Message:
-----------
[NVPTX] Move roundeven on bf16 into the sm_90 has it but sm_80 doesn't bucket
Commit: b24af43fdfa1b1242b7cb77540462212227c57c4
https://github.com/llvm/llvm-project/commit/b24af43fdfa1b1242b7cb77540462212227c57c4
Author: David Green <david.green at arm.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
M llvm/lib/Target/Hexagon/HexagonSubtarget.h
M llvm/test/CodeGen/AArch64/complex-deinterleaving-add-mull-scalable-fast.ll
M llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
M llvm/test/CodeGen/AArch64/misched-bundle.mir
M llvm/test/CodeGen/AArch64/sve-fixed-length-build-vector.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-arith.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-fma.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-minmax.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-minmax.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-shifts.ll
M llvm/test/CodeGen/AArch64/sve-fpext-load.ll
M llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll
M llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll
M llvm/test/CodeGen/AArch64/sve-gather-scatter-addr-opts.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
M llvm/test/CodeGen/AArch64/sve-smulo-sdnode.ll
M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-extend-trunc.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-rem.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll
M llvm/test/CodeGen/AArch64/sve-umulo-sdnode.ll
M llvm/test/CodeGen/AArch64/sve-vecreduce-dot.ll
M llvm/test/CodeGen/AArch64/sve2-xar.ll
Log Message:
-----------
[AArch64] Improve scheduling latency into Bundles (#86310)
By default the scheduling info of instructions into a BUNDLE are given a
latency of 0 as they operate on the implicit register of the bundle.
This modifies that for AArch64 so that the latency is adjusted to use
the latency from the instruction in the bundle instead. This essentially
assumes that the bundled instructions are executed in a single cycle,
which for AArch64 is probably OK considering they are mostly used for
MOVPFX bundles, where this can help create slightly better scheduling
especially for in-order cores.
Commit: 5fc8a190b37906cba3f175440abd79dabd8acc73
https://github.com/llvm/llvm-project/commit/5fc8a190b37906cba3f175440abd79dabd8acc73
Author: wanglei <wanglei at loongson.cn>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
A llvm/test/Transforms/CodeGenPrepare/LoongArch/lit.local.cfg
A llvm/test/Transforms/CodeGenPrepare/LoongArch/splitgep.ll
Log Message:
-----------
[LoongArch] Pre commit test for #88371. NFC
Commit: c39df496d73621238ba87de235d9a61e2b2203b9
https://github.com/llvm/llvm-project/commit/c39df496d73621238ba87de235d9a61e2b2203b9
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaType.cpp
Log Message:
-----------
[clang][NFC] Refactor `CUDAFunctionTarget`
Refactor `CUDAFunctionTarget` into a scoped enum at namespace scope, so that it can be forward declared. This is done in preparation for `SemaCUDA`.
Commit: 3bb147e05365680d0a954d823a7c014f357448e7
https://github.com/llvm/llvm-project/commit/3bb147e05365680d0a954d823a7c014f357448e7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/test/CodeGen/X86/combine-sse41-intrinsics.ll
Log Message:
-----------
[X86] combine-sse41-intrinsics.ll - add AVX2 test coverage
Commit: 8c0f52e9d5a99bf96bb64ac23b5893482c292527
https://github.com/llvm/llvm-project/commit/8c0f52e9d5a99bf96bb64ac23b5893482c292527
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
M llvm/test/CodeGen/X86/dpbusd.ll
M llvm/test/CodeGen/X86/dpbusd_i4.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll
Log Message:
-----------
[DAG] Fold extract_subvector(insert_subvector(x,y,c1),c2) --> extract_subvector(y,c2-c1) (#87925)
If the extract_subvector is cheap, attempt to extract directly from an inserted subvector
Commit: 78eac466095c205988ef1e2380033d042a169a3b
https://github.com/llvm/llvm-project/commit/78eac466095c205988ef1e2380033d042a169a3b
Author: Sergio Afonso <safonsof at amd.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
Log Message:
-----------
[Flang][OpenMP][Lower] Use clause operand structures (#86802)
This patch updates Flang lowering to use the new set of OpenMP clause
operand structures and their groupings into directive-specific sets of
clause operands.
It simplifies the passing of information from the clause processor and
the creation of operations.
The `DataSharingProcessor` is slightly modified to not hold delayed
privatization state. Instead, optional arguments are added to
`processStep1` which are only passed when delayed privatization is used.
This enables using the clause operand structure for `private` and
removes the need for the ad-hoc `DelayedPrivatizationInfo` structure.
The processing of the `schedule` clause is updated to process the
`chunk` modifier rather than requiring two separate calls to the
`ClauseProcessor`.
Lowering of a block-associated `ordered` construct is updated to emit a
TODO error if the `simd` clause is specified, since it is not currently
supported by the `ClauseProcessor` or later compilation stages.
Removed processing of `schedule` from `omp.simdloop`, as it doesn't
apply to `simd` constructs.
Commit: 33779b861d748ed18b8d4f9cbad3a84deaa95e9f
https://github.com/llvm/llvm-project/commit/33779b861d748ed18b8d4f9cbad3a84deaa95e9f
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaExpr.cpp
A clang/test/Sema/complex-inc-dec.c
Log Message:
-----------
Reword a diagnostic; NFC
This diagnostic used to talk about complex integer types but is issued
for use of the increment or decrement operators on any complex type,
not just integral ones.
The diagnostic also had zero test coverage, so new coverage is added
along with the rewording.
Commit: 5ebeaf211551f9410e17b1134126daadd8b163ac
https://github.com/llvm/llvm-project/commit/5ebeaf211551f9410e17b1134126daadd8b163ac
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/test/CXX/drs/dr15xx.cpp
M clang/test/CXX/drs/dr19xx.cpp
M clang/test/CXX/drs/dr3xx.cpp
M clang/test/CXX/drs/dr4xx.cpp
M clang/test/CXX/drs/dr5xx.cpp
M clang/www/cxx_dr_status.html
Log Message:
-----------
[clang] Add tests for some CWG 5xx issues (#87909)
This patch covers
[CWG393](https://cplusplus.github.io/CWG/issues/393.html) "Pointer to
array of unknown bound in template argument list in parameter",
[CWG528](https://cplusplus.github.io/CWG/issues/528.html) "Why are
incomplete class types not allowed with `typeid`?",
[CWG550](https://cplusplus.github.io/CWG/issues/550.html) "Pointer to
array of unknown bound in parameter declarations",
[CWG553](https://cplusplus.github.io/CWG/issues/553.html) "Problems with
friend allocation and deallocation functions",
[CWG555](https://cplusplus.github.io/CWG/issues/555.html)
"Pseudo-destructor name lookup",
[CWG560](https://cplusplus.github.io/CWG/issues/560.html) "Use of the
`typename` keyword in return types".
CWG393 is on this list, because CWG550 is marked as a duplicate of
CWG393.
Test for CWG553 has been already written, but it was missing a status
comment. As a drive-by fix, I'm adding missing status comments to
CWG1584 and CWG1903 as well.
CWG555 used CWG466 test, and also a variation of that test to test
references. CWG466 is now testing non-reference non-pointer case.
CWG560 showcases again that converting warnings to errors in DR tests
via `-pedantic-errors` doesn't make things more clear. By default that
test is accepted with an extension warning since we implemented
[P0634R3](https://wg21.link/p0634r3) "Down with `typename`!" in Clang
16.
Commit: ab037c4ff3452a680efb758ccacb6ee210ce333b
https://github.com/llvm/llvm-project/commit/ab037c4ff3452a680efb758ccacb6ee210ce333b
Author: SahilPatidar <patidarsahil2001 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AArch64/abd-combine.ll
M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
Log Message:
-----------
[DAG] computeKnownBits - add ISD::ABDU/ISD::ABDS handling #84905 (#88253)
Resolve #84905
Commit: 6ec467297db272d5ae8f76e695296bd4945dedc8
https://github.com/llvm/llvm-project/commit/6ec467297db272d5ae8f76e695296bd4945dedc8
Author: Nathan Sidwell <nathan at acm.org>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT][NFC] Adjust misleading comment & formatting (#88409)
This originally dealt with tbss, but now handles any bss-like section.
So the comment is inaccurate. Also, the `{}` on the messaging seem
unnecessary.
Commit: f220d26eb1ab5b588215acf538ca82bb3c8798cc
https://github.com/llvm/llvm-project/commit/f220d26eb1ab5b588215acf538ca82bb3c8798cc
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/docs/Intrinsics.md
M flang/include/flang/Runtime/extensions.h
M flang/runtime/extensions.cpp
A flang/unittests/Runtime/AccessTest.cpp
M flang/unittests/Runtime/CMakeLists.txt
Log Message:
-----------
[flang][runtime] Add ACCESS library procedure (#88395)
This is a GNU extension:
https://gcc.gnu.org/onlinedocs/gfortran/ACCESS.html
Used in SALMON:
https://salmon-tddft.jp/download.html
Unfortunately the intrinsic takes a file path to operate on so there
isn't an easy way to make the test robust. The unit test expects to be
able to create, set read write and execute permissions, and delete files
called
`std::filesystem::temp_directory_path() / <test_name>.<pid>`
The test will fail if a file already exists with that name.
I have not implemented the intrinsic on Windows because this is wrapping
a POSIX system call and Windows doesn't support all of the permission
bits tested by the intrinsic. I don't have a Windows machine easily
available to check if Gfortran implements this intrinsic on Windows.
Commit: 7e7468c9ed4e29fe8327525923fd8ab0169b1c07
https://github.com/llvm/llvm-project/commit/7e7468c9ed4e29fe8327525923fd8ab0169b1c07
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/docs/Intrinsics.md
M flang/include/flang/Runtime/extensions.h
M flang/runtime/extensions.cpp
R flang/unittests/Runtime/AccessTest.cpp
M flang/unittests/Runtime/CMakeLists.txt
Log Message:
-----------
Revert "[flang][runtime] Add ACCESS library procedure" (#88507)
Reverts llvm/llvm-project#88395
This broke the powerpc buildbot. That build doesn't support using
`std::filesystem` in flang unit tests.
Commit: ea3d0db130b9a6c4678c11dd8bc48e5630624b62
https://github.com/llvm/llvm-project/commit/ea3d0db130b9a6c4678c11dd8bc48e5630624b62
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
Log Message:
-----------
[VectorCombine] foldShuffleOfCastops - ensure we can scale shuffle masks between bitcasted vector types
Don't just assert that the src/dst vector element counts are multiples of one another - in general IR this can actually happen.
Reported by @mikaelholmen
Commit: 3fa830804e1b90d38d0a62084b5b65e70c83c345
https://github.com/llvm/llvm-project/commit/3fa830804e1b90d38d0a62084b5b65e70c83c345
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/test/CodeGen/RISCV/rvv/calling-conv.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-load.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
Log Message:
-----------
Revert "[RISCV] RISCV vector calling convention (2/2) (#79096)" (#88511)
This reverts commit 29e8bfc13c6078ed07e6474e8c9634c42aa2f6f4.
This patch didn't handle vector return type correctly.
Commit: b4df0da9e8421c8026bd09980b8a6acd7a6ce8c9
https://github.com/llvm/llvm-project/commit/b4df0da9e8421c8026bd09980b8a6acd7a6ce8c9
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/half-alloca-promotion.ll
Log Message:
-----------
[AMDGPU] Fix a potential wrong return value indicating whether a pass modifies a function (#88197)
When the alloca is too big for vectorization, the function could have
already
been modified in previous iteration of the `for` loop.
Commit: 2a5ba4fb895931b7dc86f4304b0e64153a1175d4
https://github.com/llvm/llvm-project/commit/2a5ba4fb895931b7dc86f4304b0e64153a1175d4
Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/include/__iterator/counted_iterator.h
M libcxx/test/std/iterators/predef.iterators/counted.iterator/increment.pass.cpp
Log Message:
-----------
[libc++] LWG3643: Missing `constexpr` in `std::counted_iterator` (#87901)
This pull request implements LWG3643: Missing constexpr in
std::counted_iterator. Specifically, one overload of
std::counted_operator::operator++ was not marked as constexpr,
despite being eligible for it after the introduction of try-block
support in constexpr functions in C++20.
Commit: 5fa58e28f34f4b5b41dd2869212ac917fb42b2e3
https://github.com/llvm/llvm-project/commit/5fa58e28f34f4b5b41dd2869212ac917fb42b2e3
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] Split PseudoVFADD, PseudoVFSUB, and PseudoVFRSUB by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: aece68269c8cb28e16dc5c4ec9aabecb807a0438
https://github.com/llvm/llvm-project/commit/aece68269c8cb28e16dc5c4ec9aabecb807a0438
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] Split PseudoVFWADD, PseudoVFWSUB, and PseudoVFWMUL by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: d309d7e4fe51a0ff0ce6430a8af585e2af2772a3
https://github.com/llvm/llvm-project/commit/d309d7e4fe51a0ff0ce6430a8af585e2af2772a3
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] Split PseudoVFMUL by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: c6b7944be4dfbb1fb35301c670812726845acaa7
https://github.com/llvm/llvm-project/commit/c6b7944be4dfbb1fb35301c670812726845acaa7
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] Split single width floating point fused multiple-add pseudo instructions by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: 43248ffea7b8de3a33b11768e8c21d2434252528
https://github.com/llvm/llvm-project/commit/43248ffea7b8de3a33b11768e8c21d2434252528
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmf.ll
M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll
Log Message:
-----------
[RISCV] Split widening floating point fused multiple-add pseudo instructions by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: b8e1ff322104e5445371328a4fbc9c1d2bf82f01
https://github.com/llvm/llvm-project/commit/b8e1ff322104e5445371328a4fbc9c1d2bf82f01
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] Split PseudoVFRSQRT7 and PseudoVFREC7 by SEW
Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Commit: f4e3226a6c2bd89247192e4aae395a8deb3868b1
https://github.com/llvm/llvm-project/commit/f4e3226a6c2bd89247192e4aae395a8deb3868b1
Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/include/__iterator/move_iterator.h
M libcxx/include/iterator
A libcxx/test/std/iterators/predef.iterators/move.iterators/sized_sentinel.compile.pass.cpp
Log Message:
-----------
[libc++][ranges] LWG3736: move_iterator missing disable_sized_sentinel_for specialization (#85611)
This pull request implements LWG3736: move_iterator missing
disable_sized_sentinel_for specialization.
Commit: 9d8ccbc1be78fb4ba0ad1c6ead2dc04b24c66668
https://github.com/llvm/llvm-project/commit/9d8ccbc1be78fb4ba0ad1c6ead2dc04b24c66668
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
M lldb/test/API/lang/objcxx/objc-builtin-types/main.cpp
Log Message:
-----------
[lldb][test] Add tests for evaluating local variables whose name clashes with Objective-C types (#87807)
Depends on https://github.com/llvm/llvm-project/pull/87767
Commit: bcf047a4ed9afc49f851156698a6d277ab2c00ea
https://github.com/llvm/llvm-project/commit/bcf047a4ed9afc49f851156698a6d277ab2c00ea
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
A llvm/test/CodeGen/ARM/simplifysetcc_narrow_load.ll
A llvm/test/CodeGen/PowerPC/simplifysetcc_narrow_load.ll
Log Message:
-----------
[ARM][PowerPC] Add regression tests for narrowing load in TargetLowering::SimplifySetCC
These test cases show some miscomplies for big-endian when dealing
with non byte-sized loads. One part of the problem is that LLVM IR
isn't really telling where the padding goes for non byte-sized
loads/stores. So currently TargetLowering::SimplifySetCC can't assume
anything about it. But the implementation also do not consider that
the TypeStoreSize could be larger than the TypeSize, resulting in
the offset calculation being wrong for big-endian.
Pre-commit for https://github.com/llvm/llvm-project/pull/87646
Commit: 33e6b488beda80dddb68016a132ee1f0a3c04aa1
https://github.com/llvm/llvm-project/commit/33e6b488beda80dddb68016a132ee1f0a3c04aa1
Author: Björn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/ARM/simplifysetcc_narrow_load.ll
M llvm/test/CodeGen/PowerPC/simplifysetcc_narrow_load.ll
Log Message:
-----------
[SelectionDAG] Fix and improve TargetLowering::SimplifySetCC (#87646)
The load narrowing part of TargetLowering::SimplifySetCC is updated
according to this:
1) The offset calculation (for big endian) did not work properly for
non byte-sized types. This is basically solved by an early exit
if the memory type isn't byte-sized. But the code is also corrected
to use the store size when calculating the offset.
2) To still allow some optimizations for non-byte-sized types the
TargetLowering::isPaddedAtMostSignificantBitsWhenStored hook is
added. By default it assumes that scalar integer types are padded
starting at the most significant bits, if the type needs padding
when being stored to memory.
3) Allow optimizing when isPaddedAtMostSignificantBitsWhenStored is
true, as that hook makes it possible for TargetLowering to know
how the non byte-sized value is aligned in memory.
4) Update the algorithm to always search for a narrowed load with
a power-of-2 byte-sized type. In the past the algorithm started
with the the width of the original load, and then divided it by
two for each iteration. But for a type such as i48 that would
just end up trying to narrow the load into a i24 or i12 load,
and then we would fail sooner or later due to not finding a
newVT that fulfilled newVT.isRound().
With this new approach we can narrow the i48 load into either
an i8, i16 or i32 load. By checking if such a load is allowed
(e.g. alignment wise) for any "multiple of 8 offset", then we can find
more opportunities for the optimization to trigger. So even for a
byte-sized type such as i32 we may now end up narrowing the load
into loading the 16 bits starting at offset 8 (if that is allowed
by the target). The old algorithm did not even consider that case.
5) Also start using getObjectPtrOffset instead of getMemBasePlusOffset
when creating the new ptr. This way we get "nsw" on the add.
Commit: 2c2377d3a9305b86ab110a4f8390b2d16bff9510
https://github.com/llvm/llvm-project/commit/2c2377d3a9305b86ab110a4f8390b2d16bff9510
Author: Adam Fowler <adamfowler71 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lldb/cmake/caches/Apple-lldb-Linux.cmake
M lldb/cmake/caches/Apple-lldb-macOS.cmake
Log Message:
-----------
Add lldb-dap to Swift distributions (#88482)
This includes the lldb-dap executable in the MacOS and Linux
distributions of Swift. Currently there is a commit in the Apple repo to
do this for just MacOS https://github.com/apple/llvm-project/pull/8176.
This PR extends this to both Linux and MacOS and brings the change
upstream.
@JDevlieghere @adrian-prantl
Commit: 986d0dba85f3239671c5151d9817b73de08664a0
https://github.com/llvm/llvm-project/commit/986d0dba85f3239671c5151d9817b73de08664a0
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/JSONNodeDumper.h
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
A clang/test/AST/ast-dump-default-arg-json.cpp
A clang/test/AST/ast-dump-default-init-json.cpp
A clang/test/AST/ast-dump-default-init.cpp
M clang/test/AST/ast-dump-for-range-lifetime.cpp
M clang/unittests/AST/ASTTraverserTest.cpp
Log Message:
-----------
[Clang] Fix AST dump for {CXXDefaultArgExpr, CXXDefaultInitExpr} (#88269)
This PR fix a AST dump issue since
https://github.com/llvm/llvm-project/pull/80001
When Clang dumps `CXXDefaultArgExpr`/`CXXDefaultInitExpr`, there has no
recursively dump the complete `CXXDefaultArgExpr`/`CXXDefaultInitExpr`.
Since this PR, Clang will recursively dump a
`CXXDefaultArgExpr`/`CXXDefaultInitExpr` node, even if the node has no
rewritten init.
*Consider*:
```
struct A {
int arr[1];
};
struct B {
const A &a = A{{0}};
};
void test() {
B b{};
}
```
*Before*:
```
`-FunctionDecl <line:9:1, line:11:1> line:9:6 test 'void ()'
`-CompoundStmt <col:13, line:11:1>
`-DeclStmt <line:10:3, col:8>
`-VarDecl <col:3, col:7> col:5 b 'B' listinit
`-InitListExpr <col:6, col:7> 'B'
`-CXXDefaultInitExpr <col:7> 'const A' lvalue has rewritten init
`-ExprWithCleanups <line:6:16, col:21> 'const A' lvalue
```
*After*:
```
`-FunctionDecl 0x15a9455a8 <line:9:1, line:11:1> line:9:6 test 'void ()'
`-CompoundStmt 0x15a945850 <col:13, line:11:1>
`-DeclStmt 0x15a945838 <line:10:3, col:8>
`-VarDecl 0x15a945708 <col:3, col:7> col:5 b 'B' listinit
`-InitListExpr 0x15a9457b0 <col:6, col:7> 'B'
`-CXXDefaultInitExpr 0x15a9457f8 <col:7> 'const A' lvalue has rewritten init
`-ExprWithCleanups 0x15a945568 <line:6:16, col:21> 'const A' lvalue
`-MaterializeTemporaryExpr 0x15a945500 <col:16, col:21> 'const A' lvalue extended by Field 0x15a945160 'a' 'const A &'
`-ImplicitCastExpr 0x15a9454e8 <col:16, col:21> 'const A' <NoOp>
`-CXXFunctionalCastExpr 0x15a9454c0 <col:16, col:21> 'A' functional cast to A <NoOp>
`-InitListExpr 0x15a9452c0 <col:17, col:21> 'A'
`-InitListExpr 0x15a945308 <col:18, col:20> 'int[1]'
`-IntegerLiteral 0x15a945210 <col:19> 'int' 0
```
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Commit: a27ab3f54377a0addeef1ec9ba7c826fd885a304
https://github.com/llvm/llvm-project/commit/a27ab3f54377a0addeef1ec9ba7c826fd885a304
Author: Dominik Adamski <dominik.adamski at amd.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/asanrtl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/hip.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ockl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1010.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1011.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1012.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_803.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_900.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_908.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ocml.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/opencl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/asanrtl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/hip.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ockl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_400.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_500.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_600.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1010.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1011.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1012.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_803.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_900.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_908.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ocml.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/opencl.bc
A flang/test/Driver/Inputs/rocm/bin/.hipVersion
A flang/test/Driver/Inputs/rocm/include/hip/hip_runtime.h
A flang/test/Driver/Inputs/rocm/share/hip/hipVersion
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M flang/test/Driver/omp-driver-offload.f90
Log Message:
-----------
[Flang][AMDGPU] Add rocm-path flag (#88190)
ROCm installation path is used for finding and automatically linking
required bitcode libraries for OpenMP AMDGPU offload.
Reported issue: https://github.com/llvm/llvm-project/issues/82553
Commit: 5752e3196bc52fdac70e3650abc703570ff6209b
https://github.com/llvm/llvm-project/commit/5752e3196bc52fdac70e3650abc703570ff6209b
Author: Vincent Belliard <81770341+v-bulle at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lldb/source/DataFormatters/TypeCategoryMap.cpp
Log Message:
-----------
[lldb] fix dead lock in TypeCategoryMap.cpp (#87540)
FormatManager::GetCategoryForLanguage and
FormatManager::GetCategory(can_create = true) can be called concurrently
and they both take the TypeCategory::m_map_mutex and the
FormatManager::m_language_categories_mutex but in reverse order.
On one thread, GetCategoryForLanguage takes m_language_categories_mutex
and then ends calling TypeCategoryMap::Get which takes m_map_mutex
On another thread GetCategory calls TypeCategoryMap::Add which takes
m_map_mutex and then calls FormatManager::Changed() which takes
m_language_categories_mutex
If both threads are running concurrently, we have a dead lock.
The patch releases the m_map_mutex before calling Changed which avoids
the dead lock.
---------
Co-authored-by: Vincent Belliard <v-bulle at github.com>
Commit: 4dd20b0728223ff20f4817edc2f89901385cb990
https://github.com/llvm/llvm-project/commit/4dd20b0728223ff20f4817edc2f89901385cb990
Author: Nathan Sidwell <nathan at acm.org>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT][NFC] Refactor relocation loop (#88424)
Use the std `if () continue;` idiom before falling into the
processing.
Commit: 040efafa9fef101924d3cf67db20f6429ce1c871
https://github.com/llvm/llvm-project/commit/040efafa9fef101924d3cf67db20f6429ce1c871
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
A llvm/test/CodeGen/RISCV/pr88365.ll
Log Message:
-----------
[RISCV] Support uimm32 immediates in RISCVInstrInfo::movImm for RV32. (#88464)
This allows us to support larger stack offsets for FrameLowering.
Fixes #88365.
Commit: 72dfee114bd38dc4b424d392bc14cd6b7dfb79e5
https://github.com/llvm/llvm-project/commit/72dfee114bd38dc4b424d392bc14cd6b7dfb79e5
Author: Francis Visoiu Mistrih <890283+francisvm at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
Log Message:
-----------
[RISCV] Remove mayLoad = 1 from store-conditional (#88470)
lr.[wd]: mayLoad = 1, mayStore = 0
sc.[wd]: mayLoad = 0, mayStore = 1
all other AMOs: mayLoad = 1, mayStore = 1
Commit: e0a628715a8464e220c8ba9e9aaaf2561139198a
https://github.com/llvm/llvm-project/commit/e0a628715a8464e220c8ba9e9aaaf2561139198a
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/InstCombine/icmp-dom.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[ValueTracking] Convert `isKnownNonZero` to use SimplifyQuery (#85863)
This patch converts `isKnownNonZero` to use SimplifyQuery. Then we can
use the context information from `DomCondCache`.
Fixes https://github.com/llvm/llvm-project/issues/85823.
Alive2: https://alive2.llvm.org/ce/z/QUvHVj
Commit: 6f1e23b47d428d792866993ed26f4173d479d43d
https://github.com/llvm/llvm-project/commit/6f1e23b47d428d792866993ed26f4173d479d43d
Author: Kunwar Grover <groverkss at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
M mlir/test/Dialect/Bufferization/Transforms/tensor-copy-insertion.mlir
M mlir/test/Dialect/SparseTensor/sparse_sddmm.mlir
Log Message:
-----------
[MLIR][Bufferization] Choose default memory space in tensor copy insertion (#88500)
Tensor copy insertion currently uses memory_space = 0 when creating a
tensor copy using alloc_tensor. This memory space should instead be the
default memory space provided in bufferization options.
Commit: b614e5b0340f783ad355899248c52cb22a04b014
https://github.com/llvm/llvm-project/commit/b614e5b0340f783ad355899248c52cb22a04b014
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/test/MC/Disassembler/SystemZ/insns.txt
M llvm/test/MC/Disassembler/SystemZ/invalid-regs.txt
M llvm/test/MC/SystemZ/insn-good.s
Log Message:
-----------
[SystemZ] Add missing (dis-)assembly tests. (#88498)
### Assembly Tests
This adds assembly tests for
```
lcdfr, lndfr, lpdfr
```
### Disassembly Tests
This also adds a number of disassembly tests for the following
menmonics:
```
cgit, cgrt, cit, clfit, clgit, clgrt, clgt, clrt, clt, crt, lcdfr, lndfr, lpdfr
```
For `cutfu` / `cu12`, it also adds a check for bad register choice.
Commit: b794dc23255505dd7735f995b8ff1192305a072e
https://github.com/llvm/llvm-project/commit/b794dc23255505dd7735f995b8ff1192305a072e
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.h
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
M llvm/test/Analysis/CostModel/SystemZ/reduce-add.ll
A llvm/test/CodeGen/SystemZ/vec-reduce-add-01.ll
Log Message:
-----------
[SystemZ] Add custom handling of legal vectors with reduce-add. (#88495)
This commit skips the expansion of the `vector.reduce.add` intrinsic on
vector-enabled SystemZ targets in order to introduce custom handling of
`vector.reduce.add` for legal vector types using the VSUM instructions.
This is limited to full vectors with scalar types up to `i32` due to
performance concerns.
It also adds testing for the generation of such custom handling, and
adapts the related cost computation, as well as the testing for that.
The expected result is a performance boost in certain benchmarks that
make heavy use of `vector.reduce.add` with other benchmarks remaining
constant.
For instance, the assembly for `vector.reduce.add<4 x i32>` changes from
```hlasm
vmrlg %v0, %v24, %v24
vaf %v0, %v24, %v0
vrepf %v1, %v0, 1
vaf %v0, %v0, %v1
vlgvf %r2, %v0, 0
```
to
```hlasm
vgbm %v0, 0
vsumqf %v0, %v24, %v0
vlgvf %r2, %v0, 3
```
Commit: 8d468c132eed7ffe34d601b224220efd51655eb3
https://github.com/llvm/llvm-project/commit/8d468c132eed7ffe34d601b224220efd51655eb3
Author: Evan Wilde <etceterawilde at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/Headers/CMakeLists.txt
Log Message:
-----------
NFC: Make clang resource headers an interface library (#88317)
Making the clang resource headers into an interface library instead of a
custom target means that we can attach the header search paths to the
library. Targets that "link" against this library will automatically
have the appropriate paths added to their header search paths to find
them. Then downstream projects that embed a copy of clang can query the
generated `ClangTargets.cmake` file for the header location instead of
attempting to compute them.
Commit: 05d8b5e62d7a1cf2f94582346d6fd2d39667a26b
https://github.com/llvm/llvm-project/commit/05d8b5e62d7a1cf2f94582346d6fd2d39667a26b
Author: JOSTAR <52376093+shenjunjiekoda at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
M clang/test/Analysis/invalidated-iterator.cpp
Log Message:
-----------
[analyzer] Support `PointerType` in `getCXXRecordDecl` for `ContainerModeling` (#87787)
Commit: 37575f5262d0e37a1e0b10c59fb8f59182cfe951
https://github.com/llvm/llvm-project/commit/37575f5262d0e37a1e0b10c59fb8f59182cfe951
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
Log Message:
-----------
[NFC][ValueTracking] Fix Wunused-variable
For e0a628715a8464e220c8ba9e9aaaf2561139198a
Commit: 54a6798e0a3630e705ed32dbbd63414a16331085
https://github.com/llvm/llvm-project/commit/54a6798e0a3630e705ed32dbbd63414a16331085
Author: Edwin Vane <revane at google.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h
Log Message:
-----------
[clang-tidy] Simplify RenamerClangTidyCheck API (#88268)
Some functions allow a null SourceManager, no SourceManager, or a
SourceManager in an inconsistent argument position. Since SourceManager
is generally not null and it doesn't make sense to apply renaming
without one, these inconsistencies are now gone.
Commit: 3652b2a877c3691b524a19bc38b338f1ba1dde37
https://github.com/llvm/llvm-project/commit/3652b2a877c3691b524a19bc38b338f1ba1dde37
Author: Mike Rice <michael.p.rice at intel.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/CodeGen/CGAtomic.cpp
M clang/test/OpenMP/atomic_update_codegen.cpp
Log Message:
-----------
[clang][CodeGen][OpenMP] Fix casting of atomic update of ptr types (#88215)
In 4d5e834c5b7f0ccccd90a6d543e182df602f6bc8, casts were removed for
pointers but one case was missed. Add missing check.
Commit: d61edecbfd099143e0e2617505fec921524938f8
https://github.com/llvm/llvm-project/commit/d61edecbfd099143e0e2617505fec921524938f8
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/Format/ContinuationIndenter.cpp
M clang/unittests/Format/FormatTestComments.cpp
Log Message:
-----------
[clang-format] Fix a regression in ContinuationIndenter (#88414)
Commit d06b92391513 caused a regression that breaks after a block
comment adjacent to a function paramter that follows.
Fixes #86573.
Commit: dcd097c475163b9bd41ff009a9157e86c6f2f171
https://github.com/llvm/llvm-project/commit/dcd097c475163b9bd41ff009a9157e86c6f2f171
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Function.cpp
Log Message:
-----------
Add IIT_V6 to support 6-element vectors in intrinsics. (#88196)
Needed for the future patch.
Commit: 6a85cf8fc0437d4885fc829948befe32c1e5a21d
https://github.com/llvm/llvm-project/commit/6a85cf8fc0437d4885fc829948befe32c1e5a21d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[SelectionDAG] Verify SPLAT_VECTOR nodes when they are created. (#88305)
This applies the same rules we have for the scalar operands of a
BUILD_VECTOR where the scalar type must match the element type or for
integer vectors we allow the scalar type to be larger than the element
type. Hexagon uses i32 for an FP zero vector so we allow that as an
exception.
Commit: 7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
https://github.com/llvm/llvm-project/commit/7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/__mdspan/mdspan.h
M libcxx/include/mdspan
M libcxx/include/span
M libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp
Log Message:
-----------
[libc++] P3029R1: Better `mdspan`'s CTAD (#87873)
## Abstract
This pull request implements [P3029R1](https://wg21.link/P3029R1). The
paper discusses the current behavior of `mdspan`'s most common
pointer-indices CTAD, where the `Extents` template parameter is deduced
as `dextents` (dynamic extents), even when passing compile-time constant
values. The author believes this behavior is suboptimal, as it doesn't
take advantage of the compile-time information. The proposed change
suggests deducing static extents if `integral_constant`-like constants
are passed, resulting in more intuitive syntax and less error-prone
code.
## Reference
- [P3029R1](https://wg21.link/P3029R1)
- [Draft C++ Standard: [span.syn]](https://eel.is/c++draft/span.syn)
- [Draft C++ Standard: [mdspan.syn]](https://eel.is/c++draft/mdspan.syn)
Commit: fe59cb256289d9f2f6ebe75571389f3cc90bbdec
https://github.com/llvm/llvm-project/commit/fe59cb256289d9f2f6ebe75571389f3cc90bbdec
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
Log Message:
-----------
[clang][deps] NFCI: Extract `FilenameForLookup` into new function
This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.
Commit: edd7fed9da48c0e708cce9bd4d305ae43d8bd77c
https://github.com/llvm/llvm-project/commit/edd7fed9da48c0e708cce9bd4d305ae43d8bd77c
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/lib/Support/FileCollector.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/unittests/Support/VirtualFileSystemTest.cpp
Log Message:
-----------
[llvm][vfs] NFCI: Remove `const` from `VFS::getRealPath()`
This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.
Commit: c11976f525f3b9b9dc6080f0b23d2ef1ec5fe8fd
https://github.com/llvm/llvm-project/commit/c11976f525f3b9b9dc6080f0b23d2ef1ec5fe8fd
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/unittests/Tooling/CMakeLists.txt
R clang/unittests/Tooling/DependencyScannerTest.cpp
A clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp
Log Message:
-----------
[clang][deps] Create separate unittest directory
This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.
Commit: a11a4324bb27c01e7a005e1a7f49fb8284098e8c
https://github.com/llvm/llvm-project/commit/a11a4324bb27c01e7a005e1a7f49fb8284098e8c
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
M clang/unittests/Tooling/CMakeLists.txt
A clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
Log Message:
-----------
[clang][deps] Cache `VFS::getRealPath()` (#68645)
This PR starts caching calls to
`DependencyScanningWorkerFilesystem::getRealPath()` that we use whenever
we canonicalize module map path. In the case of the real VFS, this
functions performs an expensive syscall that we'd like to do as rarely
as possible.
This PR keeps the real path out of `CachedFileSystemEntry`, since that's
**immutable**; populating the real path on creation of this data
structure (every stat/open) would be expensive.
Commit: 2620ccc3cdebcaa53b96b5f4d79ffe3951534e07
https://github.com/llvm/llvm-project/commit/2620ccc3cdebcaa53b96b5f4d79ffe3951534e07
Author: Kalesh Singh <kaleshsingh96 at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/test/Driver/android-link.cpp
Log Message:
-----------
ANDROID: x86_64: Set default max-page-size to 16kB (#87413)
Android now supports both 4kB and 16kB page sizes. The vast majority of
android apps are developed on x86_64 machines. In order to provide
emulators that support larger page sizes, Android emulates the page-size
in x86_64 to support testing apps for large page size support.
For this reason, update Android x86_64 ELFs default max-page-size to
16384 to support both 4kB and 16kB page-size devices.
Increase max-page-size raises concerns of increased disk space and extra
VMA slab memory.
In Android, RO partitions use sparse images, so that the holes on ELFs
don't allocate blocks on disk; and PackageManager ensures to punch holes
in ELF-paddings on the /data partition when apps are installed.
Extra VMA slab memory is addressed by the bionic loader, which extends
segment VMAs to cover the gaps between consecutive segment mappings, to
avoid the extra VMAs needed for the gap PROT_NONE mappings (---p). This
optimization is done in the crt_pad_segment note [1] is present in the
ELF.
[1]
https://cs.android.com/android/platform/superproject/main/+/189e480390ef13199d59e1fb54078e8b78ea6f79:bionic/libc/arch-common/bionic/crt_pad_segment.S
---------
Signed-off-by: Kalesh Singh <kaleshsingh at google.com>
Co-authored-by: Kalesh Singh <kaleshsingh at google.com>
Commit: 446d38c65f72fd5d242a64182b05683577f683d3
https://github.com/llvm/llvm-project/commit/446d38c65f72fd5d242a64182b05683577f683d3
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lldb/unittests/Host/FileSystemTest.cpp
Log Message:
-----------
[lldb] Fix test build failure
Caused by commit edd7fed9da48c0e708cce9bd4d305ae43d8bd77c
Commit: 9022d9c102a8c47616fbeb6a45b015db6bd2c17a
https://github.com/llvm/llvm-project/commit/9022d9c102a8c47616fbeb6a45b015db6bd2c17a
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M compiler-rt/lib/xray/xray_trampoline_AArch64.S
M compiler-rt/lib/xray/xray_trampoline_x86_64.S
Log Message:
-----------
[xray] Apply default visibility to __xray_CustomEvent/__xray_TypedEvent
`__xray_customevent` and `__xray_typedevent` are built-in functions in
Clang. With -fxray-instrument, they are lowered to `__xray_CustomEvent`
(with 2 arguments) or `__xray_TypedEvent` (with 3 arguments).
xray patching is supported for shared objects, but they may contain
`__xray_customevent` and `__xray_typedevent` references that need to be
satisfied by default visibility definitions exported by the executable.
lld since df54f627fad789ccb11c72a9fddf116decbeba0e, like GNU ld, catches
the scenario at link time.
Commit: 4b0beb4f5ec42aea58461df7994e2fa40f335bb6
https://github.com/llvm/llvm-project/commit/4b0beb4f5ec42aea58461df7994e2fa40f335bb6
Author: jimingham <jingham at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lldb/bindings/interface/SBFrameExtensions.i
M lldb/test/API/python_api/frame/TestFrames.py
Log Message:
-----------
Reapply "Fix error in unrecognized register name handling for "SBFram…e.register"" (#88468)" (#88535)
The only change is a fix for the "register" iterator test to not rely on
particular register names.
I mistook where the artificial "pc" register is generated. It isn't
added to the register list or the register sets (except on arm where
that's the name of the actual register), so I can't use it in this test.
I instead just assert that the "register" generator produces the same
list as flattening the register sets from "registers".
This reverts commit 9f14914753599f3879e4c273191959e2f1b3632c.
Commit: 83dc41992dc602070f5429e2717352f60aad931c
https://github.com/llvm/llvm-project/commit/83dc41992dc602070f5429e2717352f60aad931c
Author: Kazu Hirata <kazu at google.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/ProfileData/InstrProfWriter.cpp
Log Message:
-----------
[memprof] Clean up writer traits (NFC) (#88549)
RecordWriter does not live past the end of writeMemProfRecords, so it
can be safely on stack.
The constructor of FrameWriter does not take any parameter, so we can
let OnDiskChainedHashTableGenerator::Emit (with a single parameter)
default-construct an instance of the writer trait inside Emit.
Commit: 0318ce8552896df7b180ee5481463eada65c755e
https://github.com/llvm/llvm-project/commit/0318ce8552896df7b180ee5481463eada65c755e
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
A clang/test/C/C99/n809.c
A clang/test/C/C99/n809_2.c
A clang/test/C/C99/n809_3.c
M clang/www/c_status.html
Log Message:
-----------
[C99] Claim conformance for _Complex support (#88161)
There's so much overlap between the cited papers so this condenses the
status page into a single entry rather than trying to test conformance
against multiple papers doing conflicting things.
Commit: b074f25329501487e312b59e463a2d5f743090f8
https://github.com/llvm/llvm-project/commit/b074f25329501487e312b59e463a2d5f743090f8
Author: elizabethandrews <elizabeth.andrews at intel.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/AST/Interp/InterpState.h
M clang/lib/Sema/SemaAPINotes.cpp
Log Message:
-----------
[NFC][Clang] Fix static analyzer concern (#88179)
Fix static analyzer concerns about dereferencing
null values.
Commit: c777c011a709dffd4fa5e79cad7947b7c3405d02
https://github.com/llvm/llvm-project/commit/c777c011a709dffd4fa5e79cad7947b7c3405d02
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-vscale.ll
Log Message:
-----------
[GlobalIsel] Import vscale (#88240)
https://github.com/llvm/llvm-project/pull/84542
Commit: a9111d4a26514e169ca57c11e6533ca7c5408832
https://github.com/llvm/llvm-project/commit/a9111d4a26514e169ca57c11e6533ca7c5408832
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
Log Message:
-----------
[clang] Remove unused variable in test
Commit: 6dbd4bb3b4c00d62bf1552e54e4370c6816ea060
https://github.com/llvm/llvm-project/commit/6dbd4bb3b4c00d62bf1552e54e4370c6816ea060
Author: Jing Wang <2019426+jingw at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/docs/ClangFormat.rst
M clang/lib/Format/Format.cpp
M clang/test/Format/lit.local.cfg
M clang/tools/clang-format/ClangFormat.cpp
Log Message:
-----------
Add txtpb to the list of supported TextProto extensions (#88355)
According to
https://protobuf.dev/reference/protobuf/textformat-spec/#text-format-files,
txtpb is the canonical extension
Co-authored-by: Jing Wang <99jingw at gmail.com>
Commit: 4078afc6d23e25df6baedad61b224ef86a94d42f
https://github.com/llvm/llvm-project/commit/4078afc6d23e25df6baedad61b224ef86a94d42f
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/OpenMP/clause-validity01.f90
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[LLVM][OpenMP] Add "nowait" clause as valid for "workshare" (#88426)
Add the "nowait" clause to the list of allowed clauses for the "workshare"
directive. This will make it consistent with other directives (which are
shared between C/C++ and Fortran).
The parser will still reject "nowait" on "!$omp workshare", so this has no
effect on accepting/rejecting Fortran source code.
Commit: 41ff91e143a72dcd5755c9ad2160cf3c333b50c6
https://github.com/llvm/llvm-project/commit/41ff91e143a72dcd5755c9ad2160cf3c333b50c6
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
Log Message:
-----------
Reapply "[libc][math][c23] Add remaining linux/* entrypoints for {,u}fromfp{,x}* (#86692)" (#88567)
This reverts commit 8a071678a9091d536eae29912ca7be6238105956.
The test failure on 32-bit Arm should have been fixed by #86892.
cc @nickdesaulniers @lntue
Commit: 5300a6731e98fbcf7bca68374e934de737166698
https://github.com/llvm/llvm-project/commit/5300a6731e98fbcf7bca68374e934de737166698
Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M openmp/runtime/src/z_Linux_util.cpp
Log Message:
-----------
[OpenMP] Fix re-locking hang found in issue 86684 (#88539)
This was initially reported here (including stacktraces):
https://stackoverflow.com/questions/78183545/does-compiling-imagick-with-openmp-enabled-in-freebsd-13-2-cause-sched-yield
If `__kmp_register_library_startup()` detects that another instance of
the library is present, `__kmp_is_address_mapped()` is eventually
called. which uses `kmpc_alloc()` to allocate memory. This function
calls `__kmp_entry_thread()` to access the thread-local memory pool,
which is a bad idea during initialization. This macro internally calls
`__kmp_get_global_thread_id_reg()` which sets the bootstrap lock at the
beginning (before calling `__kmp_register_library_startup()`).
The fix is to use `KMP_INTERNAL_MALLOC()`/`KMP_INTERNAL_FREE()` instead
of `kmpc_malloc()`/`kmpc_free()`. `KMP_INTERNAL_MALLOC` and
`KMP_INTERNAL_FREE` do not use any bootstrap locks. They just translate
to `malloc()`/`free()` and are meant to be used during library
initialization before other library-specific allocators have been
initialized.
Fixes: #86684
Commit: dfafe3822b1e59f938c256c25a92a7b555f78469
https://github.com/llvm/llvm-project/commit/dfafe3822b1e59f938c256c25a92a7b555f78469
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/Modules/AddCompilerRT.cmake
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/fuzzer/lit.cfg.py
M compiler-rt/test/lit.common.cfg.py
M compiler-rt/test/lit.common.configured.in
M compiler-rt/test/safestack/lit.cfg.py
Log Message:
-----------
Reland "[compiler-rt] Allow running tests without installing first"
Currently, the testsuite uses the default runtimes path to find the
runtimes libraries which may or may not match the just-built runtimes.
This change uses the `-resource-dir` flag for clang whenever
`COMPILER_RT_TEST_STANDALONE_BUILD_LIBS` is set to ensure that we are
actually testing the currently built libraries rather than the ones
bundled with `${COMPILER_RT_TEST_COMPILER}`.
The existing logic works fine when clang and compiler-rt share the same
build directory ``-DLLVM_ENABLE_PROJECTS=clang;compiler-rt`, but when
building compiler-rt separately we need to tell the compiler used for
the tests where it can find the just-built libraries.
This reduces the fixes check-all failures to one in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```
This relands the previous PR with fixes for Windows.
Depends on https://github.com/llvm/llvm-project/pull/88074 to be merged
first for GCC buildbots.
Pull Request: https://github.com/llvm/llvm-project/pull/88075
Commit: 588987405a979f724ab0aa7ad788cc5e87af3649
https://github.com/llvm/llvm-project/commit/588987405a979f724ab0aa7ad788cc5e87af3649
Author: Artem Chikin <achikin at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/unittests/Support/VirtualFileSystemTest.cpp
Log Message:
-----------
[llvm][vfs] Make vfs::FileSystem::exists() virtual NFC (#88575)
Allow a `vfs::FileSystem` to provide a more efficient implementation of
`exists()` if they are able to. The existing `FileSystem`
implementations continue to default to using `status()` except that
overlay, proxy, and redirecting filesystems are taught to forward calls
to `exists()` correctly to their wrapped/external filesystem.
Co-authored-by: Ben Langmuir <blangmuir at apple.com>
Commit: 62624a4bfed4ea468dcb677b799aee3518a24bf7
https://github.com/llvm/llvm-project/commit/62624a4bfed4ea468dcb677b799aee3518a24bf7
Author: Harrison,Hao <57025411+TSWorld1314 at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[Support] Fix the issue where the character being saved in Unicode causes a warning to be treated as an error in Visual Studio 2022. (#88513)
Fix the issue where the character being saved in Unicode causes a
warning to be treated as an error in Visual Studio 2022.
![image](https://github.com/llvm/llvm-project/assets/57025411/07353525-6520-4b74-b4f5-5b3f5afc47e1)
Commit: 8a4b7de91dc334c828674aa2cad927c6ffb9cf37
https://github.com/llvm/llvm-project/commit/8a4b7de91dc334c828674aa2cad927c6ffb9cf37
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Make TTIRef capture argument instead of outer declaration.
Commit: 0f82469314f34a086669dfcd190a9f89260fbee5
https://github.com/llvm/llvm-project/commit/0f82469314f34a086669dfcd190a9f89260fbee5
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll
Log Message:
-----------
[Passes] Run SimpleLoopUnswitch after introducing invariant branches. (#81271)
IndVars may be able to replace a loop dependent condition with a loop
invariant one, but loop-unswitch runs before IndVars, so the invariant
check remains in the loop.
For an example, consider a read-only loop with a bounds check:
https://godbolt.org/z/8cdj4qhbG
This patch uses a approach similar to the way extra cleanup passes are
run on demand after vectorization (added in acea6e9cfa4c4a0e8678c7).
It introduces a new ShouldRunExtraSimpleLoopUnswitch analysis marker,
which IndVars can use to indicate that extra unswitching is beneficial.
ExtraSimpleLoopUnswitchPassManager uses this analysis to determine
whether to run its passes on a loop.
Compile-time impact (geomean) ranges from +0.0% to 0.02%
https://llvm-compile-time-tracker.com/compare.php?from=138c0beb109ffe47f75a0fe8c4dc2cdabe8a6532&to=19e6e99eeb280d426907ea73a21b139ba7225627&stat=instructions%3Au
Compile-time impact (geomean) of unconditionally running
SimpleLoopUnswitch ranges from +0.05% - +0.16%
https://llvm-compile-time-tracker.com/compare.php?from=138c0beb109ffe47f75a0fe8c4dc2cdabe8a6532&to=2930dfd5accdce2e6f8d5146ae4d626add2065a2&stat=instructions:u
Unconditionally running SimpleLoopUnswitch seems to indicate that there
are multiple other scenarios where we fail to run unswitching when
opportunities remain.
Fixes https://github.com/llvm/llvm-project/issues/85551.
PR: https://github.com/llvm/llvm-project/pull/81271
Commit: c6cd4608c8c4a5356ae41ef05e67df3dc5d9500b
https://github.com/llvm/llvm-project/commit/c6cd4608c8c4a5356ae41ef05e67df3dc5d9500b
Author: Matthias Braun <matze at braunis.de>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/lib/IR/Verifier.cpp
A llvm/test/Verifier/threadlocal-pass.ll
A llvm/test/Verifier/threadlocal.ll
Log Message:
-----------
IRVerifier: Allow GlobalValue as llvm.threadlocal.address operand (#88321)
Loosen `llvm.threadlocal.address` verifier checks to allow any
`GlobalValue` with `isThreadLocal()` set to true.
Commit: daa88364df15683bfa0e58d62cc96d33cd49d34b
https://github.com/llvm/llvm-project/commit/daa88364df15683bfa0e58d62cc96d33cd49d34b
Author: Erich Keane <ekeane at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/OpenACCClause.h
A clang/include/clang/Basic/OpenACCClauses.def
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/ParserOpenACC/parse-clauses.c
M clang/test/SemaOpenACC/compute-construct-clause-ast.cpp
A clang/test/SemaOpenACC/compute-construct-if-clause.c
A clang/test/SemaOpenACC/compute-construct-if-clause.cpp
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[OpenACC] Implement 'if' clause for Compute Constructs (#88411)
Like with the 'default' clause, this is being applied to only Compute
Constructs for now. The 'if' clause takes a condition expression which
is used as a runtime value.
This is not a particularly complex semantic implementation, as there
isn't much to this clause, other than its interactions with 'self',
which will be managed in the patch to implement that.
Commit: 7b6b023121fe7d612dc571de0ff3dcaaf8477765
https://github.com/llvm/llvm-project/commit/7b6b023121fe7d612dc571de0ff3dcaaf8477765
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M flang/lib/Semantics/check-cuda.cpp
M flang/test/Semantics/cuf11.cuf
Log Message:
-----------
[flang][cuda] Fix crash in semantic (#88577)
Fix for #88451
Do not perform semantic check about data transfer on assignment
statement in device context.
Commit: 900be9013fdc3bab9fce906f8a71e59ecd8873b4
https://github.com/llvm/llvm-project/commit/900be9013fdc3bab9fce906f8a71e59ecd8873b4
Author: Victor Toni <ViToni at users.noreply.github.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M libc/src/__support/str_to_float.h
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
M llvm/lib/Support/APInt.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/JumpThreading/free_instructions.ll
M llvm/utils/lint/common_lint.py
Log Message:
-----------
Fix typos (#88565)
Commit: 2996cb7970fb536d7db1088d571dc8d2f9ad35fa
https://github.com/llvm/llvm-project/commit/2996cb7970fb536d7db1088d571dc8d2f9ad35fa
Author: Michael Flanders <flanders.michaelk at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libc/docs/stdbit.rst
M libc/utils/docgen/docgen.py
A libc/utils/docgen/stdbit.json
Log Message:
-----------
[libc][docs] use docgen to generate stdbit rst docs (#88540)
Closes #88066.
Compared to before, the function names in the stdbit table are sorted by
function name, not order-of-appearance in the standard. Since macros
aren't printed by docgen.py and are still a TODO in the code, they are
also not printed in the new stdbit.h docs.
Adds some checks to docgen.py for conditions that tripped me up.
Add code to docgen.py to add the include of the `|check|` rewriter,
since all other generated files need it.
Commit: eaa3947106e50d6d837e6681fb55cf92c2bb0f9a
https://github.com/llvm/llvm-project/commit/eaa3947106e50d6d837e6681fb55cf92c2bb0f9a
Author: erichkeane <ekeane at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Parse/Parser.h
Log Message:
-----------
[NFC] Remove unused type alias in OpenACC
Leftover from a previous commit, this ends up not being used, so remove
it.
Commit: a472e6473e6921f22427d41c3d29e9a26eb4ab32
https://github.com/llvm/llvm-project/commit/a472e6473e6921f22427d41c3d29e9a26eb4ab32
Author: erichkeane <ekeane at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/AST/OpenACCClause.h
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[NFC][OpenACC] Rename visitor functions to omit redundant OpenACC
While working on a followup patch, it became clear that this extra bit
of 'OpenACC' before each clause name was redundant with the visitors, so
remove it to make this a little less verbose.
Commit: db8e182952573fa9198424a6ed1b1bb1676eae62
https://github.com/llvm/llvm-project/commit/db8e182952573fa9198424a6ed1b1bb1676eae62
Author: erichkeane <ekeane at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
Log Message:
-----------
[NFC] Clang-format previous OpenACC Patch
Commit: 779ba60417b467a6d2d25101b11711c009694315
https://github.com/llvm/llvm-project/commit/779ba60417b467a6d2d25101b11711c009694315
Author: Artem Chikin <achikin at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
M clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
Log Message:
-----------
[clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (#88152)
As-is, calls to `exists()` fallback on the implementation in
`ProxyFileSystem::exists` which explicitly calls out to the underlying
`FS`, which for the `DependencyScanningFilesystem` (overlay) is the real
underlying filesystem.
Instead, directly overloading `exists` allows us to have it rely on the
cached `status` behavior used elsewhere by the
`DependencyScanningFilesystem`.
Commit: 03c393db1821ef4c362c4c228492c6fb03f8876f
https://github.com/llvm/llvm-project/commit/03c393db1821ef4c362c4c228492c6fb03f8876f
Author: erichkeane <ekeane at nvidia.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
Fix build failure from a472e6473e69
Looks like I forgot to do build CIndex.cpp when validating myself!
Commit: 0d2bb7f017f13ceae793fab7d83d3e67e8d8d8f8
https://github.com/llvm/llvm-project/commit/0d2bb7f017f13ceae793fab7d83d3e67e8d8d8f8
Author: Tom Stellard <tstellar at redhat.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/cmake/caches/Release.cmake
Log Message:
-----------
[CMake][Release] Disable PGO (#88465)
Running the test-release.sh script with PGO enabled causes build errors
like:
ld.lld: error: Function Import: link error: linking module flags
'ProfileSummary': IDs have conflicting values
I believe this a build system bug due to the PGO profile data being
generated unconditionally. If you run `ninja check-all` and then `ninja
install` like we do in test-release.sh, then the profile data is
regenerated during `ninja install` and some of the clang tools which are
not test dependencies get build during the ninja install step with
different profile data. When these tools link against the LLVM
libraries, like libSupport, we end up with these errors.
Commit: 9bd10853e505b61f5fe2e3b3592c76787a06aa31
https://github.com/llvm/llvm-project/commit/9bd10853e505b61f5fe2e3b3592c76787a06aa31
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-integer-ops-0-to-add-0.ll
Log Message:
-----------
AMDGPU: Undo atomicrmw add/sub/xor 0 -> atomicrmw or canonicalization (#87533)
InstCombine transforms add of 0 to or of 0. For system atomics, this is
problematic because while PCIe supports add, it does not support the
other operations. Undo this for system scope atomics.
Commit: b9bed1f1106e3116e8bea38806c511b57b956929
https://github.com/llvm/llvm-project/commit/b9bed1f1106e3116e8bea38806c511b57b956929
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
A clang/test/Sema/alias-unused-win.cpp
R clang/test/Sema/alias-unused.c
A clang/test/Sema/alias-unused.cpp
Log Message:
-----------
[test] Improve tests for alias/ifunc attributes
Commit: 9e95c4947d31670ddd3abad1051eda06729c96b3
https://github.com/llvm/llvm-project/commit/9e95c4947d31670ddd3abad1051eda06729c96b3
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Log Message:
-----------
[DSE] Fix non-determinism due to address reuse (#84943)
The malloc->calloc fold creates a new MemoryAccess, which may end of at
the same address as a previously deleted access inside SkipStores.
To the most part, this is not a problem, because SkipStores is normally
only used together with MemDefs. Neither the old malloc access nor the
new calloc access will be part of MemDefs, so there is no problem here.
However, SkipStores is also used in one more place: In the main DSE
loop, ToCheck entries are checked against it. Fix this by not using
SkipStores here, and instead using a separate set to track deletions
inside this loop. This way it is not affected by the calloc optimization
that happens outside it.
This is all pretty ugly, but I haven't found another good way to fix it.
Suggestions welcome.
No test case as I don't have a reliable DSE-only test-case for this.
Fixes https://github.com/llvm/llvm-project/issues/84458.
Commit: f172bfcdc229ed6f3e8a0298dab3713fb763ff28
https://github.com/llvm/llvm-project/commit/f172bfcdc229ed6f3e8a0298dab3713fb763ff28
Author: Volodymyr Sapsai <vsapsai at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M llvm/include/llvm/ADT/StringMap.h
Log Message:
-----------
[unused-includes][ADT] Don't include DJB.h as it's not used. NFC. (#88211)
StringMap uses xxHash instead of DJB.
Commit: f22c30063ddcb7f8e8c4fb0496f515be7f9408b8
https://github.com/llvm/llvm-project/commit/f22c30063ddcb7f8e8c4fb0496f515be7f9408b8
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/test/Sema/alias-unused.cpp
Log Message:
-----------
[test] alias-unused.cpp: set triple to Linux
Otherwise the test would fail on Darwin and other platforms that use
Itanium ABI but do not support alias/ifunc.
Commit: aef28100294d04c2253a1cb8bbf552fa296dea4e
https://github.com/llvm/llvm-project/commit/aef28100294d04c2253a1cb8bbf552fa296dea4e
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M lld/ELF/Relocations.cpp
Log Message:
-----------
[ELF] Relocations: Avoid MIPS check for ELFCLASS64 with if constexpr. NFC
After inlining, `scanSection` is significantly longer (more than 100+
instructions on x86-64 built with Clang) when `i` does not always
increment by one (MIPS).
Commit: 94b3c192d3468752e6bc2f20957d433bccdb8ff3
https://github.com/llvm/llvm-project/commit/94b3c192d3468752e6bc2f20957d433bccdb8ff3
Author: Jim Lin <jim at andestech.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/Driver/frame-pointer-elim.c
Log Message:
-----------
[M68k][clang] Enable frame pointer optimization by default (#87264)
Enable frame pointer optimization by default to match it with gcc.
Fixes: https://github.com/llvm/llvm-project/issues/75013
Commit: 0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac
https://github.com/llvm/llvm-project/commit/0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/include/clang/Basic/Cuda.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaBase.h
A clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Serialization/ASTReader.h
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaBase.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
Log Message:
-----------
[clang] Introduce `SemaCUDA` (#88559)
This patch moves CUDA-related `Sema` function into new `SemaCUDA` class,
following the recent example of SYCL, OpenACC, and HLSL. This is a part
of the effort to split Sema. Additional context can be found in
https://github.com/llvm/llvm-project/pull/82217,
https://github.com/llvm/llvm-project/pull/84184,
https://github.com/llvm/llvm-project/pull/87634.
Commit: 6dcb60481323c871556a5a14ed887a5867ece114
https://github.com/llvm/llvm-project/commit/6dcb60481323c871556a5a14ed887a5867ece114
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/SemaCXX/type-traits.cpp
Log Message:
-----------
[clang] Implement `__is_pointer_interconvertible_base_of()` (#88473)
This patch implements intrinsic that supports
`std::is_pointer_interconvertible_base_of` type trait from
[P0466R5](https://wg21.link/p0466r5) "Layout-compatibility and
Pointer-interconvertibility Traits".
Normative wording:
> Comment: If `Base` and Derived are non-union class types and are not
(possibly _cv_-qualified) versions of the same type, `Derived` is a
complete type.
> Condition: `Derived` is unambiguously derived from `Base` without
regard to _cv_-qualifiers, and each object of type `Derived` is
pointer-interconvertible (6.7.2 [basic.compound]) with its `Base`
subobject, or `Base` and `Derived` are not unions and name the same
class type without regard to _cv_-qualifiers.
The paper also express the following intent:
> Note that `is_pointer_interconvertible_base_of_v<T,T>` is always true
under this wording, even though `T` is not derived from itself.
I find the treatment of unions in the wording contradictory to this
intent, and I'm not able to find anything relevant in minutes or on the
reflector. That said, this patch implements what the wording says, since
it's very explicit about unions.
Commit: 79dca25f4a0fefd47e9e37d9ce47d84dc0b3bedb
https://github.com/llvm/llvm-project/commit/79dca25f4a0fefd47e9e37d9ce47d84dc0b3bedb
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/tools/clang-installapi/Options.cpp
Log Message:
-----------
[InstallAPI] Replace std::string -> StringRef
Commit: ed128c7df9b4e60bfd814dc9fd22de1dde4a2c1c
https://github.com/llvm/llvm-project/commit/ed128c7df9b4e60bfd814dc9fd22de1dde4a2c1c
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
A clang/test/CXX/drs/cwg118.cpp
A clang/test/CXX/drs/cwg124.cpp
A clang/test/CXX/drs/cwg158.cpp
A clang/test/CXX/drs/cwg1748.cpp
A clang/test/CXX/drs/cwg177x.cpp
A clang/test/CXX/drs/cwg1807.cpp
A clang/test/CXX/drs/cwg185.cpp
A clang/test/CXX/drs/cwg193.cpp
A clang/test/CXX/drs/cwg199.cpp
A clang/test/CXX/drs/cwg201.cpp
A clang/test/CXX/drs/cwg210.cpp
A clang/test/CXX/drs/cwg2335.cpp
A clang/test/CXX/drs/cwg2390.cpp
A clang/test/CXX/drs/cwg2504.cpp
A clang/test/CXX/drs/cwg292.cpp
A clang/test/CXX/drs/cwg392.cpp
A clang/test/CXX/drs/cwg412.cpp
A clang/test/CXX/drs/cwg438.cpp
A clang/test/CXX/drs/cwg439.cpp
A clang/test/CXX/drs/cwg441.cpp
A clang/test/CXX/drs/cwg462.cpp
A clang/test/CXX/drs/cwg492.cpp
A clang/test/CXX/drs/cwg519.cpp
A clang/test/CXX/drs/cwg571.cpp
A clang/test/CXX/drs/cwg605.cpp
A clang/test/CXX/drs/cwg650.cpp
A clang/test/CXX/drs/cwg653.cpp
A clang/test/CXX/drs/cwg658.cpp
A clang/test/CXX/drs/cwg661.cpp
A clang/test/CXX/drs/cwg672.cpp
A clang/test/CXX/drs/cwgr593.cpp
M clang/test/CXX/drs/dr0xx.cpp
M clang/test/CXX/drs/dr10xx.cpp
R clang/test/CXX/drs/dr118.cpp
M clang/test/CXX/drs/dr11xx.cpp
R clang/test/CXX/drs/dr124.cpp
M clang/test/CXX/drs/dr12xx.cpp
M clang/test/CXX/drs/dr13xx.cpp
M clang/test/CXX/drs/dr14xx.cpp
R clang/test/CXX/drs/dr158.cpp
M clang/test/CXX/drs/dr15xx.cpp
M clang/test/CXX/drs/dr16xx.cpp
R clang/test/CXX/drs/dr1748.cpp
R clang/test/CXX/drs/dr177x.cpp
M clang/test/CXX/drs/dr17xx.cpp
R clang/test/CXX/drs/dr1807.cpp
R clang/test/CXX/drs/dr185.cpp
M clang/test/CXX/drs/dr18xx.cpp
R clang/test/CXX/drs/dr193.cpp
R clang/test/CXX/drs/dr199.cpp
M clang/test/CXX/drs/dr19xx.cpp
M clang/test/CXX/drs/dr1xx.cpp
R clang/test/CXX/drs/dr201.cpp
M clang/test/CXX/drs/dr20xx.cpp
R clang/test/CXX/drs/dr210.cpp
M clang/test/CXX/drs/dr21xx.cpp
M clang/test/CXX/drs/dr22xx.cpp
R clang/test/CXX/drs/dr2335.cpp
R clang/test/CXX/drs/dr2390.cpp
M clang/test/CXX/drs/dr23xx.cpp
M clang/test/CXX/drs/dr24xx.cpp
R clang/test/CXX/drs/dr2504.cpp
M clang/test/CXX/drs/dr25xx.cpp
M clang/test/CXX/drs/dr26xx.cpp
M clang/test/CXX/drs/dr27xx.cpp
M clang/test/CXX/drs/dr28xx.cpp
R clang/test/CXX/drs/dr292.cpp
M clang/test/CXX/drs/dr2xx.cpp
R clang/test/CXX/drs/dr392.cpp
M clang/test/CXX/drs/dr3xx.cpp
R clang/test/CXX/drs/dr412.cpp
R clang/test/CXX/drs/dr438.cpp
R clang/test/CXX/drs/dr439.cpp
R clang/test/CXX/drs/dr441.cpp
R clang/test/CXX/drs/dr462.cpp
R clang/test/CXX/drs/dr492.cpp
M clang/test/CXX/drs/dr4xx.cpp
R clang/test/CXX/drs/dr519.cpp
R clang/test/CXX/drs/dr571.cpp
R clang/test/CXX/drs/dr593.cpp
M clang/test/CXX/drs/dr5xx.cpp
R clang/test/CXX/drs/dr605.cpp
R clang/test/CXX/drs/dr650.cpp
R clang/test/CXX/drs/dr653.cpp
R clang/test/CXX/drs/dr658.cpp
R clang/test/CXX/drs/dr661.cpp
R clang/test/CXX/drs/dr672.cpp
M clang/test/CXX/drs/dr6xx.cpp
M clang/test/CXX/drs/dr7xx.cpp
M clang/test/CXX/drs/dr8xx.cpp
M clang/test/CXX/drs/dr9xx.cpp
M clang/www/make_cxx_dr_status
Log Message:
-----------
[clang][NFC] Replace `dr` with `cwg` in DR test suite
This patch is breaking `dr` to `cwg` equivalence in our terminology, making room for tests for LWG issues that concern compiler intrinsics.
Commit: 4138367444a2e3431cdfc7ab6e16c9cab5c76ad8
https://github.com/llvm/llvm-project/commit/4138367444a2e3431cdfc7ab6e16c9cab5c76ad8
Author: Ian Anderson <iana at apple.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M clang/lib/Basic/Module.cpp
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/module.modulemap
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/ptrauth.h
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/stddef.h
A clang/test/Modules/ptrauth-include-from-darwin.m
Log Message:
-----------
[modules] allow use of ptrauth module from no_undeclared_includes system modules (#88432)
Co-authored-by: Alex Lorenz <arphaman at gmail.com>
Commit: 5b36bf549c8c900d0f01451e02abd821f38d4538
https://github.com/llvm/llvm-project/commit/5b36bf549c8c900d0f01451e02abd821f38d4538
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/test/CXX/drs/dr6xx.cpp
Log Message:
-----------
[clang][NFC] Tidy up extension warnings about `_Static_assert`
Some tests in `dr6xx.cpp` were using C11 `_Static_assert`, and were expecting extension warnings in C++98 mode because of that. This is noise, and we can do better than that.
Commit: 8d8502a1b6e4e2b775d16be456f6b5ee544dcc55
https://github.com/llvm/llvm-project/commit/8d8502a1b6e4e2b775d16be456f6b5ee544dcc55
Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
M mlir/test/Target/SPIRV/decorations.mlir
Log Message:
-----------
[mlir][spirv] Add op decoration NoContraction (#88578)
Commit: 37ebf2ae748f8cbfab756321e04fc7e8c86996a4
https://github.com/llvm/llvm-project/commit/37ebf2ae748f8cbfab756321e04fc7e8c86996a4
Author: Lang Hames <lhames at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/Core.cpp
Log Message:
-----------
[ORC] Replace more KV loop variables with structured bindings.
Coding my way home: 4.42841S, 102.96190W
Commit: 3cf8535dbf0bf5fafa99ea1f300e2384a7254fba
https://github.com/llvm/llvm-project/commit/3cf8535dbf0bf5fafa99ea1f300e2384a7254fba
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bfloat.ll
M llvm/test/CodeGen/X86/concat-fpext-v2bf16.ll
Log Message:
-----------
[X86][BF16] Improve vectorization of BF16 (#88486)
1. Move expansion to combineFP_EXTEND to help with small vectors;
2. Combine FP_ROUND to reduce fptrunc then fpextend after promotion;
Commit: df9c00beea5be08fc47aaea58eae333fc6cbef33
https://github.com/llvm/llvm-project/commit/df9c00beea5be08fc47aaea58eae333fc6cbef33
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
M llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
Log Message:
-----------
[CVP] Use at-use info in `processBinOp` (#88523)
This patch uses `getConstantRangeAtUse` to infer nsw/nuw flags with
at-use info. It will enables more optimizations in InstCombine.
Compile-time impact:
http://llvm-compile-time-tracker.com/compare.php?from=a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4&to=a83d3402b663439b91cb37a046fb7ac0220ba5c7&stat=instructions%3Au
Related issue: #87854
Commit: 6d66db3890a18e3926a49cbfeb28e99c464cfcd5
https://github.com/llvm/llvm-project/commit/6d66db3890a18e3926a49cbfeb28e99c464cfcd5
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/vec15-base.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-base.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-calls.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-reorder-reshuffle.ll
M llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-base.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-calls.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-gather-some-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
M llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
Log Message:
-----------
[SLP] Initial vectorization of non-power-of-2 ops. (#77790)
This patch enables vectorization for non-power-of-2 VFs. Initially only
VFs where adding 1 makes the VF a power-of-2, i.e. we can still make
relatively effective use of the vectors.
It relies on the existing target cost-models to return accurate costs
for
non-power-of-2 vectors. I checked mostly AArch64 and X86 and
there the costs seem reasonable for the costs I checked, although
I expect there will be a need to refine both the cost-models and
lowering
to make most effective use of non-power-of-2 SLP vectorization.
Note that re-ordering and shuffling is not implemented for nodes
requiring padding yet to keep the initial implementation simpler.
The feature is guarded by a new flag, off by defaul for now.
PR: https://github.com/llvm/llvm-project/pull/77790
Commit: 11f22f1a963ab3c8949cb723a63c07d7a409c8a8
https://github.com/llvm/llvm-project/commit/11f22f1a963ab3c8949cb723a63c07d7a409c8a8
Author: Eric <eric at efcs.ca>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/benchmarks/CMakeLists.txt
A libcxx/benchmarks/shared_mutex_vs_mutex.bench.cpp
M libcxx/src/include/tzdb/tzdb_list_private.h
Log Message:
-----------
[tzdb] Replace shared_mutex with mutex. (#87929)
The overhead of taking a std::mutex is much lower than taking a reader
lock on a shared mutex, even under heavy contention.
The benefit of shared_mutex only occurs as the amount of
time spent in the critical sections grows large enough.
In our case all we do is read a pointer and return the lock.
As a result, using a shared lock can be ~50%-100% slower
Here are the results for the provided benchmark on my machine:
```
2024-04-07T12:48:51-04:00
Running ./libcxx/benchmarks/shared_mutex_vs_mutex.libcxx.out
Run on (12 X 400 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x6)
L1 Instruction 32 KiB (x6)
L2 Unified 1024 KiB (x6)
L3 Unified 32768 KiB (x1)
Load Average: 2.70, 2.70, 1.63
---------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------
BM_shared_mutex/threads:1 13.9 ns 13.9 ns 50533700
BM_shared_mutex/threads:2 34.5 ns 68.9 ns 9957784
BM_shared_mutex/threads:4 38.4 ns 137 ns 4987772
BM_shared_mutex/threads:8 51.1 ns 358 ns 1974160
BM_shared_mutex/threads:32 57.1 ns 682 ns 1043648
BM_mutex/threads:1 5.54 ns 5.53 ns 125867422
BM_mutex/threads:2 15.5 ns 30.9 ns 21830116
BM_mutex/threads:4 15.4 ns 57.2 ns 12136920
BM_mutex/threads:8 19.3 ns 140 ns 4997080
BM_mutex/threads:32 20.8 ns 252 ns 2859808
```
Commit: 9931e7efc6505002e866ee553af5d812123c22f5
https://github.com/llvm/llvm-project/commit/9931e7efc6505002e866ee553af5d812123c22f5
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/docs/Status/Cxx20Papers.csv
M libcxx/docs/Status/SpaceshipPapers.csv
Log Message:
-----------
[libc++][spaceship][NFC] P0905R1: Symmetry for spaceship - mark as implemented (#87871)
Implemented: https://wg21.link/P0905R1 in
0913ca197855626c93fdae4184ae80ff5a26503a
- https://eel.is/c++draft/cmp.weakeq (Removed in
https://wg21.link/P1959R0)
- https://eel.is/c++draft/cmp.strongeq (Removed in
https://wg21.link/P1959R0)
- https://eel.is/c++draft/cmp.partialord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L101
- https://eel.is/c++draft/cmp.weakord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L173
- https://eel.is/c++draft/cmp.strongord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L250
References:
- https://wg21.link/P1959R0 - Remove `std::weak_equality` and
`std::strong_equality`
Commit: e481f565286e7fbf5dda9c4a0d00ca1daae8abeb
https://github.com/llvm/llvm-project/commit/e481f565286e7fbf5dda9c4a0d00ca1daae8abeb
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/TestDataFormatterLibcxxChrono.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/main.cpp
Log Message:
-----------
[lldb][libc++] Adds local_t clock data formatters. (#88178)
Commit: a33a754cff02fda7520fa63fbc6c85c274a44baa
https://github.com/llvm/llvm-project/commit/a33a754cff02fda7520fa63fbc6c85c274a44baa
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
Log Message:
-----------
[lldb] Fixes comment typos.
Commit: 0412a8651aa6cbdd697e904a758e0f95e6635cee
https://github.com/llvm/llvm-project/commit/0412a8651aa6cbdd697e904a758e0f95e6635cee
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/docs/LanguageExtensions.rst
Log Message:
-----------
[clang] Add missing documentation entry for `__is_pointer_interconvertible_base_of()`
Commit: 6704faf6f8a26c21c71fd0efad6af6a8d6ee52b4
https://github.com/llvm/llvm-project/commit/6704faf6f8a26c21c71fd0efad6af6a8d6ee52b4
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/trunc-store-value-ty-not-power-of-2.ll
Log Message:
-----------
[SLP] Use StoreTy to compute min VF.
This ensures that MinVF is a power-of-2, even if ValueTy's width is
not a power-of-2.
This should fix a number of buildbot failures with X86 bootstrapping.
Commit: 6775285e7695f2d45cf455f5d31b2c9fa9362d3d
https://github.com/llvm/llvm-project/commit/6775285e7695f2d45cf455f5d31b2c9fa9362d3d
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/test/tools/CMakeLists.txt
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
M libcxx/utils/ci/buildkite-pipeline.yml
M libcxx/utils/ci/run-buildbot
Log Message:
-----------
[libc++][CMake] Removes LIBCXX_ENABLE_CLANG_TIDY. (#85794)
The clang-tidy selection in CMake was refactored in
https://github.com/llvm/llvm-project/pull/81362. During review it was
suggested to remove this CMake option.
Commit: f6ca37bf1809b2fa8f6615d4a30eadf8f479c700
https://github.com/llvm/llvm-project/commit/f6ca37bf1809b2fa8f6615d4a30eadf8f479c700
Author: paperchalice <liujunchang97 at outlook.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/MachineModuleInfo.cpp
M llvm/unittests/CodeGen/PassManagerTest.cpp
Log Message:
-----------
[NewPM] Set diagnostic handler in `MachineModuleAnalysis` (#88229)
`setDiagnosticHandler` is idempotent.
Commit: 844b532713986999aa1ffed0883eff2d1339ec7a
https://github.com/llvm/llvm-project/commit/844b532713986999aa1ffed0883eff2d1339ec7a
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
A llvm/test/Transforms/MergeFunc/call-and-invoke-with-ranges-attr.ll
Log Message:
-----------
[MergeFunc] Handle ConstantRange attributes (#88584)
It is possible to update
[AttributeImpl::operator<](https://github.com/andjo403/llvm-project/blob/a9da350aadfb5c86d36ae18398471558b22c1309/llvm/lib/IR/Attributes.cpp#L744)
instead but feels strange to say that a range is less then an other
range.
Commit: 1a895bd95ea741dd4756121244f7c2b59e693f1c
https://github.com/llvm/llvm-project/commit/1a895bd95ea741dd4756121244f7c2b59e693f1c
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/include/__algorithm/sort.h
Log Message:
-----------
[libc++] Marks a variable const. (#88562)
This removes a TODO from the code base.
Commit: 910ec6ff6dd9ed031e31800c70740fdd17cc1c2a
https://github.com/llvm/llvm-project/commit/910ec6ff6dd9ed031e31800c70740fdd17cc1c2a
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/include/__system_error/errc.h
M libcxx/include/cerrno
R libcxx/test/std/depr.cerro/cerrno.syn.verify.cpp
Log Message:
-----------
[libc++] Undeprecate POSIX STREAM macros. (#88296)
LWG3869 Deprecate std::errc constants related to UNIX STREAMS
deprecates the POSIX macros ENODATA, ENOSR, ENOSTR, and ETIME. These
were deprecated in libc++ in
https://github.com/llvm/llvm-project/pull/80542. Based on the post
commit feedback the macro are no longer deprecated. Instead libc++
leaves the deprecation to the provider of errno.h.
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: cbfcfdf75e9939bc47ac7a7c11d2122a6ad426ed
https://github.com/llvm/llvm-project/commit/cbfcfdf75e9939bc47ac7a7c11d2122a6ad426ed
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang/test/SemaCXX/type-traits.cpp
Log Message:
-----------
[clang][NFC] Add a test for CWG2254 to `is_pointer_interconvertible_base_of` tests
Resolution of that issue makes _any_ base class subobject interconvertible with the containing object, not just the first one.
Commit: 26852565a5f609e6b466f43c2f690ce3047d04c7
https://github.com/llvm/llvm-project/commit/26852565a5f609e6b466f43c2f690ce3047d04c7
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
Log Message:
-----------
[libc++][TZDZ] Validates the database version.
It seems one of the tests requires a very recent timezone database. Skip
the test when the database is older.
Commit: 61f1f1300254e91334404f0d22e75e96f0d98a85
https://github.com/llvm/llvm-project/commit/61f1f1300254e91334404f0d22e75e96f0d98a85
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__config
A libcxx/include/__debug_utils/sanitizers.h
M libcxx/include/__memory/allocator_traits.h
M libcxx/include/deque
M libcxx/include/module.modulemap
M libcxx/include/string
M libcxx/include/vector
Log Message:
-----------
[libc++][NFC] Move basic ASan annotation functions into a utility header (#87220)
Commit: ecf44b4b719c33465d9ebfbc5910b1f761856e0b
https://github.com/llvm/llvm-project/commit/ecf44b4b719c33465d9ebfbc5910b1f761856e0b
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
Log Message:
-----------
[libc++][TZDB] Removes test_indian_kerguelen test.
The work-around in 26852565a5f609e6b466f43c2f690ce3047d04c7 didn't fix
the CI. Since the entire local database is compared with the libc++
implementation in a separate this this change does not remove coverage.
Commit: fad37526a3ea7d669af621342968029085862281
https://github.com/llvm/llvm-project/commit/fad37526a3ea7d669af621342968029085862281
Author: Edwin Vane <revane at google.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/check_clang_tidy.py
Log Message:
-----------
[clang-tidy] Export fixes from check_clang_tidy.py (#88186)
Makes it possible to export fixes from running llvm-lit on a clang-tidy
test. To enable, modify the RUN invocation directly in the test with the
new -export flag. llvm-lit will report the test passed and fixes can be
found in the file specified to the -export flag.
Commit: ef9446bd2d362ec90cd681ae59463d16bf671fe8
https://github.com/llvm/llvm-project/commit/ef9446bd2d362ec90cd681ae59463d16bf671fe8
Author: Enna1 <xumingjie.enna1 at bytedance.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
[GVN] lazily update dominator tree when merge unconditional branches in function (#88477)
With this change, the wall time for of GVN pass decreased from
873,745.492 ms to 367,375.304 ms in an our internal testcase.
Commit: 342aa3eb23992ad742d22ef0e0d8821a9b29de3e
https://github.com/llvm/llvm-project/commit/342aa3eb23992ad742d22ef0e0d8821a9b29de3e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-04-13 (Sat, 13 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
A llvm/test/CodeGen/RISCV/rvv/pr88576.ll
Log Message:
-----------
[LegalizeTypes][RISCV] Support scalable vectors in SplitVecRes_BITCAST/SplitVecOp_BITCAST. (#88590)
Instead of bitcasting to a scalar integer, try to split the other vector
type that is legal. We already handle the case where both types need to
be split.
Fixes #88576
Commit: 09327efdf0f02c4f865a4536db96cac539bb1c01
https://github.com/llvm/llvm-project/commit/09327efdf0f02c4f865a4536db96cac539bb1c01
Author: Chris Copeland <chris at chrisnc.net>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/include/clang/Basic/AttrDocs.td
Log Message:
-----------
[clang][docs] fix whitespace in AttrDocs.td (#88631)
Noticed this failure while working on a different change:
https://buildkite.com/llvm-project/clang-ci/builds/15553#018ed1bb-923a-48b5-9788-e8b6d3827aba
Seems to be introduced by #88448.
Commit: c6f9c84e498ee05a812511ae969773ff166fd25e
https://github.com/llvm/llvm-project/commit/c6f9c84e498ee05a812511ae969773ff166fd25e
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/lib/AST/DeclBase.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
Log Message:
-----------
[Clang] Reduce the size of Decl and classes derived from it (#87361)
Class | Old size (in bytes) | New size (in bytes)
----------------------------------|---------------------|--------------------
Decl | 40 | 32
AccessSpecDecl | 40 | 40
BlockDecl | 128 | 120
CapturedDecl | 88 | 80
EmptyDecl | 40 | 32
ExportDecl | 80 | 72
ExternCContextDecl | 72 | 64
FileScopeAsmDecl | 56 | 48
FriendDecl | 64 | 56
FriendTemplateDecl | 64 | 64
ImplicitConceptSpecializationDecl | 40 | 40
ImportDecl | 56 | 48
LifetimeExtendedTemporaryDecl | 72 | 64
LinkageSpecDecl | 80 | 72
NamedDecl | 48 | 40
ObjCPropertyImplDecl | 96 | 88
PragmaCommentDecl | 40 | 40
PragmaDetectMismatchDecl | 48 | 40
RequiresExprBodyDecl | 72 | 64
StaticAssertDecl | 64 | 56
TopLevelStmtDecl | 88 | 80
TranslationUnitDecl | 104 | 96
BaseUsingDecl | 56 | 48
UsingDecl | 88 | 80
UsingEnumDecl | 72 | 64
HLSLBufferDecl | 96 | 88
LabelDecl | 80 | 72
NamespaceAliasDecl | 96 | 88
NamespaceDecl | 112 | 104
ObjCCompatibleAliasDecl | 56 | 48
ObjCContainerDecl | 88 | 80
ObjCMethodDecl | 136 | 128
ObjCPropertyDecl | 128 | 120
TemplateDecl | 64 | 56
BuiltinTemplateDecl | 72 | 64
TypeDecl | 64 | 56
UnresolvedUsingIfExistsDecl | 48 | 40
UsingDirectiveDecl | 88 | 80
UsingPackDecl | 64 | 56
UsingShadowDecl | 80 | 72
ValueDecl | 56 | 48
When parsing libc++'s `<string>` header the used memory is reduced from
42.8MB to 42.5MB.
Commit: d48d6ba9477aa380cd5a71f899d3cb6d629f175b
https://github.com/llvm/llvm-project/commit/d48d6ba9477aa380cd5a71f899d3cb6d629f175b
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/lib/Sema/SemaExprCXX.cpp
Log Message:
-----------
[clang][NFC] Factor out VLA checks in type traits (#88646)
This is a follow-up to #88473 suggested by @cor3ntin in
https://github.com/llvm/llvm-project/pull/88473#discussion_r1562198117.
Commit: ed06b847d4e77d0b81fa6b095366bb070db57846
https://github.com/llvm/llvm-project/commit/ed06b847d4e77d0b81fa6b095366bb070db57846
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/lib/AST/DeclBase.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
Log Message:
-----------
Revert "[Clang] Reduce the size of Decl and classes derived from it" (#88654)
Reverts llvm/llvm-project#87361
On 32 bit platforms there is only a single bit available in the
`DeclCtx`, resulting in an assertion failure.
Commit: ef164cee90477e294ff692209b4cf97a0e1958ed
https://github.com/llvm/llvm-project/commit/ef164cee90477e294ff692209b4cf97a0e1958ed
Author: Sirraide <aeternalmail at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/ODRHash.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
A clang/test/AST/ast-dump-cxx2c-delete-with-message.cpp
A clang/test/AST/ast-print-cxx2c-delete-with-message.cpp
M clang/test/Lexer/cxx-features.cpp
M clang/test/PCH/cxx2a-defaulted-comparison.cpp
A clang/test/Parser/cxx2c-delete-with-message.cpp
A clang/test/SemaCXX/cxx2c-delete-with-message.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[Clang] [C++26] Implement P2573R2: `= delete("should have a reason");` (#86526)
This implements support for the `= delete("message")` syntax that was
only just added to C++26
([P2573R2](https://isocpp.org/files/papers/P2573R2.html#proposal-scope)).
Commit: 8891fd5acbe441d24a1734aa144f3f3dca075620
https://github.com/llvm/llvm-project/commit/8891fd5acbe441d24a1734aa144f3f3dca075620
Author: Kai Sasaki <lewuathe at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
Log Message:
-----------
[mlir][complex] Fastmath flag support for complex.tanh (#88571)
Commit: 6c2cc8240e11721cac466cfce89bc0f87a5019be
https://github.com/llvm/llvm-project/commit/6c2cc8240e11721cac466cfce89bc0f87a5019be
Author: David Green <david.green at arm.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
Log Message:
-----------
[AArch64] Improve cost of non-zero lane splats
This adds a cost for non-zero lane splats, which is not included by default in
SK_Broadcast but can be handled by aarch64 dup lane instruction.
Commit: 9b832b726c9c9bb0672c5f0912f6f131e3e27a10
https://github.com/llvm/llvm-project/commit/9b832b726c9c9bb0672c5f0912f6f131e3e27a10
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx20.rst
M libcxx/docs/Status/Cxx20Papers.csv
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/docs/UsingLibcxx.rst
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/memory
M libcxx/modules/std/memory.inc
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.depr_in_cxx20.verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange_explicit.verify.depr_in_cxx20..cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_is_lock_free.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load_explicit.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store_explicit.depr_in_cxx20..verify.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_is_lock_free.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp
Log Message:
-----------
[libc++] Deprecated `shared_ptr` Atomic Access APIs as per P0718R2 & Implemented P2869R3: Remove Deprecated `shared_ptr` Atomic Access APIs from C++26 (#87111)
Implements https://wg21.link/P2869R4
Implements deprecations as per https://wg21.link/P0718R2
Commit: 6e934b7cfba8e0c167d2b287a30dfc1b720397c1
https://github.com/llvm/llvm-project/commit/6e934b7cfba8e0c167d2b287a30dfc1b720397c1
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/lib/Sema/SemaCast.cpp
Log Message:
-----------
[clang] Fix -Wunused-variable in SemaCast.cpp (NFC)
llvm-project/clang/lib/Sema/SemaCast.cpp:503:23:
error: unused variable 'Res' [-Werror,-Wunused-variable]
OverloadingResult Res =
^
1 error generated.
Commit: 3c4d9559495e60dcbb431ab80d806096559a7486
https://github.com/llvm/llvm-project/commit/3c4d9559495e60dcbb431ab80d806096559a7486
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M mlir/test/CAPI/CMakeLists.txt
Log Message:
-----------
[mlir] Add lib to tests for shared build (#88574)
These resulted in link failures:
```
/usr/bin/ld:
tools/mlir/test/CAPI/CMakeFiles/mlir-capi-translation-test.dir/translation.c.o:
in function `main':
translation.c:(.text.main+0x58): undefined reference to
`LLVMContextCreate'
/usr/bin/ld: translation.c:(.text.main+0x9b): undefined reference to
`LLVMDumpModule'
/usr/bin/ld: translation.c:(.text.main+0xa3): undefined reference to
`LLVMDisposeModule'
/usr/bin/ld: translation.c:(.text.main+0xb3): undefined reference to
`LLVMContextDispose'
```
Found in mlir-hs. Not sure why this hasn't been flagged elsewhere.
Commit: 7cfe73624780010ec81ca11c41ebbf214400abdd
https://github.com/llvm/llvm-project/commit/7cfe73624780010ec81ca11c41ebbf214400abdd
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/include/clang/Basic/Cuda.h
Log Message:
-----------
[clang] Fix name conflict with `sys/mac.h` on AIX (#88644)
Fixes clang-ppc64-aix bot failure after #88559
(0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac)
https://lab.llvm.org/buildbot/#/builders/214/builds/11887
---------
Co-authored-by: Joseph Huber <huberjn at outlook.com>
Commit: d5c654b5b7c8bb81affdc69976ef9bc5ad5b4302
https://github.com/llvm/llvm-project/commit/d5c654b5b7c8bb81affdc69976ef9bc5ad5b4302
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M libcxx/include/algorithm
M libcxx/include/bit
M libcxx/include/charconv
M libcxx/include/chrono
M libcxx/include/compare
M libcxx/include/concepts
M libcxx/include/coroutine
M libcxx/include/module.modulemap
M libcxx/include/streambuf
M libcxx/test/libcxx/algorithms/half_positive.pass.cpp
M libcxx/test/libcxx/numerics/bit.ops.pass.cpp
M libcxx/test/libcxx/time/convert_to_tm.pass.cpp
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++][RFC] Only include what is required by-version in the umbrella headers (#83740)
This is a relatively low cost way of reducing the include sizes in older
language modes compared to the effect. For example, in C++14 mode the
include time of `<algorithm>` is reduced from 198ms to 127ms.
Commit: 00162162dd853795c532afa5dec4dc4e798d4a4b
https://github.com/llvm/llvm-project/commit/00162162dd853795c532afa5dec4dc4e798d4a4b
Author: YunQiang Su <syq at debian.org>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
Log Message:
-----------
CompilerRT: Normalize COMPILER_RT_DEFAULT_TARGET_TRIPLE (#88407)
If LLVM is configured with -DLLVM_DEFAULT_TARGET_TRIPLE, and the
argument is not normalized, such as Debian-style vendor-less triple,
clang will try to find libclang_rt in lib/<normalized_triple>, while
libclang_rt is placed into lib/<triple_arg>.
Let's also place libclang_rt into lib/<normalized_triple>.
Commit: 5927492e8e68c1ee5a0d84cf6c402a900aac4a3c
https://github.com/llvm/llvm-project/commit/5927492e8e68c1ee5a0d84cf6c402a900aac4a3c
Author: YunQiang Su <syq at debian.org>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
Log Message:
-----------
Revert "CompilerRT: Normalize COMPILER_RT_DEFAULT_TARGET_TRIPLE" (#88663)
Reverts llvm/llvm-project#88407
Commit: b8d0cba14bcfc5c1c2f7a878ad9eaa12b6a590b6
https://github.com/llvm/llvm-project/commit/b8d0cba14bcfc5c1c2f7a878ad9eaa12b6a590b6
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/include/llvm/TextAPI/Utils.h
M llvm/lib/TextAPI/BinaryReader/DylibReader.cpp
Log Message:
-----------
[TextAPI] Apply NFC code fixups (#88639)
* Remove unnecessary cast
* Annotate `#endif`
Commit: 48e955496bee035121ebfe5a837ebcbc2ba8846c
https://github.com/llvm/llvm-project/commit/48e955496bee035121ebfe5a837ebcbc2ba8846c
Author: Marc Auberer <marc.auberer at chillibits.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/docs/requirements-hashed.txt
M llvm/docs/requirements.txt
Log Message:
-----------
[Docs] Update python dependencies for documentation (#87877)
This has no particular reason, but imo we should update dependencies
every now and then to reduce the gap if breaking changes happen
somewhere.
Commit: 84ec2d3b38635dead7690f97f215ff4c473184f0
https://github.com/llvm/llvm-project/commit/84ec2d3b38635dead7690f97f215ff4c473184f0
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[mlir][python] add to CODEOWNERS (#88561)
Commit: a5f54175dcf120180c3d91bbc13062bbf8f42f61
https://github.com/llvm/llvm-project/commit/a5f54175dcf120180c3d91bbc13062bbf8f42f61
Author: Zentrik <Zentrik at users.noreply.github.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
Log Message:
-----------
Include cmath to fix build error on mac os 10.14 (#88665)
This fixes #88664.
Commit: 9f43a41db37253685c5ed428c215528eb92bbd43
https://github.com/llvm/llvm-project/commit/9f43a41db37253685c5ed428c215528eb92bbd43
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/test/Driver/linux-ld.c
M clang/test/Driver/sanitizer-ld.c
Log Message:
-----------
[Driver,test] Make Android runtime tests resisent to #87866 change
Suggested by YunQiang Su <syq at debian.org>
Commit: 1693009679313282afbed38778dd3fad62641e1b
https://github.com/llvm/llvm-project/commit/1693009679313282afbed38778dd3fad62641e1b
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M clang/lib/Driver/ToolChain.cpp
M clang/test/Driver/arm-compiler-rt.c
M clang/test/Driver/cl-link.c
M clang/test/Driver/compiler-rt-unwind.c
M clang/test/Driver/coverage-ld.c
M clang/test/Driver/instrprof-ld.c
M clang/test/Driver/linux-ld.c
M clang/test/Driver/mingw-sanitizers.c
M clang/test/Driver/msp430-toolchain.c
M clang/test/Driver/print-libgcc-file-name-clangrt.c
M clang/test/Driver/print-runtime-dir.c
M clang/test/Driver/riscv32-toolchain-extra.c
M clang/test/Driver/riscv32-toolchain.c
M clang/test/Driver/riscv64-toolchain-extra.c
M clang/test/Driver/riscv64-toolchain.c
M clang/test/Driver/sanitizer-ld.c
M clang/test/Driver/wasm-toolchain.c
M clang/test/Driver/wasm-toolchain.cpp
M clang/test/Driver/windows-cross.c
M clang/test/Driver/zos-ld.c
M flang/test/Driver/msvc-dependent-lib-flags.f90
Log Message:
-----------
[Driver] Ensure ToolChain::LibraryPaths is not empty for non-Darwin
Follow-up to #81037.
ToolChain::LibraryPaths holds the new compiler-rt library directory
(e.g. `/tmp/Debug/lib/clang/19/lib/x86_64-unknown-linux-gnu`). However,
it might be empty when the directory does not exist (due to the `if
(getVFS().exists(P))` change in https://reviews.llvm.org/D158475).
If neither the old/new compiler-rt library directories exists, we would
suggest the undesired old compiler-rt file name:
```
% /tmp/Debug/bin/clang++ a.cc -fsanitize=memory -o a
ld.lld: error: cannot open /tmp/Debug/lib/clang/19/lib/linux/libclang_rt.msan-x86_64.a: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```
With this change, we will correctly suggest the new compiler-rt file name.
Fix #87150
Pull Request: https://github.com/llvm/llvm-project/pull/87866
Commit: e8232c325f7c56c175b27a3538699c31519c8f5e
https://github.com/llvm/llvm-project/commit/e8232c325f7c56c175b27a3538699c31519c8f5e
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/test/Bitcode/attributes.ll
Log Message:
-----------
[ADT] In FoldingSet calulation for APInt add bit width to avoid crash (#88635)
Multiple ranges attributes with the same lower and upper limit but
different bit width caused a crash.
Commit: 8e4b0890a61088ae55b4bccbb59e5c5e10d28385
https://github.com/llvm/llvm-project/commit/8e4b0890a61088ae55b4bccbb59e5c5e10d28385
Author: wanglei <wanglei at loongson.cn>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/test/Transforms/CodeGenPrepare/LoongArch/splitgep.ll
Log Message:
-----------
[LoongArch] Return true from shouldConsiderGEPOffsetSplit (#88371)
If not performing gep splits can prevent important optimizations, such
as preventing the element indices / member offsets from being
(partially) folded into load/store instruction immediates.
Commit: dd4b40ffe3bd9da2e3d998b674305ae1f612ad51
https://github.com/llvm/llvm-project/commit/dd4b40ffe3bd9da2e3d998b674305ae1f612ad51
Author: paperchalice <liujunchang97 at outlook.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
Log Message:
-----------
[CodeGen] Let `CodeGenPassBuilder` know concrete target machine (#88614)
Many backends passes accept only `<Target>TargetMachine`, this can avoid
cast to derived type.
Commit: 7476b412d46322f52a7f58ad1d94a4398df941e2
https://github.com/llvm/llvm-project/commit/7476b412d46322f52a7f58ad1d94a4398df941e2
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/CODE_OWNERS.TXT
Log Message:
-----------
[NFC] add myself as the code owner of the PowerPC target
Norminated by Nemanja in https://discourse.llvm.org/t/powerpc-code-owner/78142
Commit: a9d7ad23fa625e7f52f2641dbb0f90e8ea12bebf
https://github.com/llvm/llvm-project/commit/a9d7ad23fa625e7f52f2641dbb0f90e8ea12bebf
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/rotate.ll
Log Message:
-----------
[InstCombine] Relax shamt assertion in fsh fold
Allow the result of the comparison to contain poison elements,
which happens if one of the elements in the input vector is
poison.
Commit: 9c3475acc9b11d08f0e0b3e230429e9f552d5f80
https://github.com/llvm/llvm-project/commit/9c3475acc9b11d08f0e0b3e230429e9f552d5f80
Author: Billy Zhu <billyzhu at modular.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
Log Message:
-----------
[MLIR][LLVM] Fix recursive DI type export memory leak (#88122)
Followup to discussion
https://github.com/llvm/llvm-project/pull/87295#discussion_r1556016667.
The export cache should not cache temporary nodes.
Commit: 37b7207651b44743909a427b5509bed5e6c21b59
https://github.com/llvm/llvm-project/commit/37b7207651b44743909a427b5509bed5e6c21b59
Author: Allen <zhongyunde at huawei.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/switch_mask.ll
Log Message:
-----------
[SimplifyCFG] Fix crash when there is unreachable large index (#88616)
The large case index out of scope is dead code, but it is still be
created for TableContents in SwitchLookupTable::SwitchLookupTable,
so make sure the table size after growing should not get smaller.
Fix https://github.com/llvm/llvm-project/issues/88607
Commit: ccea9f2ae81d140a2367a82069cd00d6b08fe855
https://github.com/llvm/llvm-project/commit/ccea9f2ae81d140a2367a82069cd00d6b08fe855
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Add tests for `computeKnownBits` of `llvm.vector.reduce.{or,and}`; NFC
Commit: 6063e3c40867e9b9865aee326ff36cb2ebbcf939
https://github.com/llvm/llvm-project/commit/6063e3c40867e9b9865aee326ff36cb2ebbcf939
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Implement `computeKnownBits` for `llvm.vector.reduce.{or,and}`
Commit: 44b1523b9a4e7e21677395e75352d9a62efe2790
https://github.com/llvm/llvm-project/commit/44b1523b9a4e7e21677395e75352d9a62efe2790
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Add tests for `computeKnownBits` of `llvm.vector.reduce.xor`; NFC
Commit: 6c71707872e4d2f9aef19d0dbd502752b7fdfba0
https://github.com/llvm/llvm-project/commit/6c71707872e4d2f9aef19d0dbd502752b7fdfba0
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Implement `computeKnownBits` for `llvm.vector.reduce.xor`
Commit: 3921dffac29d8ea1c07bc6a7253876247a6eb1a3
https://github.com/llvm/llvm-project/commit/3921dffac29d8ea1c07bc6a7253876247a6eb1a3
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/test/Transforms/InstSimplify/known-non-zero.ll
Log Message:
-----------
[ValueTracking] Add tests for `isKnownNonZero` of `llvm.vector.reduce.or`; NFC
Commit: 1e16a35fbcc6b21d1bee597c7e76f2444b7000e5
https://github.com/llvm/llvm-project/commit/1e16a35fbcc6b21d1bee597c7e76f2444b7000e5
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-14 (Sun, 14 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstSimplify/known-non-zero.ll
Log Message:
-----------
[ValueTracking] Implement `isKnownNonZero` for `llvm.vector.reduce.or`
Closes #88320
Commit: f811d7b50957b801788d7b171ddeb25b1fda415a
https://github.com/llvm/llvm-project/commit/f811d7b50957b801788d7b171ddeb25b1fda415a
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M clang/include/clang/CodeGen/CodeGenAction.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Frontend/FrontendOptions.h
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/FrontendActions.cpp
A clang/test/Driver/module-fgen-reduced-bmi.cppm
A clang/test/Modules/modules-reduced-bmi.cppm
Log Message:
-----------
[C++20] [Modules] Introduce -fexperimental-modules-reduced-bmi (#85050)
This is the driver part of
https://github.com/llvm/llvm-project/pull/75894.
This patch introduces '-fexperimental-modules-reduced-bmi' to enable
generating the reduced BMI.
This patch did:
- When `-fexperimental-modules-reduced-bmi` is specified but
`--precompile` is not specified for a module unit, we'll skip the
precompile phase to avoid unnecessary two-phase compilation phases. Then
if `-c` is specified, we will generate the reduced BMI in CodeGenAction
as a by-product.
- When `-fexperimental-modules-reduced-bmi` is specified and
`--precompile` is specified, we will generate the reduced BMI in
GenerateModuleInterfaceAction as a by-product.
- When `-fexperimental-modules-reduced-bmi` is specified for a
non-module unit. We don't do anything nor try to give a warn. This is
more user friendly so that the end users can try to test and experiment
with the feature without asking help from the build systems.
The core design idea is that users should be able to enable this easily
with the existing cmake mechanisms.
The future plan for the flag is:
- Add this to clang19 and make it opt-in for 1~2 releases. It depends on
the testing feedback to decide how long we like to make it opt-in.
- Then we can announce the existing BMI generating may be deprecated and
suggesting people (end users or build systems) to enable this for 1~2
releases.
- Finally we will enable this by default. When that time comes, the term
`BMI` will refer to the reduced BMI today and the existing BMI will only
be meaningful to build systems which loves to support two phase
compilations.
I'll send release notes and document in seperate commits after this get
landed.
Commit: f5b5db8f0875e5e096ee0b864d81f2de6ccae54a
https://github.com/llvm/llvm-project/commit/f5b5db8f0875e5e096ee0b864d81f2de6ccae54a
Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
Date: 2024-04-15 (Mon, 15 Apr 2024)
Changed paths:
M .github/CODEOWNERS
M bolt/lib/Rewrite/RewriteInstance.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/check_clang_tidy.py
M clang/cmake/caches/Release.cmake
M clang/docs/ClangFormat.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/JSONNodeDumper.h
M clang/include/clang/AST/OpenACCClause.h
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/Cuda.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
A clang/include/clang/Basic/OpenACCClauses.def
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/CodeGen/CodeGenAction.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaBase.h
A clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/Interp/FunctionPointer.h
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/InterpState.h
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/ODRHash.cpp
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Basic/Module.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Format/ContinuationIndenter.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Headers/CMakeLists.txt
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseHLSL.cpp
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaAccess.cpp
M clang/lib/Sema/SemaBase.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
M clang/test/AST/Interp/c.c
A clang/test/AST/ast-dump-cxx2c-delete-with-message.cpp
A clang/test/AST/ast-dump-default-arg-json.cpp
A clang/test/AST/ast-dump-default-init-json.cpp
A clang/test/AST/ast-dump-default-init.cpp
M clang/test/AST/ast-dump-for-range-lifetime.cpp
A clang/test/AST/ast-print-cxx2c-delete-with-message.cpp
M clang/test/Analysis/invalidated-iterator.cpp
A clang/test/C/C99/n809.c
A clang/test/C/C99/n809_2.c
A clang/test/C/C99/n809_3.c
A clang/test/CXX/drs/cwg118.cpp
A clang/test/CXX/drs/cwg124.cpp
A clang/test/CXX/drs/cwg158.cpp
A clang/test/CXX/drs/cwg1748.cpp
A clang/test/CXX/drs/cwg177x.cpp
A clang/test/CXX/drs/cwg1807.cpp
A clang/test/CXX/drs/cwg185.cpp
A clang/test/CXX/drs/cwg193.cpp
A clang/test/CXX/drs/cwg199.cpp
A clang/test/CXX/drs/cwg201.cpp
A clang/test/CXX/drs/cwg210.cpp
A clang/test/CXX/drs/cwg2335.cpp
A clang/test/CXX/drs/cwg2390.cpp
A clang/test/CXX/drs/cwg2504.cpp
A clang/test/CXX/drs/cwg292.cpp
A clang/test/CXX/drs/cwg392.cpp
A clang/test/CXX/drs/cwg412.cpp
A clang/test/CXX/drs/cwg438.cpp
A clang/test/CXX/drs/cwg439.cpp
A clang/test/CXX/drs/cwg441.cpp
A clang/test/CXX/drs/cwg462.cpp
A clang/test/CXX/drs/cwg492.cpp
A clang/test/CXX/drs/cwg519.cpp
A clang/test/CXX/drs/cwg571.cpp
A clang/test/CXX/drs/cwg605.cpp
A clang/test/CXX/drs/cwg650.cpp
A clang/test/CXX/drs/cwg653.cpp
A clang/test/CXX/drs/cwg658.cpp
A clang/test/CXX/drs/cwg661.cpp
A clang/test/CXX/drs/cwg672.cpp
A clang/test/CXX/drs/cwgr593.cpp
M clang/test/CXX/drs/dr0xx.cpp
M clang/test/CXX/drs/dr10xx.cpp
R clang/test/CXX/drs/dr118.cpp
M clang/test/CXX/drs/dr11xx.cpp
R clang/test/CXX/drs/dr124.cpp
M clang/test/CXX/drs/dr12xx.cpp
M clang/test/CXX/drs/dr13xx.cpp
M clang/test/CXX/drs/dr14xx.cpp
R clang/test/CXX/drs/dr158.cpp
M clang/test/CXX/drs/dr15xx.cpp
M clang/test/CXX/drs/dr16xx.cpp
R clang/test/CXX/drs/dr1748.cpp
R clang/test/CXX/drs/dr177x.cpp
M clang/test/CXX/drs/dr17xx.cpp
R clang/test/CXX/drs/dr1807.cpp
R clang/test/CXX/drs/dr185.cpp
M clang/test/CXX/drs/dr18xx.cpp
R clang/test/CXX/drs/dr193.cpp
R clang/test/CXX/drs/dr199.cpp
M clang/test/CXX/drs/dr19xx.cpp
M clang/test/CXX/drs/dr1xx.cpp
R clang/test/CXX/drs/dr201.cpp
M clang/test/CXX/drs/dr20xx.cpp
R clang/test/CXX/drs/dr210.cpp
M clang/test/CXX/drs/dr21xx.cpp
M clang/test/CXX/drs/dr22xx.cpp
R clang/test/CXX/drs/dr2335.cpp
R clang/test/CXX/drs/dr2390.cpp
M clang/test/CXX/drs/dr23xx.cpp
M clang/test/CXX/drs/dr24xx.cpp
R clang/test/CXX/drs/dr2504.cpp
M clang/test/CXX/drs/dr25xx.cpp
M clang/test/CXX/drs/dr26xx.cpp
M clang/test/CXX/drs/dr27xx.cpp
M clang/test/CXX/drs/dr28xx.cpp
R clang/test/CXX/drs/dr292.cpp
M clang/test/CXX/drs/dr2xx.cpp
R clang/test/CXX/drs/dr392.cpp
M clang/test/CXX/drs/dr3xx.cpp
R clang/test/CXX/drs/dr412.cpp
R clang/test/CXX/drs/dr438.cpp
R clang/test/CXX/drs/dr439.cpp
R clang/test/CXX/drs/dr441.cpp
R clang/test/CXX/drs/dr462.cpp
R clang/test/CXX/drs/dr492.cpp
M clang/test/CXX/drs/dr4xx.cpp
R clang/test/CXX/drs/dr519.cpp
R clang/test/CXX/drs/dr571.cpp
R clang/test/CXX/drs/dr593.cpp
M clang/test/CXX/drs/dr5xx.cpp
R clang/test/CXX/drs/dr605.cpp
R clang/test/CXX/drs/dr650.cpp
R clang/test/CXX/drs/dr653.cpp
R clang/test/CXX/drs/dr658.cpp
R clang/test/CXX/drs/dr661.cpp
R clang/test/CXX/drs/dr672.cpp
M clang/test/CXX/drs/dr6xx.cpp
M clang/test/CXX/drs/dr7xx.cpp
M clang/test/CXX/drs/dr8xx.cpp
M clang/test/CXX/drs/dr9xx.cpp
A clang/test/CXX/module/module.glob.frag/cxx20-10-4-ex2.cppm
M clang/test/Driver/android-link.cpp
M clang/test/Driver/arm-compiler-rt.c
M clang/test/Driver/cl-link.c
M clang/test/Driver/compiler-rt-unwind.c
M clang/test/Driver/coverage-ld.c
M clang/test/Driver/frame-pointer-elim.c
M clang/test/Driver/instrprof-ld.c
M clang/test/Driver/linux-ld.c
M clang/test/Driver/mingw-sanitizers.c
A clang/test/Driver/module-fgen-reduced-bmi.cppm
M clang/test/Driver/msp430-toolchain.c
M clang/test/Driver/print-libgcc-file-name-clangrt.c
M clang/test/Driver/print-runtime-dir.c
M clang/test/Driver/riscv32-toolchain-extra.c
M clang/test/Driver/riscv32-toolchain.c
M clang/test/Driver/riscv64-toolchain-extra.c
M clang/test/Driver/riscv64-toolchain.c
M clang/test/Driver/sanitizer-ld.c
M clang/test/Driver/wasm-toolchain.c
M clang/test/Driver/wasm-toolchain.cpp
M clang/test/Driver/windows-cross.c
M clang/test/Driver/zos-ld.c
M clang/test/Format/lit.local.cfg
M clang/test/Lexer/cxx-features.cpp
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/module.modulemap
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/ptrauth.h
A clang/test/Modules/Inputs/ptrauth-include-from-darwin/stddef.h
M clang/test/Modules/inconsistent-deduction-guide-linkage.cppm
A clang/test/Modules/modules-reduced-bmi.cppm
M clang/test/Modules/named-modules-adl-2.cppm
M clang/test/Modules/named-modules-adl.cppm
M clang/test/Modules/placement-new-reachable.cpp
M clang/test/Modules/polluted-operator.cppm
M clang/test/Modules/pr62589.cppm
M clang/test/Modules/preferred_name.cppm
A clang/test/Modules/ptrauth-include-from-darwin.m
M clang/test/Modules/redundant-template-default-arg3.cpp
M clang/test/Modules/template-function-specialization.cpp
M clang/test/OpenMP/atomic_update_codegen.cpp
M clang/test/PCH/cxx2a-defaulted-comparison.cpp
A clang/test/Parser/cxx2c-delete-with-message.cpp
M clang/test/ParserOpenACC/parse-clauses.c
A clang/test/Sema/alias-unused-win.cpp
R clang/test/Sema/alias-unused.c
A clang/test/Sema/alias-unused.cpp
A clang/test/Sema/complex-inc-dec.c
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
A clang/test/SemaCXX/cxx2c-delete-with-message.cpp
A clang/test/SemaCXX/gh84473.cpp
M clang/test/SemaCXX/type-traits.cpp
M clang/test/SemaOpenACC/compute-construct-clause-ast.cpp
A clang/test/SemaOpenACC/compute-construct-if-clause.c
A clang/test/SemaOpenACC/compute-construct-if-clause.cpp
M clang/tools/clang-format/ClangFormat.cpp
M clang/tools/clang-installapi/Options.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/AST/ASTTraverserTest.cpp
M clang/unittests/Format/FormatTestComments.cpp
M clang/unittests/Tooling/CMakeLists.txt
R clang/unittests/Tooling/DependencyScannerTest.cpp
A clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp
A clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
M clang/www/c_status.html
M clang/www/cxx_dr_status.html
M clang/www/cxx_status.html
M clang/www/make_cxx_dr_status
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/Modules/AddCompilerRT.cmake
M compiler-rt/lib/xray/xray_trampoline_AArch64.S
M compiler-rt/lib/xray/xray_trampoline_x86_64.S
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/fuzzer/lit.cfg.py
M compiler-rt/test/lit.common.cfg.py
M compiler-rt/test/lit.common.configured.in
M compiler-rt/test/safestack/lit.cfg.py
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Semantics/check-cuda.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/asanrtl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/hip.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ockl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1010.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1011.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1012.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_803.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_900.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_908.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ocml.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/opencl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/asanrtl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/hip.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ockl.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_400.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_500.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_600.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1010.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1011.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1012.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_803.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_900.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_908.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ocml.bc
A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/opencl.bc
A flang/test/Driver/Inputs/rocm/bin/.hipVersion
A flang/test/Driver/Inputs/rocm/include/hip/hip_runtime.h
A flang/test/Driver/Inputs/rocm/share/hip/hipVersion
A flang/test/Driver/arch-specific-libdir-rpath.f95
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M flang/test/Driver/msvc-dependent-lib-flags.f90
M flang/test/Driver/omp-driver-offload.f90
M flang/test/Lower/OpenMP/default-clause.f90
M flang/test/Lower/call-by-value.f90
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/cuf11.cuf
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/docs/stdbit.rst
M libc/src/__support/str_to_float.h
M libc/utils/docgen/docgen.py
A libc/utils/docgen/stdbit.json
M libcxx/CMakeLists.txt
M libcxx/benchmarks/CMakeLists.txt
A libcxx/benchmarks/shared_mutex_vs_mutex.bench.cpp
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx20.rst
M libcxx/docs/Status/Cxx20Papers.csv
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/docs/Status/SpaceshipPapers.csv
M libcxx/docs/UsingLibcxx.rst
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/sort.h
M libcxx/include/__config
A libcxx/include/__debug_utils/sanitizers.h
M libcxx/include/__iterator/counted_iterator.h
M libcxx/include/__iterator/move_iterator.h
M libcxx/include/__mdspan/mdspan.h
M libcxx/include/__memory/allocator_traits.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__system_error/errc.h
M libcxx/include/algorithm
M libcxx/include/bit
M libcxx/include/cerrno
M libcxx/include/charconv
M libcxx/include/chrono
M libcxx/include/compare
M libcxx/include/concepts
M libcxx/include/coroutine
M libcxx/include/deque
M libcxx/include/iterator
M libcxx/include/mdspan
M libcxx/include/memory
M libcxx/include/module.modulemap
M libcxx/include/span
M libcxx/include/streambuf
M libcxx/include/string
M libcxx/include/vector
M libcxx/modules/std/memory.inc
M libcxx/src/include/tzdb/tzdb_list_private.h
M libcxx/test/libcxx/algorithms/half_positive.pass.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.depr_in_cxx20.verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange_explicit.verify.depr_in_cxx20..cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_is_lock_free.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load_explicit.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store.depr_in_cxx20..verify.cpp
A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store_explicit.depr_in_cxx20..verify.cpp
M libcxx/test/libcxx/numerics/bit.ops.pass.cpp
M libcxx/test/libcxx/time/convert_to_tm.pass.cpp
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/containers/views/mdspan/mdspan/deduction.pass.cpp
M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp
R libcxx/test/std/depr.cerro/cerrno.syn.verify.cpp
M libcxx/test/std/iterators/predef.iterators/counted.iterator/increment.pass.cpp
A libcxx/test/std/iterators/predef.iterators/move.iterators/sized_sentinel.compile.pass.cpp
M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_is_lock_free.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp
M libcxx/test/tools/CMakeLists.txt
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
M libcxx/utils/ci/buildkite-pipeline.yml
M libcxx/utils/ci/run-buildbot
M lld/ELF/Relocations.cpp
M lldb/bindings/interface/SBFrameExtensions.i
M lldb/cmake/caches/Apple-lldb-Linux.cmake
M lldb/cmake/caches/Apple-lldb-macOS.cmake
M lldb/source/DataFormatters/TypeCategoryMap.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/TestDataFormatterLibcxxChrono.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/main.cpp
M lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
M lldb/test/API/lang/objcxx/objc-builtin-types/main.cpp
M lldb/test/API/python_api/frame/TestFrames.py
M lldb/unittests/Host/FileSystemTest.cpp
M llvm/CODE_OWNERS.TXT
M llvm/docs/LangRef.rst
M llvm/docs/requirements-hashed.txt
M llvm/docs/requirements.txt
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/include/llvm/ADT/StringMap.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/include/llvm/TextAPI/Utils.h
M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/MachineModuleInfo.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/ProfileData/InstrProfWriter.cpp
M llvm/lib/Support/APInt.cpp
M llvm/lib/Support/FileCollector.cpp
M llvm/lib/Support/Parallel.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
M llvm/lib/Target/Hexagon/HexagonSubtarget.h
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.h
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrSSE.td
M llvm/lib/TextAPI/BinaryReader/DylibReader.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
M llvm/test/Analysis/CostModel/SystemZ/reduce-add.ll
A llvm/test/Analysis/ScalarEvolution/range-attribute.ll
M llvm/test/Bitcode/attributes.ll
A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-vscale.ll
M llvm/test/CodeGen/AArch64/abd-combine.ll
M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
M llvm/test/CodeGen/AArch64/complex-deinterleaving-add-mull-scalable-fast.ll
M llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
M llvm/test/CodeGen/AArch64/misched-bundle.mir
M llvm/test/CodeGen/AArch64/sve-fixed-length-build-vector.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-arith.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-fma.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-minmax.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-minmax.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-shifts.ll
M llvm/test/CodeGen/AArch64/sve-fpext-load.ll
M llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll
M llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll
M llvm/test/CodeGen/AArch64/sve-gather-scatter-addr-opts.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
M llvm/test/CodeGen/AArch64/sve-smulo-sdnode.ll
M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-extend-trunc.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-rem.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll
M llvm/test/CodeGen/AArch64/sve-umulo-sdnode.ll
M llvm/test/CodeGen/AArch64/sve-vecreduce-dot.ll
M llvm/test/CodeGen/AArch64/sve2-xar.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
A llvm/test/CodeGen/AMDGPU/half-alloca-promotion.ll
A llvm/test/CodeGen/ARM/simplifysetcc_narrow_load.ll
M llvm/test/CodeGen/NVPTX/bf16-instructions.ll
A llvm/test/CodeGen/PowerPC/simplifysetcc_narrow_load.ll
A llvm/test/CodeGen/RISCV/pr88365.ll
M llvm/test/CodeGen/RISCV/rvv/calling-conv.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmf.ll
M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/pr88576.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-load.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
M llvm/test/CodeGen/RISCV/rvv/vmsge.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgeu.ll
A llvm/test/CodeGen/SystemZ/vec-reduce-add-01.ll
M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
M llvm/test/CodeGen/X86/bfloat.ll
M llvm/test/CodeGen/X86/combine-sse41-intrinsics.ll
M llvm/test/CodeGen/X86/concat-fpext-v2bf16.ll
M llvm/test/CodeGen/X86/dpbusd.ll
M llvm/test/CodeGen/X86/dpbusd_i4.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll
M llvm/test/MC/Disassembler/SystemZ/insns.txt
M llvm/test/MC/Disassembler/SystemZ/invalid-regs.txt
M llvm/test/MC/SystemZ/insn-good.s
A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-integer-ops-0-to-add-0.ll
A llvm/test/Transforms/CodeGenPrepare/LoongArch/lit.local.cfg
A llvm/test/Transforms/CodeGenPrepare/LoongArch/splitgep.ll
M llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
M llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
M llvm/test/Transforms/InstCombine/icmp-dom.ll
M llvm/test/Transforms/InstCombine/known-bits.ll
M llvm/test/Transforms/InstCombine/rotate.ll
M llvm/test/Transforms/InstSimplify/known-non-zero.ll
M llvm/test/Transforms/JumpThreading/free_instructions.ll
A llvm/test/Transforms/LoopVectorize/LoongArch/reg-usage.ll
A llvm/test/Transforms/MergeFunc/call-and-invoke-with-ranges-attr.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec15-base.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-base.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-calls.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-reorder-reshuffle.ll
M llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
A llvm/test/Transforms/SLPVectorizer/X86/trunc-store-value-ty-not-power-of-2.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-base.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-calls.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-gather-some-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
M llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
M llvm/test/Transforms/SimplifyCFG/switch_mask.ll
M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
A llvm/test/Verifier/threadlocal-pass.ll
A llvm/test/Verifier/threadlocal.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
M llvm/unittests/CodeGen/PassManagerTest.cpp
M llvm/unittests/Support/VirtualFileSystemTest.cpp
M llvm/utils/lint/common_lint.py
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/IR/OpDefinition.h
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/IR/Operation.cpp
M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
M mlir/test/CAPI/CMakeLists.txt
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
M mlir/test/Conversion/ComplexToStandard/full-conversion.mlir
M mlir/test/Dialect/Bufferization/Transforms/tensor-copy-insertion.mlir
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
M mlir/test/Dialect/SparseTensor/sparse_sddmm.mlir
M mlir/test/IR/properties.mlir
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
M mlir/test/Target/SPIRV/decorations.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
M openmp/runtime/src/z_Linux_util.cpp
Log Message:
-----------
Rebase
Created using spr 1.3.6-beta.1
Compare: https://github.com/llvm/llvm-project/compare/910526051250...f5b5db8f0875
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