SuccessChanges

Summary

  1. [DebugInfo] Fix to ctor homing to ignore classes with trivial ctors. (details)
  2. [X86] Teach the assembler parser to handle a '*' between segment register and base/index/displacement part of an address (details)
  3. [AMDGPU] DWARF proposal changes (details)
  4. [AMDGPU] Fix DWARF extensions User Guide table of contents (details)
  5. [Analyzer] Use of BugType in DereferenceChecker (NFC). (details)
  6. [NFC] Remove unused variable (details)
  7. [Support] Class to facilitate file locking (details)
  8. [X86] Don't pass some many parameters to ParseMemOperand by reference. (details)
  9. [X86] Pass the OperandVector to ParseMemOperand instead of returning the operand. NFCI (details)
  10. [clangd] Fix an assertion failure in TargetFinder's heuristic resolution of dependent type. (details)
  11. [MLIR][SPIRVToLLVM] Conversion patterns for GLSL ops (details)
  12. [Concepts] Fix a deserialization crash. (details)
  13. [SVE][CodeGen] At -O0 fallback to DAG ISel when translating alloca with scalable types (details)
  14. [Analyzer] Remove inclusion of uniqueing decl from diagnostic profile. (details)
  15. [MLIR][SPIRVToLLVM] Conversion for inverse sqrt and tanh (details)
  16. [PHIElimination] Fix the killed flag for LowerPHINode() (details)
  17. [MLIR][SPIRVToLLVM] Conversion of GLSL ops to LLVM intrinsics (details)
  18. [compiler-rt][cmake] Simplify COMPILER_RT_HAS_VERSION_SCRIPT tests (details)
  19. [IPConstProp] Regenerate check lines. (details)
  20. [flang] Fix multi-config generator builds. (details)
  21. [clang-tidy] Use StringMap for ClangTidyOptions::OptionsMap (details)
  22. [DAGCombiner] Fold sext_inreg of a masked load into a sign extended masked load (details)
  23. [DWARFYAML] Make the 'AddressSize', 'SegmentSelectorSize' fields optional. (details)
  24. [DWARFYAML] Make the 'Length' field of the address range table optional. (details)
  25. [clangd] findNearbyIdentifier(): fix the word search in the token stream. (details)
Commit f71deb43abea588901c083d3e6d6d25371b486ae by akhuang
[DebugInfo] Fix to ctor homing to ignore classes with trivial ctors.

Previously ctor homing was omitting debug info for classes if they
have both trival and nontrivial constructors, but we should only omit debug
info if the class doesn't have any trivial constructors.

retained types list.

bug: https://bugs.llvm.org/show_bug.cgi?id=46537

Differential Revision: https://reviews.llvm.org/D84870
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-limited-ctor.cpp
Commit 9611ee5f40ea0b0878725dd06657e55363b4065f by craig.topper
[X86] Teach the assembler parser to handle a '*' between segment register and base/index/displacement part of an address

A '*' after the segment is equivalent to a '*' before the segment register. To make the AsmMatcher table work we need to place the '*' token into the operand vector before the full memory operand. To accomplish this I've modified some portions of operand parsing to expose the operand vector to ParseATTOperand so that the token can be pushed to the vector after parsing the segment register and before creating the memory operand using that segment register.

Fixes PR46879

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D84895
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modifiedllvm/test/MC/X86/x86-64.s
The file was modifiedllvm/test/MC/X86/x86-32.s
Commit e24f5f314914cff02958b023f2ecfc3cb413372e by Tony.Tye
[AMDGPU] DWARF proposal changes

- Clarify that these are extensions to DWARF 5 and not as yet a
  proposal.

Reviewed By: scott.linder

Differential Revision: https://reviews.llvm.org/D70523
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was addedllvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst
The file was removedllvm/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.rst
Commit 629467eb981ac5d6bccebd524a166e02bef1820f by Tony.Tye
[AMDGPU] Fix DWARF extensions User Guide table of contents
The file was modifiedllvm/docs/UserGuides.rst
Commit b22b97b3d0c08485d478073d6a2a6e769af7a2af by 1.int32
[Analyzer] Use of BugType in DereferenceChecker (NFC).

Use of BuiltinBug is replaced by BugType.
Class BuiltinBug seems to have no benefits and is confusing.

Reviewed By: Szelethus, martong, NoQ, vsavchenko

Differential Revision: https://reviews.llvm.org/D84494
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
Commit 3678ad88a6a1cbc8f5171519666b10e8997289dc by mkazantsev
[NFC] Remove unused variable
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Commit 032ed39defc7403b94c367fa43432606c418e946 by sepavloff
[Support] Class to facilitate file locking

