Changes

Summary

  1. [libc] Extend libc's linux script to handle runtimes build. (details)
  2. [libc] Add "clang" as one of the enabled projects under fullbuild. (details)
Commit fb050a65824cb6ecd5e8b357885c6890d55b0989 by sivachandra
[libc] Extend libc's linux script to handle runtimes build.

Differential Revision: https://reviews.llvm.org/D124706
The file was modifiedzorg/buildbot/builders/annotated/libc-linux.py (diff)
Commit 30c0c9b6e396ba364d0575c9a47d3d584ea1a967 by sivachandra
[libc] Add "clang" as one of the enabled projects under fullbuild.
The file was modifiedzorg/buildbot/builders/annotated/libc-linux.py (diff)

Summary

  1. [SCEVExpander] Remove handling for mixed int/pointer min/max (NFCI) (details)
  2. [libc++abi] Reword uncaught exception termination message (details)
  3. [GVNSink] Make GVNSink resistant against self referencing instructions (PR36954) (details)
  4. AMDGPU/SDAG: Refine the fold to v_mad_[iu]64_[iu]32 (details)
  5. [NFC][PowerPC] Add 32-bit AIX RUN lines to test cases. (details)
  6. [MLIR Parser] Improve QoI for "expected token" errors (details)
  7. [flang] Fold real-valued DIM() (details)
  8. [Frontend] Flip default of CreateInvocationOptions::ProbePrecompiled to false (details)
  9. [MLIR][AMDGPU] Add AMDGPU dialect, wrappers around raw buffer intrinsics (details)
  10. [CodeGen] Use ABI alignment for C++ new expressions (details)
  11. [mlir] Fail early if AnalysisState::getBuffer() returns failure (details)
  12. [libc++abi][NFC] Fix typo in comment (details)
  13. [flang] Fold real-valued MODULO() and MOD() (details)
  14. Diagnose unreachable generic selection associations (details)
  15. [AMDGPU][GFX10] Support base+soffset+offset SMEM loads. (details)
  16. [InstCombine] Add additional freeze tests (NFC) (details)
  17. [flang] Enforce limit on rank + corank (details)
  18. [SCCP] Preserve Name when converting SExt->ZExt. (details)
  19. [CVP] Preserve exact name when converting sext->zext and ashr->lshr. (details)
  20. Revert "[AArch64] Generate AND in place of CSEL for predicated CTTZ" (details)
  21. [libc++][ranges] Implement `views::drop`. (details)
Commit 0eafef117117d84027506486348a72480670aefa by npopov
[SCEVExpander] Remove handling for mixed int/pointer min/max (NFCI)

Mixed int/pointer min/max are no longer possible.
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Commit ead7a5fc04360c1d740214048b15c4d7100dc768 by Louis Dionne
[libc++abi] Reword uncaught exception termination message

When we terminate due to an exception being uncaught, libc++abi prints
a message saying "terminating with uncaught exception [...]". This patch
changes that to say "terminating due to uncaught exception [...]" instead,
which is a bit clearer. Indeed, I've seen some people being confused and
thinking that libc++abi was the component throwing the exception.

Differential Revision: https://reviews.llvm.org/D125245
The file was modifiedlibcxxabi/src/cxa_default_handlers.cpp
Commit 009f6ce0ef1b5cdc8ec465797366ce1ce151acd4 by dawid_jurek
[GVNSink] Make GVNSink resistant against self referencing instructions (PR36954)

Before this change GVNSink pass suffers from stack overflow while processing self referenced instruction in unreachable basic block.
According [1] and [2] it's reasonable to make pass resistant against self referencing instructions.
To fix issue we skip sinking analysis when we reach instruction coming from unreachable block.

[1] https://groups.google.com/g/llvm-dev/c/843Tig9IzwA
[2] https://lists.llvm.org/pipermail/llvm-dev/2015-February/082629.html

Differential Revision: https://reviews.llvm.org/D113897
The file was modifiedllvm/test/Transforms/GVNSink/sink-common-code.ll
The file was modifiedllvm/lib/Transforms/Scalar/GVNSink.cpp
Commit 6c2a01ce3a824622e4491e913023c304841363b1 by nicolai.haehnle
AMDGPU/SDAG: Refine the fold to v_mad_[iu]64_[iu]32

Only fold for uniform values on pre-GFX9 chips. GFX9+ allow us
to keep the calculation entirely on the SALU.

