Changes

Summary

  1. [WebAssembly] Add prototype relaxed SIMD fma/fms instructions (details)
  2. [lldb] [gdb-remote] Refactor getting remote regs to use local vector (details)
  3. [lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs (details)
  4. Revert "Diagnose -Wunused-value based on CFG reachability" (details)
  5. [x86] move combiner state check into convertIntLogicToFPLogic(); NFC (details)
  6. [x86] add AVX512 run for fcmp+logic ops; NFC (details)
  7. [RISCV] Add more tests for (and (srl x, C2), C1) that can be improved by using a pair of shifts. NFC (details)
  8. [RISCV] Add more isel optimizations for (and (shr x, c2), c1). (details)
  9. [AArch64] Update some sve-fixed-length test checks. (details)
  10. [clang-format] Add Left/Right Const fixer capability (details)
  11. [gn build] Port a44ab1702539 (details)
  12. [InlineAdvisor] Use one single quote (details)
  13. [ORC] Minor renaming and typo fixes (NFC) (details)
  14. [llvm] Replace tab with spaces in one test (details)
  15. [llvm] Fix a copy-pasto (details)
  16. [ORC][examples] Export exectuable symbols explicitly in LLJITWithExecutorProcessControl (details)
  17. [mlir][sparse] Moved a conditional from the RT library to the generated MLIR. (details)
  18. [lldb] Show fix-it applied even if expression didn't evaluate succesfully (details)
  19. [flang] Represent (parentheses around derived types) (details)
  20. [Polly] Remove -polly-opt-fusion option. (details)
Commit 2f519825ba56cc2377ef9fbf1514944215ed9d0d by tlively
[WebAssembly] Add prototype relaxed SIMD fma/fms instructions

Add experimental clang builtins, LLVM intrinsics, and backend definitions for
the new {f32x4,f64x2}.{fma,fms} instructions in the relaxed SIMD proposal:
https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md.
Do not allow these instructions to be selected without explicit user opt-in.

Differential Revision: https://reviews.llvm.org/D110295
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/builtins-wasm.c
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
Commit fa456505b80b0cf83647a1b26713e4d3b38eccc2 by mgorny
[lldb] [gdb-remote] Refactor getting remote regs to use local vector

Refactor remote register getters to collect them into a local
std::vector rather than adding them straight into DynamicRegisterInfo.
The purpose of this change is to lay groundwork for switching value_regs
and invalidate_regs to use local LLDB register numbers rather than
remote numbers.

Differential Revision: https://reviews.llvm.org/D110025
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Commit cc3c788ad23636d16f1db2ae859315628783b0e8 by mgorny
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs

Switch the gdb-remote client logic to use local (LLDB) register numbers
in value_regs/invalidate_regs rather than remote regnos. This involves
translating regnos received from lldb-server.

Differential Revision: https://reviews.llvm.org/D110027
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
Commit 59337263ab45d7657ee901eb5525a21967c46265 by Yuanfang Chen
Revert "Diagnose -Wunused-value based on CFG reachability"

This reverts commit cbbf2e8c8ae7730ff0121f4868de4a7d188feb65.
It seems causing diagnoses in SFINAE context.
The file was modifiedclang/test/Sema/warn-type-safety.c
The file was modifiedclang/test/SemaCXX/expression-traits.cpp
The file was modifiedclang/test/SemaCXX/sizeless-1.cpp
The file was modifiedclang/test/CXX/drs/dr14xx.cpp
The file was modifiedclang/test/SemaCXX/warn-comma-operator.cpp
The file was modifiedclang/test/Sema/vla-2.c
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/test/Sema/warn-unused-value.c
The file was modifiedclang/test/SemaCXX/attr-annotate.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/CXX/drs/dr7xx.cpp
The file was modifiedclang/test/Sema/exprs.c
The file was modifiedclang/test/Parser/objc-messaging-1.m
The file was modifiedclang/test/SemaCXX/warn-unused-value.cpp
The file was modifiedclang/test/Parser/cxx1z-init-statement.cpp
The file was modifiedclang/test/SemaTemplate/lambda-capture-pack.cpp
The file was modifiedclang/test/CXX/drs/dr20xx.cpp
The file was modifiedclang/test/SemaCXX/vector.cpp
The file was modifiedclang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp
The file was modifiedclang/test/Parser/objcxx11-attributes.mm
The file was modifiedclang/test/CodeCompletion/pragma-macro-token-caching.c
The file was modifiedclang/test/Sema/sizeless-1.c
The file was modifiedclang/test/Analysis/dead-stores.c
The file was modifiedclang/test/Frontend/fixed_point_crash.c
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/Sema/i-c-e.c
The file was modifiedclang/test/Sema/switch-1.c
The file was modifiedclang/test/SemaCXX/builtin-constant-p.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaCXX/matrix-type-operators.cpp
The file was modifiedclang/test/Parser/objc-try-catch-1.m
The file was modifiedclang/test/SemaTemplate/derived.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/SemaCXX/overloaded-operator.cpp
The file was modifiedclang/test/PCH/cxx-explicit-specifier.cpp
The file was modifiedclang/test/CXX/basic/basic.link/p8.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modifiedclang/test/SemaCXX/constant-expression.cpp
The file was modifiedclang/test/Parser/cxx0x-ambig.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Parser/cxx-ambig-decl-expr.cpp
Commit 74ba4b769ad9a5d7ba381ebc80fa8ced7d658451 by spatel
[x86] move combiner state check into convertIntLogicToFPLogic(); NFC

This function can be adapted to solve bugs like PR51245,
but it could require differentiating the combiner timing
between the existing and new transforms.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 5188e2c9ce1fb33600270243bbc32b4b108f1019 by spatel
[x86] add AVX512 run for fcmp+logic ops; NFC

Suggested in D110342
The file was modifiedllvm/test/CodeGen/X86/fcmp-logic.ll
Commit 19734ae6f05498a75d4bb3960be06f5d704f8528 by craig.topper
[RISCV] Add more tests for (and (srl x, C2), C1) that can be improved by using a pair of shifts. NFC

These tests have C1 as a shifted mask having C2 leading zeros and some
number of trailing zeros, C3. We can select this as
(slli (srli x, C2+C3), C3) or (slli (srliw x, C2+C3), C3).
The file was addedllvm/test/CodeGen/RISCV/shift-and.ll
Commit 4a69551d663e42453c3ad5ab799326fe2ddc9657 by craig.topper
[RISCV] Add more isel optimizations for (and (shr x, c2), c1).

Turn (and (shr x, c2), c1) -> (slli (srli x, c2+c3), c3) if c1 is a
shifted mask with c2 leading zeros and c3 trailing zeros.

When the leading zeros is C2+32 we can use SRLIW in place of SRLI.
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/shift-and.ll
Commit 52272f294ffc28691ec3d77582c3678273d25411 by david.green
[AArch64] Update some sve-fixed-length test checks.

Some of these test show very poor code generation. Updating the tests
to make the tests more maintainable and prevent problems from being
hidden behind badly written test checks. Also in some of them the check
lines were using incorrect prefixes.

These are not-quite auto-generated. They are generated with the normal
update scripts and then uninteresting checks are removed, which at least
makes the test _more_ maintainable without materially changing what they
are testing.

I have otherwise attempted to not alter what is tested.
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-extend-trunc.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-insert-vector-elt.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-vselect.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-vselect.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-stores.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-select.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-float-compares.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-vector-shuffle.ll
Commit a44ab1702539c9ef3aea292e23cfbff17897bdbd by mydeveloperday
[clang-format] Add Left/Right Const fixer capability

Developers these days seem to argue over east vs west const like they used to argue over tabs vs whitespace or the various bracing style. These previous arguments were mainly eliminated with tools like `clang-format` that allowed those rules to become part of your style guide. Anyone who has been using clang-format in a large team over the last couple of years knows that we don't have those religious arguments any more, and code reviews are more productive.

https://www.youtube.com/watch?v=fv--IKZFVO8
https://mariusbancila.ro/blog/2018/11/23/join-the-east-const-revolution/
https://www.youtube.com/watch?v=z6s6bacI424

The purpose of this revision is to try to do the same for the East/West const discussion. Move the debate into the style guide and leave it there!

In addition to the new `ConstStyle: Right` or `ConstStyle: Left` there is an additional command-line argument `--const-style=left/right` which would allow an individual developer to switch the source back and forth to their own style for editing, and back to the committed style before commit. (you could imagine an IDE might offer such a switch)

The revision works by implementing a separate pass of the Annotated lines much like the SortIncludes and then create replacements for constant type declarations.

Differential Revision: https://reviews.llvm.org/D69764
The file was modifiedclang/docs/tools/dump_format_style.py
The file was modifiedclang/unittests/Format/CMakeLists.txt
The file was addedclang/lib/Format/QualifierAlignmentFixer.h
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was addedclang/lib/Format/QualifierAlignmentFixer.cpp
The file was modifiedclang/tools/clang-format/ClangFormat.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/lib/Format/CMakeLists.txt
The file was modifiedclang/docs/ReleaseNotes.rst
The file was addedclang/unittests/Format/QualifierFixerTest.cpp
The file was modifiedclang/lib/Format/Format.cpp
Commit 1aed7fcf09ee11443c3e05f2ec3bd62a946dfdd9 by llvmgnsyncbot
[gn build] Port a44ab1702539
The file was modifiedllvm/utils/gn/secondary/clang/unittests/Format/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/Format/BUILD.gn
Commit 0bb767e7db4401fc578f1be55db1d4038921d94b by i
[InlineAdvisor] Use one single quote
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp
Commit 767b328e506ef069ecbb89b7cc9e2da7f8f84c6c by Stefan Gränitz
[ORC] Minor renaming and typo fixes (NFC)

Two typos, one unsused include and some leftovers from the TargetProcessControl -> ExecutorProcessControl renaming

Reviewed By: xgupta

Differential Revision: https://reviews.llvm.org/D110260
The file was removedllvm/examples/OrcV2Examples/LLJITWithTargetProcessControl/CMakeLists.txt
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
The file was addedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt
The file was addedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp
The file was removedllvm/examples/OrcV2Examples/LLJITWithTargetProcessControl/LLJITWithTargetProcessControl.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp
The file was modifiedclang/docs/ClangFormattedStatus.rst
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt
Commit 4450cf985f0cfc94f8621261208f583d721bd693 by thakis
[llvm] Replace tab with spaces in one test

Also use just one space after comma. Now grepping for ', offset '
in llvm/test actually finds the test for `offset`.

No behavior change.
The file was modifiedllvm/test/MC/X86/pr32530.s
Commit 3fa43da7a3b46169b731dfca2bf3d41e85d3769d by thakis
[llvm] Fix a copy-pasto

We should use IMAGE_REL_I386_SECREL in the i386 section of this file.

IMAGE_REL_I386_SECREL and IMAGE_REL_AMD64_SECREL have the same
numeric value 0xB, so this doesn't change behavior.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
Commit 1286bbc85f421dbdcab430674783bde17b15ba0d by Stefan Gränitz
[ORC][examples] Export exectuable symbols explicitly in LLJITWithExecutorProcessControl

Functions in static code that should be callable from JITed code must be exported. For dynamic libraries extern functions are exported by default. For exectuables, linkers usually strip them away unless we explicitly ask for keeping them.

Reviewed By: xgupta

Differential Revision: https://reviews.llvm.org/D110345
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt
Commit 221856f5cd13a877543ea6c5418330c1ee7fd715 by 2998727+wrengr
[mlir][sparse] Moved a conditional from the RT library to the generated MLIR.

When generating code to add an element to SparseTensorCOO (e.g., when doing dense=>sparse conversion), we used to check for nonzero values on the runtime side, whereas now we generate MLIR code to do that check.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D110121
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
Commit fbaf36721783c3bcbd45f81294e6980eaef165e4 by augusto2112
[lldb] Show fix-it applied even if expression didn't evaluate succesfully

If we applied a fix-it before evaluating an expression and that
expression didn't evaluate correctly, we should still tell users about
the fix-it we applied since that may be the reason why it didn't work
correctly.

Differential Revision: https://reviews.llvm.org/D109908
The file was modifiedlldb/test/API/commands/expression/fixits/main.cpp
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp
The file was modifiedlldb/test/API/commands/expression/fixits/TestFixIts.py
Commit f6ecea1a35758bbb504bc8d6f5dccf353ea1355b by pklausler
[flang] Represent (parentheses around derived types)

The strongly typed expression representation classes supported
a representation of parentheses only around intrinsic types
with specific kinds.  Parentheses around derived type variables
must also be preserved so that expressions may be distinguished
from variables; this distinction matters for actual arguments &
construct associations.

Differential Revision: https://reviews.llvm.org/D110355
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/include/flang/Evaluate/expression.h
The file was modifiedflang/lib/Evaluate/expression.cpp
The file was addedflang/test/Evaluate/expr01.f90
Commit 07e7cb9433daa80e7a8b418cb334c663abe68202 by llvm-project
[Polly] Remove -polly-opt-fusion option.

The name of the option is misleading and has been renamed by isl to
"serialize-sccs". Instead of also renaming the option, remove it.
The option is still accessible using

    -polly-isl-arg=--no-schedule-serialize-sccs
The file was modifiedpolly/test/ScheduleOptimizer/computeout.ll
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp
The file was modifiedpolly/test/ScheduleOptimizer/tile_after_fusion.ll