This change define RAII class `FileLocker` and methods `lock` and
`tryLockFor` of the class `raw_fd_stream` to facilitate using file locks.

Differential Revision: https://reviews.llvm.org/D79066
The file was modifiedllvm/lib/Support/raw_ostream.cpp
The file was modifiedllvm/include/llvm/Support/FileSystem.h
The file was modifiedllvm/include/llvm/Support/raw_ostream.h
The file was modifiedllvm/unittests/Support/Path.cpp
Commit 17597442db159829dd167abb638b198ad0afc309 by craig.topper
[X86] Don't pass some many parameters to ParseMemOperand by reference.

Pointers and SMLocs are cheap to copy. Even though the function
modifies some of these the caller doesn't use them after the call.
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 07bb8240a0b2f4262764efb828b09650f24a03c5 by craig.topper
[X86] Pass the OperandVector to ParseMemOperand instead of returning the operand. NFCI

Continue the change made to ParseATTOperand to take the vector by
reference. Let ParseMemOperand add its memory operand to the
vector and just return true/false to indicate error.
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit cd4e8d7f6f5ef108919f9f53db35ac73d1edea3d by hokein.wu
[clangd] Fix an assertion failure in TargetFinder's heuristic resolution of dependent type.

The assertion is not true anymore after D82739, this patch just removes
it, and rename related functions.

And also fixes a missing cases.

Differential Revision: https://reviews.llvm.org/D84837
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
Commit 647e9a54c758a6fdd85a569f019f00a653b2bc40 by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion patterns for GLSL ops

This is the first patch that adds support for GLSL extended
instruction set ops. These are direct conversions, apart from `spv.Tan`
that is lowered to `sin() / cos()`.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D84627
The file was addedmlir/test/Conversion/SPIRVToLLVM/glsl-ops-to-llvm.mlir
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
Commit 73c12bd8ff1a9cd8375a357ea06f171e127ec1b8 by hokein.wu
[Concepts] Fix a deserialization crash.

`TemplateTypeParmDecl::hasTypeConstraint` is not a safe guard for
checking `TemplateTypeParmDecl::getTypeConstraint()` result is null.

in somecases (e.g. implicit deduction guide templates synthesized from the
constructor, immediately-declared constraint is not formed because of an error),
hasTypeConstraint returns false, and getTypeConstraint returns a nullptr.

Fix https://bugs.llvm.org/show_bug.cgi?id=46790

Differential Revision: https://reviews.llvm.org/D84455
The file was addedclang/test/PCH/cxx2a-constraints-crash.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
Commit 23ad660b5d34930b2b5362f1bba63daee78f6aa4 by david.sherwood
[SVE][CodeGen] At -O0 fallback to DAG ISel when translating alloca with scalable types

When building code at -O0 We weren't falling back to DAG ISel correctly
when encountering alloca instructions with scalable vector types. This
is because the alloca has no operands that are scalable. I've fixed this by
adding a check in AArch64ISelLowering::fallBackToDAGISel for alloca
instructions with scalable types.

Differential Revision: https://reviews.llvm.org/D84746
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 1745ba41b196d80d8a6739dffcbb6f613d371f29 by 1.int32
[Analyzer] Remove inclusion of uniqueing decl from diagnostic profile.

The uniqueing decl in PathDiagnostic is the declaration with the
uniqueing loc, as stated by documentation comments.
It is enough to include the uniqueing loc in the profile. It is possible
to have objects with different uniqueing decl but same location, at
least with templates. These belong to the same class and should have
same profile.

Reviewed By: vsavchenko, NoQ

Differential Revision: https://reviews.llvm.org/D84843
The file was addedclang/test/Analysis/report-uniqueing.cpp
The file was modifiedclang/lib/Analysis/PathDiagnostic.cpp
Commit 3aab320557e7441bc2ce0b51fd6d82838fd0d484 by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion for inverse sqrt and tanh

This is a second patch on conversion of GLSL ops to LLVM dialect.
It introduces patterns to convert `spv.InverseSqrt` and `spv.Tanh`.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D84633
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/glsl-ops-to-llvm.mlir
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
Commit 0037a5f894345eef5552d6620548cc8ad5900b41 by shkzhang
[PHIElimination] Fix the killed flag for LowerPHINode()

Summary:
In the phi-node-elimination pass, we set the killed flag incorrectly.
When we eliminate the PHI node, we replace the PHI with a copy for the
incoming value.

Before this patch, we will set incoming value as killed(PHICopy). And
we will remove the killed flag from last using incoming value(OldKill).
This is correct, only if the new PHICopy is after the OldKill.