For subtargets where integer multiplication isn't full-rate, avoid
folding if the multiply has too many uses.

Finally, we expand 64x32 and 64x64 multiplies here as well, if they
feed into an addition. This results in better code generation than
the generic expansion for such multiplies because we end up using
the accumulator of the MAD instructions.

Differential Revision: https://reviews.llvm.org/D123835
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/mad_64_32.ll
Commit 0c1000cbd6d25d749c78f9c27fa985a2608ff217 by amy.kwan1
[NFC][PowerPC] Add 32-bit AIX RUN lines to test cases.

This patch adds 32-bit AIX RUN lines to several test cases, along with the
addition of one new test case, to prepare for future codegen changes involving
the PPCISD::SCALAR_TO_VECTOR_PERMUTED node on 32-bit mode.
The file was modifiedllvm/test/CodeGen/PowerPC/pre-inc-disable.ll
The file was modifiedllvm/test/CodeGen/PowerPC/reduce_scalarization.ll
The file was modifiedllvm/test/CodeGen/PowerPC/load-v4i8-improved.ll
The file was addedllvm/test/CodeGen/PowerPC/aix_scalar_vector_permuted.ll
The file was modifiedllvm/test/CodeGen/PowerPC/float-vector-gather.ll
The file was modifiedllvm/test/CodeGen/PowerPC/vec_insert_elt.ll
The file was modifiedllvm/test/CodeGen/PowerPC/scalar_vector_test_4.ll
The file was modifiedllvm/test/CodeGen/PowerPC/canonical-merge-shuffles.ll
Commit ad3b358180e8e1d723b790cf5f68264e486c0b1a by clattner
[MLIR Parser] Improve QoI for "expected token" errors

A typical problem with missing a token is that the missing
token is at the end of a line.  The problem with this is that
the error message gets reported on the start of the following
line (which is where the next / invalid token is) which can
be confusing.

Handle this by noticing this case and backing up to the end of
the previous line.

Differential Revision: https://reviews.llvm.org/D125295
The file was modifiedmlir/lib/Parser/Parser.h
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/logical-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/memory-ops.mlir
The file was modifiedmlir/test/IR/invalid-locations.mlir
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/test/Dialect/ControlFlow/invalid.mlir
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/global.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/misc-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/control-flow-ops.mlir
Commit 9e50168be444dc6cc076fe3ac3d0fb73dfca7428 by pklausler
[flang] Fold real-valued DIM()

Fold references to the intrinsic function DIM with constant real
arguments.  And clean up folding of comparisons with NaNs to address
a problem noticed in testing -- NaNs should successfully compare
unequal to all values, including themselves, instead of failing all
comparisons.

Differential Revision: https://reviews.llvm.org/D125146
The file was modifiedflang/lib/Evaluate/real.cpp
The file was addedflang/test/Evaluate/fold-dim.f90
The file was modifiedflang/include/flang/Evaluate/common.h
The file was modifiedflang/include/flang/Evaluate/real.h
The file was modifiedflang/test/Evaluate/folding03.f90
The file was modifiedflang/lib/Evaluate/fold-real.cpp
Commit 00a3c9f2a46a566b3ff10f2d24b01426df2193ab by sam.mccall
[Frontend] Flip default of CreateInvocationOptions::ProbePrecompiled to false

This is generally a better default for tools other than the compiler, which
shouldn't assume a PCH file on disk is something they can consume.

Preserve the old behavior in places associated with libclang/c-index-test
(including ASTUnit) as there are tests relying on it and most important
consumers are out-of-tree. It's unclear whether the tests are specifically
trying to test this functionality, and what the downstream implications of
removing it are. Hopefully someone more familiar can clean this up in future.

Differential Revision: https://reviews.llvm.org/D125149
The file was modifiedclang/tools/libclang/Indexing.cpp
The file was modifiedclang/tools/c-index-test/core_main.cpp
The file was modifiedclang/include/clang/Frontend/Utils.h
The file was modifiedclang/unittests/Frontend/UtilsTest.cpp
The file was modifiedclang/lib/Frontend/ASTUnit.cpp
Commit f1f05a91cacb13635cac252e53e50f9f962d4627 by Krzysztof.Drewniak
[MLIR][AMDGPU] Add AMDGPU dialect, wrappers around raw buffer intrinsics

By analogy with the NVGPU dialect, introduce an AMDGPU dialect for
AMD-specific intrinsic wrappers.

