UnstableChanges

Summary

  1. [VE] disable cmake caches until resolved (details)
  2. Enable retry on failed git operations (details)
Commit 99821277c29d5565a8f5c6cda80ea8b0faf097b4 by simon.moll
[VE] disable cmake caches until resolved
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit b83568a0e50fe1d8fd419721f67e82c4bda5eaf0 by kuhnel
Enable retry on failed git operations

This should address issues like
`fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Could not resolve host: github.com`
in
http://lab.llvm.org:8011/#/builders/131/builds/7

Differential Revision: https://reviews.llvm.org/D91945
The file was modifiedzorg/buildbot/process/factory.py (diff)

Summary

  1. [JITLink] Clarify LinkGraph::splitBlock contract in comment. (details)
  2. Revert "[mlir][ArmSVE] Add basic mask generation operations" (details)
  3. [mlir] fix integer type mismatch in alloc conversion to LLVM (details)
  4. [mlir] Make MemRef element type extensible (details)
  5. [mlir] support memref of memref in standard-to-llvm conversion (details)
  6. [clang] Apply MS ABI details on __builtin_ms_va_list on non-windows platforms on x86_64 (details)
  7. [DAG] Allow isNullOrNullSplat to see truncated zeroes (details)
  8. [mlir] fix shared-libs build (details)
  9. [LoopVectorize] Don't use strict reductions when reordering is allowed (details)
  10. NVPTXTargetLowering::LowerReturn - Pass DataLayout by reference. NFCI. (details)
  11. ValueTrackingTest.cpp - Pass DataLayout by reference. NFCI. (details)
  12. MemCpyOptimizer.cpp - hasUndefContentsMSSA - Pass DataLayout by reference. NFCI. (details)
  13. [CostModel][X86] Improve AVX1/AVX2 truncation costs (details)
  14. OptBisect.cpp - remove unused include. NFCI. (details)
  15. [InstCombine] Add instcombine fold for extractelement + splat for scalable vectors (details)
  16. [RISCV] Add a test case showing inefficient vector codegen (details)
  17. [OpenCL] Add memory_scope_all_devices (details)
  18. [CostModel] Return an invalid cost for memory ops with unsupported types (details)
  19. [OpenMP][OMPD] Implementation of OMPD debugging library - libompd. (details)
  20. [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass (details)
  21. [clang] p1099 using enum part 1 (details)
  22. [VE][NFC] IRBuilder<> -> IRBuilderBase (details)
  23. [NFC] Remove some include cycles (details)
  24. [VP] getDeclarationForParams (details)
  25. [MLIR] Mark additional builtin attr methods const (details)
  26. Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" (details)
  27. [llvm] Make Sequence reverse-iterable (details)
  28. [Polly][Isl] Removing nullptr constructor from C++ bindings. NFC. (details)
  29. Fix missing header and namespace qualifier in ADT Sequence (details)
  30. [CUDA][HIP] Fix store of vtbl in ctor (details)
  31. [LoopNest] Fix Wdeprecated-copy warnings (details)
  32. [DAG] foldShuffleOfConcatUndefs - ensure shuffles of upper (undef) subvector elements is undef (PR50609) (details)
  33. Revert "[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC." (details)
  34. [libc++] Remove the old HTML documentation (details)
  35. NFC: .clang-tidy: Inherit configs from parents to improve maintainability (details)
  36. [IR] make -stack-alignment= into a module attr (details)
  37. .clang-tidy: Disable misc-no-recursion in general/across the monorepo (details)
  38. [MLIR][MemRef] Only allow fold of cast for the pointer operand, not the value (details)
  39. Revert "[IR] make -stack-alignment= into a module attr" (details)
  40. [clang-cl] Parse the /external: flags (PR36003) (details)
  41. [libc++] NFC: Add regression tests for some <tuple> PRs that have been fixed (details)
  42. [MLIR] Remove LLVM_AnyInteger type constraint (details)
  43. [ELF] Add a GRP_COMDAT test with a local signature symbol (details)
  44. [RISCV] Remove ForceTailAgnostic flag from vmv.s.x, vfmv.s.f and reductions. (details)
  45. Fix a typo in the internals manual (details)
  46. Further improve register allocation for vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv. (details)
  47. [Verifier] Speed up and parallelize dominance checking.  NFC (details)
  48. [Core] Add Twine support for StringAttr and Identifier. NFC. (details)
  49. [AMDGPU] Add gfx1013 target (details)
  50. InstrEmitter.cpp - don't dereference a dyn_cast<>. (details)
  51. PPCISelLowering.cpp - don't dereference a dyn_cast<>. (details)
  52. Use llvm_unreachable for unsupported integer types. (details)
  53. Revert "[llvm] Make Sequence reverse-iterable" (details)
  54. [Fuchsia] Update some of the Fuchsia toolchain flags (details)
  55. Add missing header <atomic> in lib/IR/Verifier.cpp (NFC) (details)
  56. [GlobalISel] Handle non-multiples of the base type in narrowScalarInsert (details)
  57. [GlobalISel] Handle non-multiples of the base type in narrowScalarAddSub (details)
  58. [libc++] Add a CI configuration for the modular build (details)
  59. [libcxx] Remove VLA from libcxx locale header (details)
  60. reland [IR] make -stack-alignment= into a module attr (details)
  61. [CMake] Only include LTO on Apple targets (details)
  62. [clang] p1099 using enum part 2 (details)
  63. [FuzzMutate] Fix getWeight of InstDeleterIRStrategy (details)
  64. [RISCV] Remove dead code from fixed-vectors-abs.ll test cases. NFC (details)
  65. [CMake][Fuchsia] Include llvm-otool in Fuchsia toolchain (details)
Commit 4f16ccdab2d39ed1fb718ce646507c07b6c2de46 by Lang Hames
[JITLink] Clarify LinkGraph::splitBlock contract in comment.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
Commit 57546f5b2224fe6d56081463dec2acc5964a61e8 by javier.setoain
Revert "[mlir][ArmSVE] Add basic mask generation operations"

This reverts commit 392af6a78bb7dfb87a24ed66db598c1d09ac756b
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/StandardOpsBase.td
The file was modifiedmlir/include/mlir/Dialect/ArmSVE/ArmSVEDialect.h
The file was modifiedmlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
The file was modifiedmlir/test/Dialect/ArmSVE/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/ArmSVE/IR/ArmSVEDialect.cpp
The file was modifiedmlir/test/Dialect/ArmSVE/legalize-for-llvm.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/test/Target/LLVMIR/arm-sve.mlir
The file was modifiedmlir/include/mlir/Dialect/ArmSVE/ArmSVE.td
Commit 3c70a82e2891949801bd5da68159cd8156659f6f by zinenko
[mlir] fix integer type mismatch in alloc conversion to LLVM

Some places in the alloc-like op conversion use the converted index type
whereas other places use the pointer-sized integer type, which may not be the
same. Consistently use the converted index type, similarly to other address
calculations.

Reviewed By: pifon2a

Differential Revision: https://reviews.llvm.org/D103826
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
Commit ada9aa5a228200cb71269c371308e82c42fd4abc by zinenko
[mlir] Make MemRef element type extensible

Historically, MemRef only supported a restricted list of element types that
were known to be storable in memory. This is unnecessarily restrictive given
the open nature of MLIR's type system. Allow types to opt into being used as
MemRef elements by implementing a type interface. For now, the interface is
merely a declaration with no methods. Later, methods to query, e.g., the type
size or whether a type can alias elements of another type may be added.

Harden the "standard"-to-LLVM conversion against memrefs with non-builtin
types.

See https://llvm.discourse.group/t/rfc-memref-of-custom-types/3558.

Depends On D103826

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D103827
The file was modifiedmlir/test/Conversion/StandardToLLVM/invalid.mlir
The file was modifiedmlir/lib/IR/BuiltinTypes.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestTypeDefs.td
The file was modifiedmlir/docs/Dialects/Builtin.md
The file was modifiedmlir/include/mlir/IR/CMakeLists.txt
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.h
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/test/IR/parser.mlir
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
Commit c59ce1f6257c88330c1f1757c36d59d34fe29248 by zinenko
[mlir] support memref of memref in standard-to-llvm conversion

Now that memref supports arbitrary element types, add support for memref of
memref and make sure it is properly converted to the LLVM dialect. The type
support itself avoids adding the interface to the memref type itself similarly
to other built-in types. This allows the shape, and therefore byte size, of the
memref descriptor to remain a lowering aspect that is easier to customize and
evolve as opposed to sanctifying it in the data layout specification for the
memref type itself.

Factor out the code previously in a testing pass to live in a dedicated data
layout analysis and use that analysis in the conversion to compute the
allocation size for memref of memref. Other conversions will be ported
separately.

Depends On D103827

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D103828
The file was modifiedmlir/test/lib/Dialect/DLTI/TestDataLayoutQuery.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.h
The file was addedmlir/include/mlir/Analysis/DataLayoutAnalysis.h
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h
The file was addedmlir/lib/Analysis/DataLayoutAnalysis.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
The file was modifiedmlir/test/IR/parser.mlir
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
Commit b34da6ff9c1d72816d0c9b87d5f0e879850bc424 by martin
[clang] Apply MS ABI details on __builtin_ms_va_list on non-windows platforms on x86_64

This fixes inconsistencies in the ms_abi.c testcase.

Also add a couple cases of missing double pointers in the windows part
of the testcase; the outcome of building that testcase on windows hasn't
changed, but the previous form of the test was imprecise (checking
for "%[[STRUCT_FOO]]*" when clang actually generates "%[[STRUCT_FOO]]**"),
which still used to match.

Ideally this would share code with the native Windows case, but
X86_64ABIInfo and WinX86_64ABIInfo aren't superclasses/subclasses of
each other so it's impractical, and the code to share currently only
consists of a couple lines.

Differential Revision: https://reviews.llvm.org/D103837
The file was modifiedclang/test/CodeGen/ms_abi.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit b889c6ee9911b72a58986d528f42dd18cbdf92d7 by david.green
[DAG] Allow isNullOrNullSplat to see truncated zeroes

This sets the AllowTruncation flag on isConstOrConstSplat in
isNullOrNullSplat, allowing it to see truncated constant zeroes on
architectures such as AArch64, where only a i32.i64 are legal. As a
truncation of 0 is always 0, this should always be valid, allowing some
extra folding to happen including some of the cases from D103755.

Differential Revision: https://reviews.llvm.org/D103756
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vdiv-sdnode-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vdiv-sdnode-rv64.ll
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-bool.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vrem-sdnode-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vrem-sdnode-rv32.ll
Commit 7116468ca9d0ebec1d97d58d99879eaf7e7a3982 by zinenko
[mlir] fix shared-libs build
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
Commit 14eeccfe9adb372c76d11d6ffa98fdb6e9808acc by kerry.mclaughlin
[LoopVectorize] Don't use strict reductions when reordering is allowed

If the `-enable-strict-reductions` flag is set to true, then currently we will
always choose to vectorize the loop with strict in-order reductions. This is
not necessary where we allow the reordering of FP operations, such as
when loop hints are passed via metadata.

This patch moves useOrderedReductions so that we can also check whether
loop hints allow reordering, in which case we should use the default
behaviour of vectorizing with unordered reductions.

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D103814
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
Commit 27f3041c88ac4e392da7c1f071f8516947c7a1c7 by llvm-dev
NVPTXTargetLowering::LowerReturn - Pass DataLayout by reference. NFCI.
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
Commit 4ad59f9a5a9589e7d0608dafb99ee4f2db67cb95 by llvm-dev
ValueTrackingTest.cpp - Pass DataLayout by reference. NFCI.
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
Commit 596004a94748e427ff59956e74d8ed4eb0e109d4 by llvm-dev
MemCpyOptimizer.cpp - hasUndefContentsMSSA - Pass DataLayout by reference. NFCI.
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
Commit 49d3a367c0376a95b9518e90426cdd6d5508e64a by llvm-dev
[CostModel][X86] Improve AVX1/AVX2 truncation costs

Based off the worse case numbers generated by D103695, we were overestimating the cost of a number of vector truncations:

AVX2: v2i32->v2i8, v2i64->v2i16 + v4i64->v4i32
AVX1: v2i32->v2i8, v4i64->v4i16 + v16i16->v16i8

Once we have a working set of conversion costs, the intention is to cleanup the tables and use legalized types a lot more to reduce the number of entries we currently have.
The file was modifiedllvm/test/Analysis/CostModel/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/cast.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/trunc.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/arith-fix.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/arith.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/arith-overflow.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/rem.ll
Commit f96b5e801d67dac4fb1b94566aa4be3a3a5756d5 by llvm-dev
OptBisect.cpp - remove unused include. NFCI.

StringRef.h is included in OptBisect.h and we have no uses of std::string.
The file was modifiedllvm/lib/IR/OptBisect.cpp
Commit 6fd1604d14335a31268bbc477de27e81310f39ef by caroline.concatto
[InstCombine] Add instcombine fold for extractelement + splat for scalable vectors

This patch allows that scalable vector can also use the fold that already
exists for fixed vector, only when the lane index is lower than the minimum
number of elements of the vector.

Differential Revision: https://reviews.llvm.org/D102404
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstCombine/vscale_extractelement-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vscale_extractelement.ll
The file was modifiedllvm/test/Transforms/InstCombine/gep-vector-indices.ll
Commit ccd1e087f3702d5ccdfcce24ac7f7d2877921165 by fraser
[RISCV] Add a test case showing inefficient vector codegen
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitcast-large-vector.ll
Commit d54e7b731e662e3ec19c590172c9827e3e184829 by sven.vanhaastregt
[OpenCL] Add memory_scope_all_devices

Add the `memory_scope_all_devices` enum value, which is restricted to
OpenCL 3.0 or newer and the `__opencl_c_atomic_scope_all_devices`
feature.  Also guard `memory_scope_all_svm_devices` accordingly, which
is already available in OpenCL 2.0.

The `__opencl_c_atomic_scope_all_devices` feature is header-only, so
set its define to 1 in `opencl-c-base.h`.  This is done
unconditionally at the moment, as the mechanism for disabling
header-only options hasn't been decided yet.

This patch only adds a negative test for now.  Ideally adding a CL3.0
run line to atomic-ops.cl should suffice as a positive test, but we
cannot do that yet until (at least) generic address spaces and program
scope variables are supported in OpenCL 3.0 mode.

Differential Revision: https://reviews.llvm.org/D103241
The file was modifiedclang/test/Headers/opencl-c-header.cl
The file was modifiedclang/test/SemaOpenCL/atomic-ops.cl
The file was modifiedclang/lib/Headers/opencl-c-base.h
Commit 5db52751a594410d0166d606b305b01a03f0ca3f by kerry.mclaughlin
[CostModel] Return an invalid cost for memory ops with unsupported types

Fixes getTypeConversion to return `TypeScalarizeScalableVector` when a scalable vector
type cannot be legalized by widening/splitting. When this is the method of legalization
found, getTypeLegalizationCost will return an Invalid cost.

The getMemoryOpCost, getMaskedMemoryOpCost & getGatherScatterOpCost functions already call
getTypeLegalizationCost and will now also return an Invalid cost for unsupported types.

Reviewed By: sdesmalen, david-arm

Differential Revision: https://reviews.llvm.org/D102515
The file was addedllvm/test/Analysis/CostModel/AArch64/sve-illegal-types.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was addedllvm/test/Transforms/VectorCombine/AArch64/extract-cmp-binop.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/scalable-vf-hint.ll
The file was modifiedllvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
Commit f61602b0d3fd3ff5b277dc44cf22cfb5356dee5c by Vignesh.Balasubrmanian
[OpenMP][OMPD] Implementation of OMPD debugging library - libompd.

This is the first of seven patches that implements OMPD, a debugging interface to support debugging of OpenMP programs.
It contains support code required in "openmp/runtime" for OMPD implementation.

Reviewed By: @hbae
Differential Revision: https://reviews.llvm.org/D100181
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
The file was modifiedopenmp/runtime/src/kmp_settings.h
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
The file was modifiedopenmp/runtime/src/kmp_settings.cpp
The file was modifiedopenmp/runtime/src/CMakeLists.txt
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp
The file was addedopenmp/runtime/src/ompd-specific.cpp
The file was modifiedopenmp/runtime/src/kmp.h
The file was modifiedopenmp/runtime/src/include/omp-tools.h.var
The file was addedopenmp/runtime/src/ompd-specific.h
The file was modifiedopenmp/runtime/src/kmp_config.h.cmake
The file was modifiedopenmp/runtime/src/kmp_wait_release.h
The file was modifiedopenmp/runtime/src/ompt-specific.cpp
The file was modifiedopenmp/runtime/src/kmp_csupport.cpp
The file was modifiedopenmp/runtime/src/ompt-general.cpp
The file was modifiedopenmp/runtime/CMakeLists.txt
Commit 09e92c607cc94f3d088da2d13592f4e7100ba84a by konndennsa
[LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass

This patch changes LoopUnrollAndJamPass from FunctionPass to LoopNest pass.
The next patch will utilize LoopNest to effectively handle loop nests.

Also, a crash problem on legacy pass manager is fixed.

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D99149
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/LoopUnrollAndJam/innerloop.ll
Commit 012898b92cad00e230a960a08a3f418628bec060 by nathan
[clang] p1099 using enum part 1

This adds support for p1099's 'using SCOPED_ENUM::MEMBER;'
functionality, bringing a member of an enumerator into the current
scope. The novel feature here, is that there need not be a class
hierarchical relationship between the current scope and the scope of
the SCOPED_ENUM. That's a new thing, the closest equivalent is a
typedef or alias declaration. But this means that
Sema::CheckUsingDeclQualifier needs adjustment. (a) one can't call it
until one knows the set of decls that are being referenced -- if
exactly one is an enumerator, we're in the new territory. Thus it
needs calling later in some cases. Also (b) there are two ways we hold
the set of such decls. During parsing (or instantiating a dependent
scope) we have a lookup result, and during instantiation we have a set
of shadow decls. Thus two optional arguments, at most one of which
should be non-null.

Differential Revision: https://reviews.llvm.org/D100276
The file was modifiedclang/test/SemaCXX/enum-scoped.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was addedclang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p7-cxx20.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p3.cpp
The file was modifiedclang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p7.cpp
Commit 2b626aba448a5febb76cca87623c7a380b9e96d6 by simon.moll
[VE][NFC] IRBuilder<> -> IRBuilderBase

VE's TTI broke with the switch from IRBuilder<> to IRBuilderBase.
Following that change to compile again.
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was modifiedllvm/lib/Target/VE/VEISelLowering.h
Commit 22875b2ce3fd8a5cf4f615ed7e91950f613ba9d4 by tbaeder
[NFC] Remove some include cycles

These files include themselves directly.
The file was modifiedclang/lib/AST/Interp/Context.h
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/ELF.h
Commit 0f9d299122f1223e93c54f10401a608f5d481314 by simon.moll
[VP] getDeclarationForParams

`VPIntrinsic::getDeclarationForParams` creates a vp intrinsic
declaration for parameters you want to call it with.  This is in
preparation of a new builder class that makes emitting vp intrinsic code
nearly as convenient as using a plain ir builder (aka `VectorBuilder`,
to be used by D99750).

Reviewed By: frasercrmck, craig.topper, vkmr

Differential Revision: https://reviews.llvm.org/D102686
The file was modifiedllvm/unittests/IR/VPIntrinsicTest.cpp
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
Commit 41eb2cec47986d8128c0ef03164a007b0db67127 by fabian
[MLIR] Mark additional builtin attr methods const

* Mark the following methods const:
  * `ArrayAttr::getAsRange`
  * `ArrayAttr::getAsValueRange`
  * `DictionaryAttr::getAs`
* Make `DictionarAttr::getAs` generic over the name class, such that
  `Identifier` and `StringRef` arguments get forwarded to the underlying
  call to `get`. (Made generic to avoid introducing a dependency on
  `include/mlir/IR/Identifier.h` as per the diff discussion.)

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D103822
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
Commit 386b66b2fc297cda121a3cc8a36887a6ecbcfc68 by hans
Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands""

> This reapplies c0f3dfb9, which was reverted following the discovery of
> crashes on linux kernel and chromium builds - these issues have since
> been fixed, allowing this patch to re-land.

This reverts commit 36ec97f76ac0d8be76fb16ac521f55126766267d.

The change caused non-determinism in the compiler, see comments on the code
review at https://reviews.llvm.org/D91722.

Reverting to unbreak people's builds until that can be addressed.

This also reverts the follow-up "[DebugInfo] Limit the number of values
that may be referenced by a dbg.value" in
a0bd6105d80698c53ceaa64bbe6e3b7e7bbf99ee.
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
The file was modifiedllvm/test/Transforms/Reassociate/undef_intrinsics_when_deleting_instructions.ll
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/IR/Operator.cpp
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/test/Transforms/InstCombine/debuginfo-sink.ll
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/IR/Operator.h
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-info.ll
The file was removedllvm/test/DebugInfo/salvage-gep.ll
The file was removedllvm/test/DebugInfo/salvage-nonconst-binop.ll
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was removedllvm/test/DebugInfo/limit-arglist-size.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
Commit e772216e708937988c039420d2c559568f91ae27 by gchatelet
[llvm] Make Sequence reverse-iterable

This patch simplifies the implementation of Sequence and makes it compatible with llvm::reverse.
It exposes the reverse iterators through rbegin/rend which prevents a dangling reference in std::reverse_iterator::operator++().

Differential Revision: https://reviews.llvm.org/D102679
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedllvm/include/llvm/ADT/Sequence.h
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedllvm/unittests/ADT/SequenceTest.cpp
Commit be5e2fc7bf781c7fc079943552ea1b519f45c815 by patacca
[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface.

Changes made:
- Removed `std::nullptr_t` constructor from all the classes in the isl C++ bindings.
- `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/a7e00bea38f251a4bcf5c2c6ce5fa7ee5f661528

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103751
The file was modifiedpolly/lib/Support/ISLTools.cpp
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp
The file was modifiedpolly/lib/CodeGen/IslAst.cpp
The file was modifiedpolly/lib/Transform/FlattenAlgo.cpp
The file was modifiedpolly/unittests/DeLICM/DeLICMTest.cpp
The file was modifiedpolly/lib/Transform/DeLICM.cpp
The file was modifiedpolly/include/polly/ScopInfo.h
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp
The file was modifiedpolly/lib/Transform/FlattenSchedule.cpp
The file was modifiedpolly/lib/External/isl/include/isl/isl-noexceptions.h
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
The file was modifiedpolly/lib/Transform/ZoneAlgo.cpp
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp
Commit 7f6c878a2c035eb6325ab228d9bc2d257509d959 by gchatelet
Fix missing header and namespace qualifier in ADT Sequence
The file was modifiedllvm/include/llvm/ADT/Sequence.h
Commit 054cc3b1b469de4b0cb25d1dc3af43c679c5dc44 by Yaxun.Liu
[CUDA][HIP] Fix store of vtbl in ctor

vtbl itself is in default global address space. When clang emits
ctor, it gets a pointer to the vtbl field based on the this pointer,
then stores vtbl to the pointer.

Since this pointer can point to any address space (e.g. an object
created in stack), this pointer points to default address space, therefore
the pointer to vtbl field in this object should also be in default
address space.

Currently, clang incorrectly casts the pointer to vtbl field in this object
to global address space. This caused assertions in backend.

This patch fixes that by removing the incorrect addr space cast.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D103835
The file was modifiedclang/lib/CodeGen/CGClass.cpp
The file was addedclang/test/CodeGenCUDA/vtbl.cu
Commit dee1f0cb348b0a56375d9b563fb4d6918c431ed1 by whitneyt
[LoopNest] Fix Wdeprecated-copy warnings

error: definition of implicit copy constructor for 'LoopNest' is
deprecated because it has a user-declared copy assignment operator
[-Werror,-Wdeprecated-copy]
  LoopNest &operator=(const LoopNest &) = delete;

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103752
The file was modifiedllvm/include/llvm/Analysis/LoopNestAnalysis.h
Commit 61a2d6bfe48cf3da4b95d1383bf866690287f8e8 by llvm-dev
[DAG] foldShuffleOfConcatUndefs - ensure shuffles of upper (undef) subvector elements is undef (PR50609)

shuffle(concat(x,undef),concat(y,undef)) -> concat(shuffle(x,y),shuffle(x,y))

If the original shuffle references any of the upper (undef) subvector elements, ensure the split shuffle masks uses undef instead of an out-of-bounds value.

Fixes PR50609
The file was addedllvm/test/CodeGen/X86/pr50609.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit f60ea691a94b3b4c28f2ff85a4520562f4110810 by patacca
Revert "[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC."

This reverts commit be5e2fc7bf781c7fc079943552ea1b519f45c815.

This introduced a building error for polly. https://lab.llvm.org/buildbot#builders/10/builds/4951
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp
The file was modifiedpolly/unittests/DeLICM/DeLICMTest.cpp
The file was modifiedpolly/lib/Transform/FlattenSchedule.cpp
The file was modifiedpolly/lib/Transform/FlattenAlgo.cpp
The file was modifiedpolly/lib/Transform/ZoneAlgo.cpp
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp
The file was modifiedpolly/lib/Support/ISLTools.cpp
The file was modifiedpolly/lib/External/isl/include/isl/isl-noexceptions.h
The file was modifiedpolly/include/polly/ScopInfo.h
The file was modifiedpolly/lib/Transform/DeLICM.cpp
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp
The file was modifiedpolly/lib/CodeGen/IslAst.cpp
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
Commit 491d04595751a712db41c196bc1ad816fd9cdaa0 by Louis Dionne
[libc++] Remove the old HTML documentation

This commit finishes moving the <atomic> design documents to the RST
documentation and removes the old documentation. https://libcxx.llvm.org
is already pointing to the new documentation only now, so the removal of
the old documentation is really a NFC.

I went over the old documentation and I don't think we're leaving anything
important behind - I think everything important was mentionned in the RST
documentation anyway.
The file was removedlibcxx/www/cxx1z_status.html
The file was removedlibcxx/www/atomic_design_c.html
The file was removedlibcxx/www/atomic_design_b.html
The file was removedlibcxx/www/index.html
The file was removedlibcxx/www/type_traits_design.html
The file was removedlibcxx/www/upcoming_meeting.html
The file was removedlibcxx/www/menu.css
The file was removedlibcxx/www/atomic_design.html
The file was removedlibcxx/www/cxx2a_status.html
The file was removedlibcxx/www/ts1z_status.html
The file was removedlibcxx/www/cxx1y_status.html
The file was removedlibcxx/www/content.css
The file was modifiedlibcxx/docs/index.rst
The file was addedlibcxx/docs/DesignDocs/AtomicDesign.rst
The file was removedlibcxx/www/atomic_design_a.html
Commit c5d56fec502f36a0c994835ca23bc93a6c682d95 by dblaikie
NFC: .clang-tidy: Inherit configs from parents to improve maintainability

In the interests of disabling misc-no-recursion across LLVM (this seems
like a stylistic choice that is not consistent with LLVM's
style/development approach) this NFC preliminary change adjusts all the
.clang-tidy files to inherit from their parents as much as possible.

This change specifically preserves all the quirks of the current configs
in order to make it easier to review as NFC.

I validatad the change is NFC as follows:

for X in `cat ../files.txt`;
do
  mkdir -p ../tmp/$(dirname $X)
  touch $(dirname $X)/blaikie.cpp
  clang-tidy -dump-config $(dirname $X)/blaikie.cpp > ../tmp/$(dirname $X)/after
  rm $(dirname $X)/blaikie.cpp
done

(similarly for the "before" state, without this patch applied)

for X in `cat ../files.txt`;
do
  echo $X
  diff \
    ../tmp/$(dirname $X)/before \
    <(cat ../tmp/$(dirname $X)/after \
      | sed -e "s/,readability-identifier-naming\(.*\),-readability-identifier-naming/\1/" \
      | sed -e "s/,-llvm-include-order\(.*\),llvm-include-order/\1/" \
      | sed -e "s/,-misc-no-recursion\(.*\),misc-no-recursion/\1/" \
      | sed -e "s/,-clang-diagnostic-\*\(.*\),clang-diagnostic-\*/\1/")
done

(using sed to strip some add/remove pairs to reduce the diff and make it easier to read)

The resulting report is:
  .clang-tidy
  clang/.clang-tidy
  2c2
  < Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-readability-identifier-naming,-misc-no-recursion'
  ---
  > Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-misc-no-recursion'
  compiler-rt/.clang-tidy
  2c2
  < Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,-llvm-header-guard,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes'
  ---
  > Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-llvm-header-guard'
  flang/.clang-tidy
  2c2
  < Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,llvm-*,-llvm-include-order,misc-*,-misc-no-recursion,-misc-unused-parameters,-misc-non-private-member-variables-in-classes'
  ---
  > Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-llvm-include-order,-misc-no-recursion'
  flang/include/flang/Lower/.clang-tidy
  flang/include/flang/Optimizer/.clang-tidy
  flang/lib/Lower/.clang-tidy
  flang/lib/Optimizer/.clang-tidy
  lld/.clang-tidy
  lldb/.clang-tidy
  llvm/tools/split-file/.clang-tidy
  mlir/.clang-tidy

The `clang/.clang-tidy` change is a no-op, disabling an option that was never enabled.
The compiler-rt and flang changes are no-op reorderings of the same flags.

(side note, the .clang-tidy file in parallel-libs is broken and crashes
clang-tidy because it uses "lowerCase" as the style instead of "lower_case" -
so I'll deal with that separately)

Differential Revision: https://reviews.llvm.org/D103842
The file was modifiedflang/include/flang/Optimizer/.clang-tidy
The file was modifiedflang/.clang-tidy
The file was modifiedflang/include/flang/Lower/.clang-tidy
The file was modifiedlldb/.clang-tidy
The file was modifiedclang/.clang-tidy
The file was modifiedflang/lib/Optimizer/.clang-tidy
The file was modifiedllvm/.clang-tidy
The file was modifiedllvm/tools/split-file/.clang-tidy
The file was modifiedcompiler-rt/.clang-tidy
The file was modifiedflang/lib/Lower/.clang-tidy
The file was modifiedlld/.clang-tidy
The file was modifiedmlir/.clang-tidy
Commit 433c8d950cb3a1fa0977355ce0367e8c763a3f13 by ndesaulniers
[IR] make -stack-alignment= into a module attr

Similar to D102742, specifying the stack alignment via CodegenOpts means
that this flag gets dropped during LTO, unless the command line is
re-specified as a plugin opt. Instead, encode this information as a
module level attribute so that we don't have to expose this llvm
internal flag when linking the Linux kernel with LTO.

Looks like external dependencies might need a fix:
* https://github.com/llvm-hs/llvm-hs/issues/345
* https://github.com/halide/Halide/issues/6079

Link: https://github.com/ClangBuiltLinux/linux/issues/1377

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D103048
The file was modifiedllvm/test/CodeGen/X86/hipe-cc.ll
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp
The file was modifiedllvm/include/llvm/IR/Module.h
The file was addedllvm/test/Linker/stack-alignment.ll
The file was modifiedclang/test/CodeGen/stackrealign-main.c
The file was modifiedllvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll
The file was modifiedllvm/lib/IR/Module.cpp
The file was modifiedllvm/test/CodeGen/Generic/ForceStackAlign.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-baseptr.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-xmm-spill-unaligned.ll
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-mwaitx.ll
The file was modifiedllvm/test/CodeGen/X86/movtopush.ll
The file was modifiedllvm/test/CodeGen/X86/pr11468.ll
The file was modifiedllvm/test/CodeGen/X86/force-align-stack-alloca.ll
The file was addedllvm/test/CodeGen/X86/dynamic-allocas-VLAs-stack-align.ll
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll
The file was modifiedllvm/test/CodeGen/X86/hipe-cc64.ll
The file was addedllvm/test/CodeGen/X86/movtopush-stack-align.ll
The file was modifiedllvm/test/CodeGen/X86/unaligned-spill-folding.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp
Commit 49454ebc56ecf8b11f4b6c328c9fdb7b92307684 by dblaikie
.clang-tidy: Disable misc-no-recursion in general/across the monorepo
The file was modifiedclang/.clang-tidy
The file was modifiedflang/include/flang/Lower/.clang-tidy
The file was modifiedflang/lib/Lower/.clang-tidy
The file was modifiedflang/.clang-tidy
The file was modifiedflang/include/flang/Optimizer/.clang-tidy
The file was modified.clang-tidy
The file was modifiedflang/lib/Optimizer/.clang-tidy
Commit 965ad79ea7d0b98f905a27785a6fd0091b904218 by gh
[MLIR][MemRef] Only allow fold of cast for the pointer operand, not the value

Currently canonicalizations of a store and a cast try to fold all casts into the store.

In the case where the operand being stored is itself a cast, this is illegal as the type of the value being stored
will change. This PR fixes this by not checking the value for folding with a cast.

Depends on https://reviews.llvm.org/D103828

Differential Revision: https://reviews.llvm.org/D103829
The file was modifiedmlir/test/Dialect/Affine/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/test/Dialect/MemRef/canonicalize.mlir
Commit a596b54d471cfde548bdda3925ea2f143f06b964 by ndesaulniers
Revert "[IR] make -stack-alignment= into a module attr"

This reverts commit 433c8d950cb3a1fa0977355ce0367e8c763a3f13.

Breaks the MIPS build.
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-mwaitx.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-xmm-spill-unaligned.ll
The file was modifiedllvm/include/llvm/IR/Module.h
The file was modifiedllvm/test/CodeGen/X86/hipe-cc64.ll
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp
The file was removedllvm/test/CodeGen/X86/dynamic-allocas-VLAs-stack-align.ll
The file was modifiedllvm/test/CodeGen/X86/movtopush.ll
The file was modifiedllvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll
The file was removedllvm/test/CodeGen/X86/movtopush-stack-align.ll
The file was modifiedclang/test/CodeGen/stackrealign-main.c
The file was modifiedllvm/test/CodeGen/Generic/ForceStackAlign.ll
The file was modifiedllvm/test/CodeGen/X86/force-align-stack-alloca.ll
The file was removedllvm/test/Linker/stack-alignment.ll
The file was modifiedllvm/test/CodeGen/X86/unaligned-spill-folding.ll
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/test/CodeGen/X86/pr11468.ll
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp
The file was modifiedllvm/test/CodeGen/X86/x86-64-baseptr.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/test/CodeGen/X86/hipe-cc.ll
The file was modifiedllvm/lib/IR/Module.cpp
Commit 172fcd9600e13d5365f5cf648105891ff6a0e59d by hans
[clang-cl] Parse the /external: flags (PR36003)

They are still unsupported, but at least this makes clang-cl not mistake
them for being filenames.

As pointed out in the bug, VS 16.10 now uses these flags in new projects
by default.
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedclang/include/clang/Driver/Options.td
Commit d2eccf9bb7f10bd5c9ac0259ee1b03f2e25fb7a1 by Louis Dionne
[libc++] NFC: Add regression tests for some <tuple> PRs that have been fixed
The file was addedlibcxx/test/std/utilities/tuple/tuple.tuple/PR27375.pass.cpp
The file was addedlibcxx/test/std/utilities/tuple/tuple.tuple/PR38601.pass.cpp
Commit cd73af92315ecf25ed47f4991806a054ddfca5ea by kiran.chandramohan
[MLIR] Remove LLVM_AnyInteger type constraint

LLVM Dialect uses builtin-integer types. The existing LLVM_AnyInteger
type constraint is a dupe of AnyInteger. This patch removes LLVM_AnyInteger
and replaces all usage with AnyInteger.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103839
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/AMX/AMX.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
Commit 928a197d26ffd035bc4279ba533f169190a03574 by i
[ELF] Add a GRP_COMDAT test with a local signature symbol

See https://groups.google.com/g/generic-abi/c/2X6mR-s2zoc

Test that a local signature symbol does not suppress COMDAT deduplication.
The file was addedlld/test/ELF/comdat-local-signature.s
Commit c57bce9cc5facbdde52c24fe64fa4f6bf23a8449 by craig.topper
[RISCV] Remove ForceTailAgnostic flag from vmv.s.x, vfmv.s.f and reductions.

In 0.9 these were defined to leave elements other than 0 in the
destination unmodified. They were changed to use the tail policy
in 0.10. I missed that update.

I assume no one has noticed because in order cores treat tail
agnostic the same as tail undisturbed. I believe Spike and QEMU do
the same.

Reviewed By: arcbbb, frasercrmck

Differential Revision: https://reviews.llvm.org/D103736
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmin-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredminu-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredor-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmax-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredxor-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsum-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfmv.s.f-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredand-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredosum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vmv.s.x-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmaxu-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmin-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmax-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-buildvec.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsumu-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vmv.s.x-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmax-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmaxu-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmin-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredosum-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfmv.s.f-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmax-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredsum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredor-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredxor-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredand-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-select-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsumu-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredsum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredsum-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredsum-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredsum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-i1.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmin-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredosum-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredminu-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredosum-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredsum-rv32.ll
Commit 71fb98e0c1de97c8ba2aa3292447b0c5d0f248d5 by aaron
Fix a typo in the internals manual
The file was modifiedclang/docs/InternalsManual.rst
Commit 8b4c80d380a681e6ea6ea60e9d9f9424e7782980 by craig.topper
Further improve register allocation for vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv.

The first source has the same EEW as the destination, but we're
using earlyclobber which prevents them from ever being the same
register. This patch attempts to work around this.

-For unmasked .wv, add a special TIED pseudo that pretends like
the first operand and the destination must be the same register. This
disables the earlyclobber for that source. Mark the instruction
as convertible to 3 address form which will switch it to the
original untied pseudo when the TwoAddressInstructionPass decides
that keeping them tied would require an extra copy. This uses
code in RISCVInstrInfo.cpp to do the conversion to the untied
opcode.

The untie test case show that we can generate the untied version.
Not sure it was profitable to do it in this case, but they have
really simple IR.

Reviewed By: arcbbb

Differential Revision: https://reviews.llvm.org/D103552
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.h
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv64.ll
Commit 08664d005c02003180371049b19c7e5d01541c58 by clattner
[Verifier] Speed up and parallelize dominance checking.  NFC

One of the key algorithms used in the "mlir::verify(op)" method is the
dominance checker, which ensures that operand values properly dominate
the operations that use them.

The MLIR dominance implementation has a number of algorithmic problems,
and is not really set up in general to answer dense queries: it's constant
factors are really slow with multiple map lookups and scans, even in the
easy cases.  Furthermore, when calling mlir::verify(module) or some other
high level operation, it makes sense to parallelize the dominator
verification of all the functions within the module.

This patch has a few changes to enact this:
1) It splits dominance checking into "IsolatedFromAbove" units.  Instead
    of building a monolithic DominanceInfo for everything in a module,
    for example, it checks dominance for the module to all the functions
    within it (noop, since there are no operands at this level) then each
    function gets their own DominanceInfo for each of their scope.
2) It adds the ability for mlir::DominanceInfo (and post dom) to be
    constrained to an IsolatedFromAbove region.  There is no reason to
    recurse into IsolatedFromAbove regions since use/def relationships
    can't span this region anyway.  This is already checked by the time
    the verifier gets here.
3) It avoids querying DominanceInfo for trivial checks (e.g. intra Block
    references) to eliminate constant factor issues).
4) It switches to lazily constructing DominanceInfo because the trivial
    check case handles the vast majority of the cases and avoids
    constructing DominanceInfo entirely in some cases (e.g. at the module
    level or for many Regions's that contain a single Block).
5) It parallelizes analysis of collections IsolatedFromAbove operations,
    e.g. each of the functions within a Module.

All together this is more than a 10% speedup on `firtool` in circt on a
large design when run in -verify-each mode (our default) since the verifier
is invoked after each pass.

Still todo is to parallelize the main verifier pass.  I decided to split
this out to its own thing since this patch is already large-ish.

Differential Revision: https://reviews.llvm.org/D103373
The file was modifiedmlir/lib/IR/Verifier.cpp
The file was modifiedmlir/include/mlir/IR/Dominance.h
Commit 92a79dbe91413f685ab19295fc7a6297dbd6c824 by clattner
[Core] Add Twine support for StringAttr and Identifier. NFC.

This is both more efficient and more ergonomic than going
through an std::string, e.g. when using llvm::utostr and
in string concat cases.

Unfortunately we can't just overload ::get().  This causes an
ambiguity because both twine and stringref implicitly convert
from std::string.

Differential Revision: https://reviews.llvm.org/D103754
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/include/mlir/IR/Identifier.h
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToBlob.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/lib/CAPI/IR/BuiltinAttributes.cpp
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/lib/IR/Builders.cpp
Commit ea10a86984ea73fcec3b12d22404a15f2f59b219 by brendon.cahoon
[AMDGPU] Add gfx1013 target

Differential Revision: https://reviews.llvm.org/D103663
The file was modifiedllvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/MC/AMDGPU/gfx10_unsupported.s
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl
The file was modifiedclang/lib/Basic/Cuda.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/get_elf_mach_gfx_name.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedclang/include/clang/Basic/Cuda.h
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
The file was modifiedclang/test/Driver/amdgpu-macros.cl
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp
The file was modifiedllvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was modifiedllvm/test/MC/AMDGPU/dl-insts-err.s
Commit 114e712c344fbf8361b97130e78baa2624ff9bca by llvm-dev
InstrEmitter.cpp - don't dereference a dyn_cast<>.

dyn_cast<> can return nullptr which we would then dereference - use cast<> which will assert that the type is correct.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
Commit 01b77159e30b38613ab700d8bb128b006822c58c by llvm-dev
PPCISelLowering.cpp - don't dereference a dyn_cast<>.

dyn_cast<> can return nullptr which we would then dereference - use cast<> which will assert that the type is correct.
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 52396577a2d85ef1b18f86e643fe3b1033750e15 by llvm-dev
Use llvm_unreachable for unsupported integer types.

As suggested on rG937c4cffd024, use llvm_unreachable for unhandled integer types (which shouldn't be possible) instead of breaking and dropping down to the existing fatal error handler.

Helps silence static analyzer warnings.
The file was modifiedllvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
Commit a4e2cf712af3a3c7a4389e400a29da244b276f96 by joker.eph
Revert "[llvm] Make Sequence reverse-iterable"

This reverts commit e772216e708937988c039420d2c559568f91ae27
(and fixup 7f6c878a2c035eb6325ab228d9bc2d257509d959).

The build is broken with gcc5 host compiler:

In file included from
                 from mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp:9:
tools/mlir/include/mlir/IR/BuiltinAttributes.h.inc:424:57: error: type/value mismatch at argument 1 in template parameter list for 'template<class ItTy, class FuncTy, class FuncReturnTy> class llvm::mapped_iterator'
                               std::function<T(ptrdiff_t)>>;
                                                         ^
tools/mlir/include/mlir/IR/BuiltinAttributes.h.inc:424:57: note:   expected a type, got 'decltype (seq<ptrdiff_t>(0, 0))::const_iterator'
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedllvm/include/llvm/ADT/Sequence.h
The file was modifiedllvm/unittests/ADT/SequenceTest.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
Commit 1dba2a026956b0f3918dcf8bb1d3f3483db2de8c by phosek
[Fuchsia] Update some of the Fuchsia toolchain flags

This should make the build more self-contained.

Differential Revision: https://reviews.llvm.org/D103875
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was modifiedclang/cmake/caches/Fuchsia.cmake
Commit 30bb5dcb0a5cfe933136340318cbff2ba329a8c4 by joker.eph
Add missing header <atomic> in lib/IR/Verifier.cpp (NFC)

Fix the build on some platform.
The file was modifiedmlir/lib/IR/Verifier.cpp
Commit 2a7e759734982bea1d08642332a92f687266148f by Justin Bogner
[GlobalISel] Handle non-multiples of the base type in narrowScalarInsert

When narrowing G_INSERT, handle types that aren't a multiple of the
type we're narrowing to. This comes up if we're narrowing something
like an s96 to fit in 64 bit registers and also for non-byte multiple
packed types if they come up.

This implementation handles these cases by extending the extra bits to
the narrow size and truncating the result back to the destination
size.

Differential Revision: https://reviews.llvm.org/D97791
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 4271e1d2c52271ddb9544fa0c76543bffe053937 by Justin Bogner
[GlobalISel] Handle non-multiples of the base type in narrowScalarAddSub

When narrowing G_ADD and G_SUB, handle types that aren't a multiple of
the type we're narrowing to. This allows us to handle types like s96
on 64 bit targets.

Note that the test here has a couple of dead instructions because of
the way the setup legalizes. I wasn't able to come up with a way to
write this test that avoids that easily.

Differential Revision: https://reviews.llvm.org/D97811
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
Commit 4d680b06c92a0b785da9bb4370cd7d8819b6d726 by Louis Dionne
[libc++] Add a CI configuration for the modular build

Differential Revision: https://reviews.llvm.org/D103559
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedlibcxx/test/libcxx/include_as_c.sh.cpp
The file was modifiedlibcxx/utils/libcxx/test/format.py
The file was modifiedlibcxx/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp
The file was modifiedlibcxx/utils/libcxx/test/params.py
The file was addedlibcxx/cmake/caches/Generic-modules.cmake
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit ee2a92c29df6d37a4dc5d0f6795f0fe531962b9d by Abhina.Sreeskantharajan
[libcxx] Remove VLA from libcxx locale header

The buffer size (`__nbuf`) in `num_put::do_put` is currently not an
integral/core constant expression. As a result, `__nar` is a Variable Length
Array (VLA). VLAs are a GNU extension and not part of the base C++ standard, so
unless there is good reason to do so they probably shouldn't be used in any of
the standard library headers. The call to `__iob.flags()` is the only thing
keeping `__nbuf` from being a compile time constant, so the solution here is to
simply err on the side of caution and always allocate a buffer large enough to
fit the base prefix.

Note that, while the base prefix for hex (`0x`) is slightly longer than the
base prefix for octal (`0`), this isn't a concern. The difference in the space
needed for the value portion of the string is enough to make up for this.
(Unless we're working with small, oddly sized types such as a hypothetical
`uint9_t`, the space needed for the value portion in octal is at least 1 more
than the space needed for the value portion in hex).

This PR also adds `constexpr` to `__nbuf` to enforce compile time const-ness
going forward.

Reviewed By: Mordante, #libc, Quuxplusone, ldionne

Differential Revision: https://reviews.llvm.org/D103558
The file was modifiedlibcxx/include/locale
Commit 3787ee457173c3612aac4c9b1a2b6d6ab0202616 by ndesaulniers
reland [IR] make -stack-alignment= into a module attr

Relands commit 433c8d950cb3a1fa0977355ce0367e8c763a3f13 with fixes for
MIPS.

Similar to D102742, specifying the stack alignment via CodegenOpts means
that this flag gets dropped during LTO, unless the command line is
re-specified as a plugin opt. Instead, encode this information as a
module level attribute so that we don't have to expose this llvm
internal flag when linking the Linux kernel with LTO.

Looks like external dependencies might need a fix:
* https://github.com/llvm-hs/llvm-hs/issues/345
* https://github.com/halide/Halide/issues/6079

Link: https://github.com/ClangBuiltLinux/linux/issues/1377

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D103048
The file was modifiedllvm/test/CodeGen/X86/hipe-cc.ll
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/lib/Target/Mips/MipsTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/X86/x86-64-xmm-spill-unaligned.ll
The file was modifiedllvm/test/CodeGen/Generic/ForceStackAlign.ll
The file was modifiedllvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll
The file was modifiedllvm/test/CodeGen/X86/pr11468.ll
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp
The file was modifiedllvm/lib/IR/Module.cpp
The file was modifiedllvm/test/CodeGen/X86/hipe-cc64.ll
The file was modifiedllvm/test/CodeGen/Mips/stack-alignment.ll
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/test/CodeGen/X86/force-align-stack-alloca.ll
The file was modifiedllvm/include/llvm/IR/Module.h
The file was addedllvm/test/CodeGen/X86/dynamic-allocas-VLAs-stack-align.ll
The file was modifiedclang/test/CodeGen/stackrealign-main.c
The file was modifiedllvm/test/CodeGen/X86/unaligned-spill-folding.ll
The file was addedllvm/test/Linker/stack-alignment.ll
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-mwaitx.ll
The file was modifiedllvm/test/CodeGen/X86/movtopush.ll
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/x86-64-baseptr.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was addedllvm/test/CodeGen/X86/movtopush-stack-align.ll
Commit de98da2eced72eee791a93b076b70a7b22175abc by phosek
[CMake] Only include LTO on Apple targets

We only need libLTO when using ld64.

Differential Revision: https://reviews.llvm.org/D103916
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was modifiedclang/cmake/caches/Fuchsia.cmake
Commit b2d0c16e91f39def3646b71e5afebfaea262cca1 by nathan
[clang] p1099 using enum part 2

This implements the 'using enum maybe-qualified-enum-tag ;' part of
1099. It introduces a new 'UsingEnumDecl', subclassed from
'BaseUsingDecl'. Much of the diff is the boilerplate needed to get the
new class set up.

There is one case where we accept ill-formed, but I believe this is
merely an extended case of an existing bug, so consider it
orthogonal. AFAICT in class-scope the c++20 rule is that no 2 using
decls can bring in the same target decl ([namespace.udecl]/8). But we
already accept:

struct A { enum { a }; };
struct B : A { using A::a; };
struct C : B { using A::a;
using B::a; }; // same enumerator

this patch permits mixtures of 'using enum Bob;' and 'using Bob::member;' in the same way.

Differential Revision: https://reviews.llvm.org/D102241
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/include/clang/AST/JSONNodeDumper.h
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/AST/DeclBase.cpp
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
The file was modifiedclang/include/clang/Basic/DeclNodes.td
The file was modifiedclang/lib/AST/DeclPrinter.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/Sema/SemaCodeComplete.cpp
The file was modifiedclang/lib/AST/JSONNodeDumper.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/Index/IndexSymbol.cpp
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/lib/AST/Decl.cpp
The file was addedclang/test/SemaCXX/cxx20-using-enum.cpp
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was addedclang/test/AST/ast-dump-using-enum.cpp
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/include/clang/Sema/Template.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
The file was modifiedclang/lib/Serialization/ASTCommon.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/include/clang/Index/IndexSymbol.h
The file was modifiedclang/lib/AST/ASTContext.cpp
Commit 7e976cd4568517df4020845682d31f326907a5df by Justin Bogner
[FuzzMutate] Fix getWeight of InstDeleterIRStrategy

The comment states the following, for calculating the Line variable:

> Draw a line starting from when we only have 1k left and increasing
> linearly to double the current weight.

However, the value was not calculated as described. Instead, it would
result in a negative value, which resulted in the function always
returning 0 afterwards.

```
// Invariant: CurrentSize <= MaxSize - 200
// Invariant: CurrentWeight >= 0
int Line = (-2 * CurrentWeight) * (MaxSize - CurrentSize + 1000);
// {Line <= 0}
```

This commit fixes the issue and linearly interpolates as described.

Patch by Loris Reiff. Thanks!

Differential Revision: https://reviews.llvm.org/D96207
The file was modifiedllvm/lib/FuzzMutate/IRMutator.cpp
Commit c09b37553e7423918ff09c7b6f4d3d2ae17b2bde by craig.topper
[RISCV] Remove dead code from fixed-vectors-abs.ll test cases. NFC

We had two pointer arguments and a dead load presumably copied
from a binary operation test and modified into unary abs.
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll
Commit f673365e1ce16293075c18d03cd2f1ae6264289f by phosek
[CMake][Fuchsia] Include llvm-otool in Fuchsia toolchain

We want to use llvm-otool in our build.

Differential Revision: https://reviews.llvm.org/D103918
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake

Summary

  1. [VE] disable cmake caches until resolved (details)
  2. Enable retry on failed git operations (details)
Commit 99821277c29d5565a8f5c6cda80ea8b0faf097b4 by simon.moll
[VE] disable cmake caches until resolved
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit b83568a0e50fe1d8fd419721f67e82c4bda5eaf0 by kuhnel
Enable retry on failed git operations

This should address issues like
`fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Could not resolve host: github.com`
in
http://lab.llvm.org:8011/#/builders/131/builds/7

Differential Revision: https://reviews.llvm.org/D91945
The file was modifiedzorg/buildbot/process/factory.py