Reviewed By: bjope

Differential Revision: https://reviews.llvm.org/D80886
The file was addedllvm/test/CodeGen/PowerPC/phi-eliminate.mir
The file was modifiedllvm/lib/CodeGen/PHIElimination.cpp
Commit 18805320365314ecbbebc65279c142a12ae9c0c2 by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion of GLSL ops to LLVM intrinsics

This patch introduces new intrinsics in LLVM dialect:
-  `llvm.intr.floor`
-  `llvm.intr.maxnum`
-  `llvm.intr.minnum`
-  `llvm.intr.smax`
-  `llvm.intr.smin`
These intrinsics correspond to SPIR-V ops from GLSL
extended instruction set (`spv.GLSL.Floor`, `spv.GLSL.FMax`,
`spv.GLSL.FMin`,  `spv.GLSL.SMax` and `spv.GLSL.SMin`
respectively). Also conversion patterns for them were added.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D84661
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/glsl-ops-to-llvm.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/test/Target/llvmir-intrinsics.mlir
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
Commit bbe509920721cf5d42990339e4daf43e27073ec4 by ro
[compiler-rt][cmake] Simplify COMPILER_RT_HAS_VERSION_SCRIPT tests

As requested in the review, this patch removes the additional conditions in
the `COMPILER_RT_HAS_VERSION_SCRIPT` tests.

Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`.

Differential Revision: https://reviews.llvm.org/D84559
The file was modifiedcompiler-rt/lib/ubsan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/asan/CMakeLists.txt
Commit 1ac72a0774b5e6d770bb65d2debccca561bc1c31 by flo
[IPConstProp] Regenerate check lines.

Preparation for D84447.
The file was modifiedllvm/test/Transforms/IPConstantProp/deadarg.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/2008-06-09-WeakProp.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/comdat-ipo.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/naked-return.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/return-argument.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/recursion.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/return-constant.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/arg-count-mismatch.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/return-constants.ll
The file was modifiedllvm/test/Transforms/IPConstantProp/thread_local_acs.ll
Commit 332170356e35ea9cdc2c1d612b61a50ec5ea322e by david.truby
[flang] Fix multi-config generator builds.

Summary:
Currently the binaries are output directly into the bin subdirectory of the
build directory. This doesn't work correctly with multi-config generators which
should output the binaries into <CONFIG_NAME>/bin instead.

Reviewers: sscalpone, richard.barton.arm

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D84022
The file was modifiedflang/tools/f18/CMakeLists.txt
The file was modifiedflang/test/lit.cfg.py
The file was modifiedflang/test/lit.site.cfg.py.in
The file was modifiedflang/CMakeLists.txt
Commit 45a720a864320bbbeb596abe412786fa91858980 by n.james93
[clang-tidy] Use StringMap for ClangTidyOptions::OptionsMap

Ordering of options isn't important so an `llvm::StringMap` is a much better container for this purpose.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D84868
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyOptions.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/infrastructure/config-files.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyOptions.h
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/google-module.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidy.cpp
Commit 276ed5f7e4ee82e02abaa37ffc2dfa090ea6167e by samuel.tebbs
[DAGCombiner] Fold sext_inreg of a masked load into a sign extended masked load

This patch adds a DAG combine fold for a sext(masked_load) into a sign extended masked load.

Differential Revision: https://reviews.llvm.org/D84332
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was addedllvm/test/CodeGen/Thumb2/mve-sext-masked-load.ll
Commit 006f6f8ac6fe920e978f65d92bb44825833f2933 by Xing
[DWARFYAML] Make the 'AddressSize', 'SegmentSelectorSize' fields optional.

This patch makes the 'AddressSize' and 'SegmentSelectorSize' fields of
address range table optional.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D84907
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-aranges.yaml
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
Commit 3da6a974db86ba7d1f9a17a1e229daeade52a038 by Xing
[DWARFYAML] Make the 'Length' field of the address range table optional.

This patch makes the 'Length' field of the address range table optional.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D84911
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-aranges.yaml
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
Commit 05b173466142596b3297ab02e423574cb74b3799 by platonov.aleksandr
[clangd] findNearbyIdentifier(): fix the word search in the token stream.

Without this patch the word occurrence search always returns the first token of the file.
Despite of that, `findNeardyIdentifier()` returns the correct result (but inefficently) until there are several matched tokens with the same value `floor(log2(<token line> - <word line>))` (e.g. several matched tokens on the same line).

Reviewed By: kadircet

Differential Revision: https://reviews.llvm.org/D84912
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
The file was modifiedclang-tools-extra/clangd/XRefs.cpp