The dialect initially includes wrappers around the raw buffer intrinsics.

On AMD GPUs, a memref can be converted to a "buffer descriptor" that
allows more precise control of memory access, such as by allowing for
out of bounds loads/stores to be replaced by 0/ignored without adding
additional conditional logic, which is important for performance.

The repository currently contains a limited conversion from
transfer_read/transfer_write to Mubuf intrinsics, which are an older,
deprecated intrinsic for the same functionality.

The new amdgpu.raw_buffer_* ops allow these operations to be used
explicitly and for including metadata such as whether the target
chipset is an RDNA chip or not (which impacts the interpretation of
some bits in the buffer descriptor), while still maintaining an
MLIR-like interface.

(This change also exposes the floating-point atomic add intrinsic.)

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D122765
The file was modifiedmlir/lib/Dialect/CMakeLists.txt
The file was addedmlir/lib/Dialect/AMDGPU/IR/CMakeLists.txt
The file was modifiedmlir/include/mlir/InitAllDialects.h
The file was modifiedmlir/include/mlir/Dialect/CMakeLists.txt
The file was addedmlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
The file was addedmlir/lib/Dialect/AMDGPU/CMakeLists.txt
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
The file was modifiedmlir/test/Target/LLVMIR/rocdl.mlir
The file was addedmlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/include/mlir/Dialect/AMDGPU/CMakeLists.txt
The file was addedmlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
The file was addedmlir/test/Dialect/AMDGPU/ops.mlir
The file was addedmlir/include/mlir/Dialect/AMDGPU/AMDGPU.td
The file was addedmlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
The file was addedmlir/include/mlir/Dialect/AMDGPU/AMDGPUDialect.h
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was modifiedmlir/test/Dialect/LLVMIR/rocdl.mlir
The file was addedmlir/test/Conversion/AMDGPUToROCDL/amdgpu-to-rocdl.mlir
Commit 93a8225da1f983cccb3e4b5e762369121aaa7dd5 by thakis
[CodeGen] Use ABI alignment for C++ new expressions

In case of placement new, if we do not know the alignment of the
operand, we can't assume it has the preferred alignment. It might be
e.g. a pointer to a struct member which follows ABI alignment rules.

This makes UBSAN no longer report "constructor call on misaligned
address" when constructing a double into a struct field of type double
on i686. The psABI specifies an alignment of 4 bytes, but the preferred
alignment used by Clang is 8 bytes.

We now use ABI alignment for allocating new as well, as the preferred
alignment should be used for over-aligning e.g. local variables, which
isn't relevant for ABI code dealing with operator new. AFAICT there
wouldn't be problems either way though.

Fixes #54845.

Differential Revision: https://reviews.llvm.org/D124736
The file was addedclang/test/CodeGenCXX/pr54845.cpp
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp
Commit 53ff0daa7e9d3646ac9de7f0d6ed39359af94738 by ashay
[mlir] Fail early if AnalysisState::getBuffer() returns failure

This patch updates calls to AnalysisState::getBuffer() so that we return
early with a failure if the call does not succeed.

Reviewed By: springerm

Differential Revision: https://reviews.llvm.org/D125251
The file was modifiedmlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
Commit 671afac89dece7d728cd3c6a277faee1c8d1d592 by Louis Dionne
[libc++abi][NFC] Fix typo in comment
The file was modifiedlibcxxabi/src/cxa_exception.h
Commit 71728360ada3e0f6c21d4c09d33424f6150afcc9 by pklausler
[flang] Fold real-valued MODULO() and MOD()

Evaluate real-valued references to the intrinsic functions MODULO
and MOD at compilation time without recourse to an external math
library.

Differential Revision: https://reviews.llvm.org/D125151
The file was modifiedflang/lib/Evaluate/intrinsics-library.cpp
The file was modifiedflang/lib/Evaluate/fold-real.cpp
The file was modifiedflang/test/Evaluate/folding04.f90
The file was addedflang/test/Evaluate/fold-mod.f90
The file was modifiedflang/lib/Evaluate/real.cpp
The file was modifiedflang/include/flang/Evaluate/real.h
Commit ca75ac5f04f269def97e6844c2f5c9596b29c84c by aaron
Diagnose unreachable generic selection associations

