SuccessChanges

Summary

  1. Make linalg::ReshapeOp implement ViewLikeOpInterface (details)
  2. [MLIR][SPIRVToLLVM] SPIRV function fix and nits (details)
  3. [NFC] Add tests for boolean comparisons (details)
  4. [DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1) (details)
  5. [RISCV] Add error checking for extensions missing separating underscores (details)
  6. [lldb][formatters] Add support for printing NSConstantDate and fix distantPast value (details)
  7. [clang][Driver] Fix tool path priority test failures (details)
  8. AArch64+ARM: make LLVM consider system registers volatile. (details)
  9. Fix typo in identifier in assert. (details)
  10. [clangd] Fix use-after-free in ArgStripper (details)
  11. [Support] Fix Windows directory_iterator_construct out of bounds (details)
  12. [llvm-readobj] - Verify the location of program headers better. (details)
  13. [Matrix] Only pass vector arg as overloaded type in MatrixBuilder. (details)
  14. [yaml2obj] - Rename FileHeader::SH* fields. (details)
  15. [RISCV] Fix RISCVInstrInfo::getInstSizeInBytes for atomics pseudos (details)
  16. [RISCV] Duplicate pseudo expansion comment to RISCVMCCodeEmitter (details)
  17. [LLD][ELF] - Update test after yaml2obj change. NFC. (details)
  18. Bump the trunk major version to 12 (details)
  19. [Analyzer] Report every bug if only uniqueing location differs. (details)
  20. [clangd] Config: also propagate in sync (testing) mode (details)
  21. [MLIR][Shape] Add `shape.shape_eq` operation (details)
  22. [LoopRotate] Remove unnecessary verifyMemorySSA calls. (details)
  23. [DWARFYAML] Remove useless conditional statement. NFC. (details)
  24. [DSE,MSSA] Recognise init_trampoline in getLocForWriteEx (details)
  25. [RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbb asm instructions (details)
  26. [RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbp asm instructions (details)
  27. [RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbbp asm instructions (details)
  28. [RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbs asm instructions (details)
  29. [RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbt asm instructions (details)
  30. [mips] Rename FeatureMadd4 to FeatureNoMadd4. NFC (details)
  31. [lldb] Use the basename of the Python test for the log name instead of the class name (details)
  32. [lldb] Make expect_expr fall back to the dummy target if no target is selected (details)
  33. [clangd] Use llvm::errs() instead of outs() for errors (details)
  34. [lldb] Delete useless assertion (details)
  35. [lldb/test] Remove JOIN_CMD from Makefile.rules (details)
  36. CodeGenPrep: remove AssertingVH references before deleting dead instructions. (details)
  37. Revert "[lldb] Use the basename of the Python test for the log name instead of the class name" (details)
  38. [TSan] Optimize handling of racy address (details)
  39. [OpenMP][Docs] Update `present` map type modifier status (details)
  40. [HardwareLoops] Add sibling loop test. (details)
  41. [MLIR][Shape] Fix `shape_of` lowering to `scf` (details)
  42. Revert "[TSan] Optimize handling of racy address" (details)
  43. [lldb/Test] Remove support for forking a subprocess from the test suite. (details)
  44. [Legalize] Hoist invariant condition in ExpandVectorBuildThroughStack(...) (details)
  45. [NFC] Add float aggregate ABI test for PowerPC (details)
Commit 1919c8bfe8379402401da52d84d5397233cab8b9 by herhut
Make linalg::ReshapeOp implement ViewLikeOpInterface

Summary: A reshape aliases its input memref, so it acts like a view.

Differential Revision: https://reviews.llvm.org/D83773
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit d431951343cdaa301cbd72743fde8114b93f9d33 by georgemitenk0v
[MLIR][SPIRVToLLVM] SPIRV function fix and nits

This patch addresses the comments from https://reviews.llvm.org/D83030 and
https://reviews.llvm.org/D82639. `this->` is removed when not inside the
template. Also, type conversion for `spv.func` takes `convertRegionTypes()`
in order to apply type conversion on all blocks within the function.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D83786
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
Commit 2b6215f188bf862d5a551499764121d91fd6e6ea by roger.ferrer
[NFC] Add tests for boolean comparisons

They currently show that the not equal case may be improved.

See PR42876

Differential Revision: https://reviews.llvm.org/D65801
The file was addedllvm/test/CodeGen/X86/cmp-bool.ll
The file was addedllvm/test/CodeGen/ARM/cmp-bool.ll
The file was addedllvm/test/CodeGen/AArch64/cmp-bool.ll
The file was addedllvm/test/CodeGen/RISCV/cmp-bool.ll
Commit 14bc5e149d11766dee21cd679a9794fdf2e9414e by roger.ferrer
[DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1)

The existing code already considered this case. Unfortunately a typo in
the condition prevents it from triggering. Also the existing code, had
it run, forgot to do the folding.

This fixes PR42876.

Differential Revision: https://reviews.llvm.org/D65802
The file was modifiedllvm/test/CodeGen/RISCV/cmp-bool.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/ARM/cmp-bool.ll
The file was modifiedllvm/test/CodeGen/AArch64/cmp-bool.ll
The file was modifiedllvm/test/CodeGen/X86/cmp-bool.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/reg-stackify.ll
Commit de7bf722c23a1ab006bd306165c094669071577f by simon.cook
[RISCV] Add error checking for extensions missing separating underscores

Currently if two multi-letter extensions are provided in a -march=
string, the verification code checks the version of the first and
consumes the second, resulting in that part of the architecture
string being ignored. This adds a test that when a version number has
been parsed for an extension, there are no subsequent characters.

Differential Revision: https://reviews.llvm.org/D83819
The file was modifiedclang/lib/Driver/ToolChains/Arch/RISCV.cpp
The file was modifiedclang/test/Driver/riscv-arch.c
Commit 001c78de35cc0637eb58b3d855bc9897acccdc64 by Raphael Isemann
[lldb][formatters] Add support for printing NSConstantDate and fix distantPast value

Summary:

Certain `NSDate` constructors return a special `NSConstantDate` class which
currently ends up being unformatted as it's not in the list of supported classes
for the NSDate formatter. This patch adds that class to the supported class list
so LLDB produces a summary for it.

One of these special constructors is `[NSDate distantPast]` which returns the
date for `0001-01-01 00:00:00 UTC`. LLDB has a special case for formatting this
date but for some reason we did hardcode the wrong summary string in that
special case. Maybe the summary string was correct back when the code was
written but it isn't correct anymore (`distantPast` isn't actually defined to be
a special date but just some 'a guaranteed temporal boundary.' so maybe someone
changed the value in the last 10 years).

If someone else is wondering why we even have this special case for
`distantPast` but not for the future. The reason seems to be that our date
formatting for really old dates is off by 24 hours. So for example, adding one
second to `distantPast` will cause LLDB to print `0000-12-30 00:00:01 UTC`
(which is 24 hours behind the expected result). So to make our code appear to be
correct it seems we just hardcoded the most common NSDate result from that time
span. I'll replace that logic with a generic solution in a probably more
invasive follow up patch.

I also took the freedom to replace the magic value `-63114076800` with some
constant + documentation. I heard there are some people that don't know from the
top of their head that there are 63114076800 seconds between 1. Jan 0001 and 1.
January 2001 in whatever calendar system NSDate is using.

Reviewers: mib, davide

Reviewed By: mib

Subscribers: JDevlieghere

Differential Revision: https://reviews.llvm.org/D83217
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
The file was modifiedlldb/source/Plugins/Language/ObjC/Cocoa.cpp
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
Commit fe5912249efa1ec5e6aa6e565f722dd4d33d1e54 by david.spickett
[clang][Driver] Fix tool path priority test failures

Summary:
Failure type 1:
This test can fail when the path of the build includes the strings
we're checking for. E.g "/gcc" is found in ".../gcc_7.3.0/..."

To correct this look for '"' on the end of all matches. So that we
only match the end of paths printed by clang -###.
(which would be ".../gcc_7.3.0/.../gcc" for the example)

Also look for other gcc names like gcc-x.y.z in the first check.
This confirms that the copy of clang we made is isolated as expected.

Failure type 2:
If you use a triple like "powerpc64le-linux-gnu" clang actually reports
"powerpc64le-unknown-linux-gnu". Then it searches for the
former.

That combined with Mac OS adding a version number to cmake's triple
means we can't trust cmake or clang to give us the one default triple.
To fix the test, write to both names. As they don't overlap with our
fake triple, we're still showing that the lookup works.

Reviewers: MaskRay, stevewan

Reviewed By: stevewan

Subscribers: miyuki, JDevlieghere, steven.zhang, stevewan, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83055
The file was modifiedclang/test/Driver/program-path-priority.c
The file was modifiedclang/test/lit.cfg.py
Commit 5165b2b5fd5fd62c5a34970be81c79231844804c by Tim Northover
AArch64+ARM: make LLVM consider system registers volatile.

Some of the system registers readable on AArch64 and ARM platforms
return different values with each read (for example a timer counter),
these shouldn't be hoisted outside loops or otherwise interfered with,
but the normal @llvm.read_register intrinsic is only considered to read
memory.

This introduces a separate @llvm.read_volatile_register intrinsic and
maps all system-registers on ARM platforms to use it for the
__builtin_arm_rsr calls. Registers declared with asm("r9") or similar
are unaffected.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedllvm/test/Transforms/LICM/read-volatile-register.ll
The file was modifiedclang/test/CodeGen/builtins-arm.c
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedclang/test/CodeGen/builtins-arm64.c
Commit 9697a9e2d316f0d9d588f4de536b0a6bbef2810f by Tim Northover
Fix typo in identifier in assert.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit f782d9c7002edaaf56c06a6cc1775f8f67713a29 by sam.mccall
[clangd] Fix use-after-free in ArgStripper
The file was modifiedclang-tools-extra/clangd/CompileCommands.h
Commit f6eb5daa16368fb90d5a59b14a72bfd8ddbcd2a0 by andrew.ng
[Support] Fix Windows directory_iterator_construct out of bounds

Fix incorrect use of the size of Path when accessing PathUTF16, as the
UTF-16 path can be shorter. Added unit test for coverage of this test
case.

Thanks to Ding Fei (danix800) for the code fix, see
https://reviews.llvm.org/D83321.

Differential Revision: https://reviews.llvm.org/D83689
The file was modifiedllvm/unittests/Support/Path.cpp
The file was modifiedllvm/lib/Support/Windows/Path.inc
Commit 327c4450353309ea97cbd9f56b46f099f3b0a1f9 by grimar
[llvm-readobj] - Verify the location of program headers better.

This improves condition in the ELFFile::program_headers().
Previously if was possible to read the headers from the wrong place when
the value of e_phoff was so large that computation overflowed.

Differential revision: https://reviews.llvm.org/D83774
The file was modifiedllvm/include/llvm/Object/ELF.h
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test
Commit c872e809d1ac4aa405ae510e271f93d7662e26dd by flo
[Matrix] Only pass vector arg as overloaded type in MatrixBuilder.

In 2b3c505, the pointer arguments for the matrix load and store
intrinsics was changed to always be the element type of the vector
argument.

This patch updates the MatrixBuilder to not add the pointer type to the
overloaded types and adjusts the clang/mlir tests.

This should fix a few build failures on GreenDragon, including
http://green.lab.llvm.org/green/job/test-suite-verify-machineinstrs-x86_64-O0-g/7891/
The file was modifiedllvm/include/llvm/IR/MatrixBuilder.h
The file was modifiedclang/test/CodeGenCXX/matrix-type-builtins.cpp
The file was modifiedclang/test/CodeGenObjC/matrix-type-builtins.m
The file was modifiedmlir/test/Target/llvmir-intrinsics.mlir
The file was modifiedclang/test/CodeGen/matrix-type-builtins.c
Commit 7a587ca93200c49e47fe205ce037895c81c5a542 by grimar
[yaml2obj] - Rename FileHeader::SH* fields.

In D83482 we agreed to name e_* fields that are used for overriding
values (like e_phoff) as EPh* (e.g. EPhOff).

Currently we have a set of e_sh* fields that are named inconsistently
with this rule. This patch renames all of them.

Differential revision: https://reviews.llvm.org/D83766
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/header-sh-fields.yaml
The file was modifiedllvm/test/Object/invalid.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnu-notes.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-reloc-no-section-headers.test
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/section-headers.yaml
The file was modifiedllvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/many-sections.s
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/sections-no-section-header-string-table.test
Commit 3382c243baf2c9761db80e498243f4c57fe64de8 by jrtc27
[RISCV] Fix RISCVInstrInfo::getInstSizeInBytes for atomics pseudos

Summary:
Without these, the generic branch relaxation pass will underestimate the
range required for branches spanning these and we can end up with
"fixup value out of range" errors rather than relaxing the branches.
Some of the instructions in the expansion may end up being compressed
but exactly determining that is awkward, and these conservative values
should be safe, if slightly suboptimal in rare cases.

Reviewers: asb, lenary, luismarques, lewis-revill

Reviewed By: asb, luismarques

Subscribers: hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, sameer.abuasal, apazos, evandro, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77443
The file was modifiedllvm/lib/Target/RISCV/RISCVExpandAtomicPseudoInsts.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
Commit 2dc16fbdf0f24b0b9fd529932e7ee0d1960fc8b0 by jrtc27
[RISCV] Duplicate pseudo expansion comment to RISCVMCCodeEmitter

Follow-on from D77443. Although we're not fixing any of these
pseudo-instructions, the potential for them to be out of sync still
exists.
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
Commit 2e10b7a39b930ef8d9c4362509d8835b221fbc0a by grimar
[LLD][ELF] - Update test after yaml2obj change. NFC.

Names of YAML keys changed in rG7a587ca93200c49e47fe205ce037895c81c5a542
The file was modifiedlld/test/ELF/invalid/invalid-e_shnum.test
Commit 7ab7b979d29e1e43701cf690f5cf1903740f50e3 by hans
Bump the trunk major version to 12

and clear the release notes.
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedpstl/docs/ReleaseNotes.rst
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedlibcxx/include/__config
The file was modifiedllvm/utils/gn/secondary/llvm/version.gni
The file was modifiedpolly/docs/ReleaseNotes.rst
The file was modifiedpstl/test/pstl/version.pass.cpp
The file was modifiedclang/docs/analyzer/conf.py
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedpstl/include/pstl/internal/pstl_config.h
The file was modifiedlld/docs/conf.py
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was modifiedlibunwind/CMakeLists.txt
The file was modifiedlibunwind/docs/conf.py
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/utils/release/build_llvm_package.bat
The file was modifiedlibcxx/include/__libcpp_version
The file was modifiedclang/docs/conf.py
The file was modifiedllvm/utils/lit/lit/__init__.py
The file was modifiedlld/docs/ReleaseNotes.rst
The file was modifiedpolly/docs/conf.py
The file was modifiedclang-tools-extra/docs/conf.py
The file was modifiedlibcxx/docs/conf.py
Commit 22a084cfa337d5e5ea90eba5261f7937e28d250b by 1.int32
[Analyzer] Report every bug if only uniqueing location differs.

Summary:
Two CSA bug reports where only the uniqueing location is different
should be treated as different problems. The role of uniqueing location
is to differentiate bug reports.

Reviewers: Szelethus, baloghadamsoftware, NoQ, vsavchenko, xazax.hun, martong

Reviewed By: NoQ

Subscribers: NoQ, rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83115
The file was modifiedclang/lib/Analysis/PathDiagnostic.cpp
The file was modifiedclang/test/Analysis/pr22954.c
The file was modifiedclang/test/Analysis/malloc.c
Commit cf7160c0b0c1250596cc9b2ba0e41423ac465a8f by sam.mccall
[clangd] Config: also propagate in sync (testing) mode

Summary:
I hit this while trying to add a config-over-LSP lit test, which I think
is an appropriate way to test this feature.

That needs a few more changes though...

Reviewers: kadircet

Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83802
The file was modifiedclang-tools-extra/clangd/TUScheduler.h
The file was modifiedclang-tools-extra/clangd/unittests/TUSchedulerTests.cpp
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp
Commit 978804821e88a34d484a8ebab72d2888f869a086 by frgossen
[MLIR][Shape] Add `shape.shape_eq` operation

Add `shape.shape_eq` operation to the shape dialect.
The operation allows to test shapes and extent tensors for equality.

Differential Revision: https://reviews.llvm.org/D82528
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
The file was modifiedmlir/test/Dialect/Shape/ops.mlir
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
Commit 9ea0d8c38fc58ecec2e2f62f3b65e99fcbc2ec4c by flo
[LoopRotate] Remove unnecessary verifyMemorySSA calls.

The actual rotation happens in processLoop, so the second removed
call to verifyMemorySSA was unnecessary.

In fact, processLoop/rotateLoop already verify MemorySSA before
and after transforming each loop. Hence, both calls can be removed.

Pointed out by @lebedev.ri post-commit D51718.
The file was modifiedllvm/lib/Transforms/Utils/LoopRotationUtils.cpp
Commit a9e10a09651fa685876d2104254236b6840ad1af by Xing
[DWARFYAML] Remove useless conditional statement. NFC.

The conditional statement is useless after
3a48a632d00ef1c98042140f402337fe13cdff52.
The file was modifiedllvm/lib/ObjectYAML/DWARFVisitor.cpp
Commit 20854d85e14cf0b86f6e0dbbf9aef817845403bd by john.brawn
[DSE,MSSA] Recognise init_trampoline in getLocForWriteEx

This fixes an instance where MemorySSA-using Dead Store Elimination is failing
to do a transformation that the non-MemorySSA-using version does.

Differential Revision: https://reviews.llvm.org/D83783
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
Commit e2692f0ee7f338fea4fc918669643315cefc7678 by lewis-revill
[RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbb asm instructions

This patch provides optimization of bit manipulation operations by
enabling the +experimental-b target feature.
It adds matching of single block patterns of instructions to specific
bit-manip instructions from the base subset (zbb subextension) of the
experimental B extension of RISC-V.
It adds also the correspondent codegen tests.

This patch is based on Claire Wolf's proposal for the bit manipulation
extension of RISCV:
https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.92.pdf

Differential Revision: https://reviews.llvm.org/D79870
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rv32Zbb.ll
The file was addedllvm/test/CodeGen/RISCV/rv64Zbb.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
Commit 31b52b4345e36b169a2b6a89eac44651f59889dd by lewis-revill
[RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbp asm instructions

This patch provides optimization of bit manipulation operations by
enabling the +experimental-b target feature.
It adds matching of single block patterns of instructions to specific
bit-manip instructions from the permutation subset (zbp subextension) of
the experimental B extension of RISC-V.
It adds also the correspondent codegen tests.

This patch is based on Claire Wolf's proposal for the bit manipulation
extension of RISCV:
https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.92.pdf

Differential Revision: https://reviews.llvm.org/D79871
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
The file was addedllvm/test/CodeGen/RISCV/rv64Zbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rv32Zbp.ll
Commit 6144f0a1e52e7f5439a67267ca65f2d72c21aaa6 by lewis-revill
[RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbbp asm instructions

This patch provides optimization of bit manipulation operations by
enabling the +experimental-b target feature.
It adds matching of single block patterns of instructions to specific
bit-manip instructions belonging to both the permutation and the base
subsets of the experimental B extension of RISC-V.
It adds also the correspondent codegen tests.

This patch is based on Claire Wolf's proposal for the bit manipulation
extension of RISCV:
https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.92.pdf

Differential Revision: https://reviews.llvm.org/D79873
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
The file was addedllvm/test/CodeGen/RISCV/rv64Zbbp.ll
The file was addedllvm/test/CodeGen/RISCV/rv32Zbbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit d4be33374c07ea9a9362892876aa76b227298181 by lewis-revill
[RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbs asm instructions

This patch provides optimization of bit manipulation operations by
enabling the +experimental-b target feature.
It adds matching of single block patterns of instructions to specific
bit-manip instructions from the single-bit subset (zbs subextension) of
the experimental B extension of RISC-V.
It adds also the correspondent codegen tests.

This patch is based on Claire Wolf's proposal for the bit manipulation
extension of RISCV:
https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.92.pdf

Differential Revision: https://reviews.llvm.org/D79874
The file was addedllvm/test/CodeGen/RISCV/rv32Zbs.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
The file was addedllvm/test/CodeGen/RISCV/rv64Zbs.ll
Commit c9c955ada8e65205312f2bc41b46eefa0e98b36c by lewis-revill
[RISCV] Add matching of codegen patterns to RISCV Bit Manipulation Zbt asm instructions

This patch provides optimization of bit manipulation operations by
enabling the +experimental-b target feature.
It adds matching of single block patterns of instructions to specific
bit-manip instructions from the ternary subset (zbt subextension) of the
experimental B extension of RISC-V.
It adds also the correspondent codegen tests.

This patch is based on Claire Wolf's proposal for the bit manipulation
extension of RISCV:
https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.92.pdf

Differential Revision: https://reviews.llvm.org/D79875
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rv64Zbt.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was addedllvm/test/CodeGen/RISCV/rv32Zbt.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
Commit 3a6c2a61c64277a51a9dda22eece8072c0590fa4 by simon
[mips] Rename FeatureMadd4 to FeatureNoMadd4. NFC

`FeatureMadd4` is used to disable `madd4`, and the corresponding feature
option is `(+-)nomadd4`. Renaming to the `FeatureNoMadd4` makes its
purpose clear.

Patch by YunQiang Su.

Differential Revision: https://reviews.llvm.org/D83780
The file was modifiedllvm/lib/Target/Mips/MipsInstrInfo.td
The file was modifiedllvm/lib/Target/Mips/Mips.td
Commit 29aab9b5c748b28b231e2ca0f9b95453638ade1a by Raphael Isemann
[lldb] Use the basename of the Python test for the log name instead of the class name

Summary:

From what I know we already have the restriction that every test in the test
suite needs to have a unique file name as that's used for generating the unique
build directory for a test. It seems there is also a restriction that every test
case class in the test suite needs to have a unique name as that's used to
generate the unique log file name for the test run.

This changes the log file format to use the basename of the test file instead so
that we only have to keep worrying about the 'unique file name' restriction from
now on.

This came up because I started naming the test classes "TestCase" (as repeating
the file name in the test class seems like redudant information that just makes
renaming tests a pain).

Reviewers: labath, JDevlieghere

Reviewed By: labath

Subscribers: mgorny, abidh

Differential Revision: https://reviews.llvm.org/D83767
The file was modifiedlldb/test/API/CMakeLists.txt
Commit 10fd550d308d5dbcf7a3068f1f76d5f0f1a56661 by Raphael Isemann
[lldb] Make expect_expr fall back to the dummy target if no target is selected

Summary:

Currently expect_expr will not run the expression if no target is selected. This
patch changes this behavior so that expect_expr will instead fall back to the
dummy target similar to what the `expression` command is doing. This way we
don't have to compile an empty executable to be able to use `expect_expr` (which
is a waste of resources for tests that just test generic type system features).

As a test I modernized the TestTypeOfDeclTypeExpr into a Python test +
expect_expr (as it relied on the dummy target fallback of the expression
command).

Reviewers: labath, JDevlieghere

Reviewed By: labath

Subscribers: abidh

Differential Revision: https://reviews.llvm.org/D83388
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was addedlldb/test/API/lang/cpp/typeof/TestTypeOfDeclTypeExpr.py
The file was removedlldb/test/Shell/Expr/TestTypeOfDeclTypeExpr.test
Commit c11c78a1bd0b3275bf845604aae3c94e97acceed by kbobyrev
[clangd] Use llvm::errs() instead of outs() for errors

Summary: errs() is more appropriate for error messages in dexp and clangd-index-server.

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83827
The file was modifiedclang-tools-extra/clangd/index/dex/dexp/Dexp.cpp
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp
Commit f819d257982e6c3f1fb57de4252b46bdfaa9415a by pavel
[lldb] Delete useless assertion

It served a puprose while we were using the test name to provide a name
for the created file. Now that the files are created in memory, we don't
need that.
The file was modifiedlldb/unittests/TestingSupport/TestUtilities.cpp
Commit 313fca6520b43d95abb73e7c78a252a60ee4cf48 by pavel
[lldb/test] Remove JOIN_CMD from Makefile.rules

It's possible to achieve the same effect by providing multi-step recipe
instead of a single-step recipe where the step happens to contain
multiple commands.
The file was modifiedlldb/packages/Python/lldbsuite/test/make/Makefile.rules
Commit 37b96d51d0cfc82a64598aaae2a567fa77e44de9 by Tim Northover
CodeGenPrep: remove AssertingVH references before deleting dead instructions.

CodeGenPrepare keeps fairly close track of various instructions it's
seen, particularly GEPs, in maps and vectors. However, sometimes those
instructions become dead and get removed while it's still executing.
This triggers AssertingVH references to them in an asserts build and
could lead to miscompiles in a release build (I've only seen a later
segfault though).

So this patch adds a callback to
RecursivelyDeleteTriviallyDeadInstructions which can make sure the
instruction about to be deleted is removed from CodeGenPrepare's data
structures.
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was addedllvm/test/Transforms/CodeGenPrepare/ARM/dead-gep.ll
Commit 9c1c6a3fcca840b75a0ae818ac4e24e7460c397b by Raphael Isemann
Revert "[lldb] Use the basename of the Python test for the log name instead of the class name"

This reverts commit 29aab9b5c748b28b231e2ca0f9b95453638ade1a.

It seems on Windows the file name is just always "lldbsuite.test.lldbtest" for
all tests and that breaks pretty much everything. Reverting until we have
a better solution.
The file was modifiedlldb/test/API/CMakeLists.txt
Commit 00e3a1ddec95c0b48ce216220d7e3481dab3bc78 by protze
[TSan] Optimize handling of racy address

This patch splits the handling of racy address and racy stack into separate
functions. If a race was already reported for the address, we can avoid the
cost for collecting the involved stacks.

This patch also removes the race condition in storing the racy address / racy
stack. This race condition allowed all threads to report the race.

This patch changes the transitive suppression of reports. Previously
suppression could transitively chain memory location and racy stacks.
Now racy memory and racy stack are separate suppressions.

Reviewed by: dvyukov

Differential Revision: https://reviews.llvm.org/D83625
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
Commit d6e79e3dd6df63425eb098f482be2c9744ad48eb by jdenny.ornl
[OpenMP][Docs] Update `present` map type modifier status
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 24cd66d2190a093ed580451496513a65a4c7b8ce by david.green
[HardwareLoops] Add sibling loop test.

This missed being part of 9e03547cab69.
The file was addedllvm/test/Transforms/HardwareLoops/sibling-loops.ll
Commit ad493300322099787cab5f3a9f7310af0f9b5e6c by frgossen
[MLIR][Shape] Fix `shape_of` lowering to `scf`

The use of the `scf.for` callback builder does not allow for a rollback of the
emitted conversions. Instead, we populate the loop body through the conversion
rewriter directly.

Differential Revision: https://reviews.llvm.org/D83873
The file was modifiedmlir/lib/Conversion/ShapeToSCF/ShapeToSCF.cpp
Commit d3849dddd267af300d76b57c055e89f1ad2622d0 by protze
Revert "[TSan] Optimize handling of racy address"

This reverts commit 00e3a1ddec95c0b48ce216220d7e3481dab3bc78.
The commit broke most build bots, investigating.
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
Commit 700dd17399bdcf2c580121e52b20e5768663dfe5 by Jonas Devlieghere
[lldb/Test] Remove support for forking a subprocess from the test suite.

Remove the forkSubprocess method and its bookkeeping.
TestCreateAfterAttach is the only test using the fork method and I'm not
convinced it adds enough to warrant the maintenance. Pavel suggested the
same thing in D83815.
The file was modifiedlldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit ae51a70030b5a5af9789378356b67b8d18ddde8a by mcinally
[Legalize] Hoist invariant condition in ExpandVectorBuildThroughStack(...)

The operands of a BUILD_VECTOR must all have the same type, so we can hoist this invariant condition out of the loop.

Differential Revision: https://reviews.llvm.org/D83882
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit ef30a00a57c78a91571a66555f2531af0f1f51e5 by qiucofan
[NFC] Add float aggregate ABI test for PowerPC

4c5a93bd landed adjustment to handle C++20 no_unique_address attribute
correctly, clang treats empty members in aggregate type differently if
having this attribute. This commit adds necessary test for PowerPC
target to reflect this change.
The file was addedclang/test/CodeGen/ppc-aggregate-abi.cpp