The controlling expression of a _Generic selection expression undergoes
lvalue conversion, array conversion, and function conversion before
picking the association. This means that array types, function types,
and qualified types are all unreachable code if they're used as an
association. I've been caught by this twice in the past few months and
I figure that if a WG14 member can't seem to remember this rule, users
are also likely to struggle with it. So this adds an on-by-default
unreachable code diagnostic for generic selection expression
associations.

Note, we don't have to worry about function types as those are already
a constraint violation which generates an error.

Differential Revision: https://reviews.llvm.org/D125259
The file was modifiedclang/test/Sema/generic-selection.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
Commit 88f04bdbd861cd904d93d107edaa4b7ec0483f70 by ivan.kosarev
[AMDGPU][GFX10] Support base+soffset+offset SMEM loads.

Also makes a step towards resolving
https://github.com/llvm/llvm-project/issues/38652

Reviewed By: foad, dp

Differential Revision: https://reviews.llvm.org/D125117
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/test/MC/AMDGPU/smem.s
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_smem.s
The file was modifiedllvm/lib/Target/AMDGPU/SMInstructions.td
Commit c813516ef809494d66f611e4f92569492935ddf9 by npopov
[InstCombine] Add additional freeze tests (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/freeze.ll
Commit 940871dd289c9f92ee32d899d58538c57c76c16d by pklausler
[flang] Enforce limit on rank + corank

Fortran 2018 requires that a compiler allow objects whose rank + corank
is 15, and that's our maximum; detect and diagnose violations.

Differential Revision: https://reviews.llvm.org/D125153
The file was addedflang/test/Semantics/maxrank.f90
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was modifiedflang/include/flang/Evaluate/real.h
Commit 7b362ddda9ca53906b0be6fe30c64fd1a910d9d4 by craig.topper
[SCCP] Preserve Name when converting SExt->ZExt.

This makes the output IR more readable since we're doing a one to
one replacement.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D125280
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
Commit 4b36d9bde7ac48f1dc93e724a8812fddfda68483 by craig.topper
[CVP] Preserve exact name when converting sext->zext and ashr->lshr.

Previously we took the old name and always appended a numberic suffix.
Since we're doing a 1:1 replacement, it's clearer to keep the original
name exactly.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D125281
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Commit 442c351b2bb1f99a4dc58f66660ce0f282f55b95 by david.green
Revert "[AArch64] Generate AND in place of CSEL for predicated CTTZ"

This reverts commit 7dcd0ea683ed3175bc3ec6aed24901a9d504182e due to
issues reported postcommit with the correctness of truncated cttzs.
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was removedllvm/test/CodeGen/AArch64/fold-csel-cttz-and.ll
Commit 8200e1253f6f300dc70b3457589e99a5a618f2d7 by varconst
[libc++][ranges] Implement `views::drop`.

The view itself has been implemented previously -- this patch only adds
the ability to pipe it.

Also finishes the implementation of [P1739](https://wg21.link/p1739) and
[LWG3407](https://wg21.link/lwg3407).

Differential Revision: https://reviews.llvm.org/D125156
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.take/adaptor.pass.cpp
The file was modifiedlibcxx/docs/Status/Cxx20Papers.csv
The file was addedlibcxx/test/std/ranges/range.adaptors/range.drop/adaptor.pass.cpp
The file was modifiedlibcxx/docs/Status/RangesIssues.csv
The file was modifiedlibcxx/include/__ranges/drop_view.h
The file was modifiedlibcxx/docs/Status/Cxx2bIssues.csv
The file was modifiedlibcxx/include/__ranges/subrange.h

Summary

  1. Tox target for runserver (details)
  2. Experimental Tableau support (details)
  3. Typo in docs endpoint (details)
Commit ec6ab2becbee74f4715f89b8eec29b3ac5ab270e by Chris Matthews
Tox target for runserver

I found having a target to pull up a local server
is very handy. This is only for local development!
The file was modifiedtox.ini (diff)
Commit 4d2d1fa1c6c6a9d432c1e9f09a8bd375bbf5111b by Chris Matthews
Experimental Tableau support

A web data connector to support exporting LNT data
to the Tableau analytics platform.
The file was modifieddocs/api.rst (diff)
The file was modifiedlnt/server/ui/views.py (diff)
The file was addedlnt/server/ui/templates/v4_tableau.html
The file was addedlnt/server/ui/static/lnt_tableau.js
Commit 58c7f0da8dc8be3723643332824b26ef57c0b59f by Chris Matthews
Typo in docs endpoint

The real endpoint does not have the / at the end.
The file was modifieddocs/api.rst (diff)