FailedChanges

Summary

  1. llvm-dwarfdump: Support multiple debug_loclists contributions Also fixing the incorrect "offset" field being computed/printed for each location list.
  2. [Docs] Adds section for Additional Topics on Reference page Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page.
  3. [libFuzzer] Fix Alarm callback in fuchsia. This patch adds an #if macro to skip the InFuzzingThread() comparison for fuchsia, similar to what it is done for Windows and NetBSD. In fuchsia, the alarm callback runs in a separate thread[0], making it fail the comparison InFuzzingThread(), breaking the -timeout flag. [0]: https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp#L323 Author: charco (aka Marco Vanotti) Differential Revision: https://reviews.llvm.org/D68166
  4. [OPENMP50]Fix scoring of contexts with and without user provided scores. The context selector with user provided score must have higher score than the context selector without user provided score.
  5. [sanitizer, NFC] Fix grammar in comment
  6. [System Model] [TTI] Define AMDGPUTTIImpl::getST and AMDGPUTTIImpl::getTLI To fix "infinite recursion" warning.
  7. [System Model] [TTI] Fix virtual destructor warning
  8. [sanitizer] Disable signal_trap_handler on s390
  9. [Clang][OpenMP Offload] Add new tool for wrapping offload device binaries This patch removes the remaining part of the OpenMP offload linker scripts which was used for inserting device binaries into the output linked binary. Device binaries are now inserted into the host binary with a help of the wrapper bit-code file which contains device binaries as data. Wrapper bit-code file is dynamically created by the clang driver with a help of new tool clang-offload-wrapper which takes device binaries as input and produces bit-code file with required contents. Wrapper bit-code is then compiled to an object and resulting object is appended to the host linking by the clang driver. This is the second part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943). Differential Revision: https://reviews.llvm.org/D68166
  10. [Docs] Adds Documentation links to sidebar Adds links to Getting Started/Tutorials, User Guides, and Reference documentation pages to sidebar. Also adds a new section for LLVM IR on the Reference documentation page.
  11. [sanitizer] Make signal_name a C test
  12. [sanitizer] Use raise() in test and cover more signals
  13. [ConstProp] add tests for extractelement with undef index; NFC
  14. [AMDGPU] Use math constants defined in MathExtras (NFC) Use the the new math constants in `MathExtras.h`. Differential revision: https://reviews.llvm.org/D68285
  15. [Support] Add mathematical constants Add own version of the mathematical constants from the upcoming C++20 `std::numbers`. Differential revision: https://reviews.llvm.org/D68257
  16. [System Model] [TTI] Update cache and prefetch TTI interfaces Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon. This involved moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo. Rework the TTI cache and software prefetching APIs to prepare for the introduction of a general system model. Changes include: - Marking existing interfaces const and/or override as appropriate - Adding comments - Adding BasicTTIImpl interfaces that delegate to a subtarget implementation - Moving the default TargetTransformInfoImplBase implementation to a default MCSubtarget implementation Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC and SystemZ. AArch64 already has a custom subtarget implementation, so its custom TTI implementation is migrated to use the new facilities in BasicTTIImpl to invoke its custom subtarget implementation. The custom TTI implementations continue to exist for the other targets with this change. They are not moved over to subtarget-based implementations. The end goal is to have the default subtarget implementation defer to the system model defined by the target. With this change, the default MCSubtargetInfo implementation essentially returns the defaults TargetTransformInfoImplBase used to return. Existing users of TTI defaults will hit the defaults now in MCSubtargetInfo. Targets that define their own custom TTI implementations won't use the BasicTTIImpl implementations that route to the subtarget. Once system models are in place for the targets that use these interfaces, their custom TTI implementations can be removed. Differential Revision: https://reviews.llvm.org/D63614
  17. [ObjC generics] Fix not inheriting type bounds in categories/extensions. When a category/extension doesn't repeat a type bound, corresponding type parameter is substituted with `id` when used as a type argument. As a result, in the added test case it was causing errors like > type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T' We are already checking that type parameters should be consistent everywhere (see `checkTypeParamListConsistency`) and update `ObjCTypeParamDecl` to have correct underlying type. And when we use the type parameter as a method return type or a method parameter type, it is substituted to the bounded type. But when we use the type parameter as a type argument, we check `ObjCTypeParamType` that ignores the updated underlying type and remains `id`. Fix by desugaring `ObjCTypeParamType` to the underlying type, the same way we are doing with `TypedefType`. rdar://problem/54329242 Reviewers: erik.pilkington, ahatanak Reviewed By: erik.pilkington Subscribers: jkorous, dexonsmith, ributzka, cfe-commits Differential Revision: https://reviews.llvm.org/D66696
  18. [mangle] Fix mangling where an extra mangle context is required. Summary: - [Itanium C++ ABI][1], for certain contexts like default parameter and etc., mangling numbering will be local to the particular argument in which it appears. - However, for these cases, the mangle numbering context is allocated per expression evaluation stack entry. That causes, for example, two lambdas defined/used understand the same default parameter are numbered as the same value and, in turn, one of them is not generated at all. - In this patch, an extra mangle numbering context map is maintained in the AST context to map taht extra declaration context to its numbering context. So that, 2 different lambdas defined/used in the same default parameter are numbered differently. [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html Reviewers: rsmith, eli.friedman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68715
  19. [HIP] Fix -save-temps Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified. This patch fixes that. Differential Revision: https://reviews.llvm.org/D68665
  20. DebugInfo: Shot in the dark attempt to fix ubsan error from r374122 (specifying an underlying type for the enum might also be suitable - but this seems better/as good, since there's a clear expectation this can contain values other than the actual enumerators of this enum)
  21. [lit] Refactor ProgressDisplay Move progress display to separate file. Simplify some code paths. Decouple from other components via progress callback. Remove unused `_Display` class. Reviewed By: serge-sans-paille Differential Revision: https://reviews.llvm.org/D68525
  22. [ARM] Fix arm_neon.h with -flax-vector-conversions=none Really, we were already 99% of the way there; just needed a couple minor fixes that affected 64-bit-only builtins. Based on D61717. Note that the change to builtin_str changes the type of a few __builtin_neon_* intrinsics that had the "wrong" type. Fixes https://bugs.llvm.org/show_bug.cgi?id=43341 Differential Revision: https://reviews.llvm.org/D68683
  23. [InstCombine] add another test for gep inbounds; NFC
  24. [WebAssembly] Add builtin and intrinsic for v8x16.swizzle Summary: This clang builtin and corresponding LLVM intrinsic are necessary to expose the exact semantics of the underlying WebAssembly instruction to users. LLVM produces a poison value if the dynamic swizzle indices are greater than the vector size, but the WebAssembly instruction sets the corresponding output lane to zero. Users who depend on this behavior can safely use this builtin. Depends on D68527. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D68531
  25. [WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering Summary: Adds the new v8x16.swizzle SIMD instruction as specified at https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices. In addition to adding swizzles as a candidate lowering in LowerBUILD_VECTOR, also rewrites and simplifies the lowering to minimize the number of replace_lanes necessary rather than trying to minimize code size. This leads to more uses of v128.const instead of splats, which is expected to increase performance. The new code will be easier to tune once V8 implements all the vector construction operations, and it will also be easier to add new candidate instructions in the future if necessary. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68527
  26. [FPEnv][NFC] Change test to conform to strictfp attribute rules. In particular, the function definition is not marked strictfp despite containing a function marked strictfp. Also, if any function call is marked strictfp then all function calls in that function must be marked. This change to move the one strictfp call to a new properly marked function meets all the new rules. Tested with a stricter version of D68233. Reviewed by: spatel Approved by: spatel Differential Revision: https://reviews.llvm.org/D68713
Revision 374232 by dblaikie:
llvm-dwarfdump: Support multiple debug_loclists contributions

Also fixing the incorrect "offset" field being computed/printed for each
location list.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.hllvm.src/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cppllvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cppllvm.src/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/debug-loclists.llllvm.src/test/CodeGen/X86/debug-loclists.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dwarfdump-debug-loclists.testllvm.src/test/DebugInfo/X86/dwarfdump-debug-loclists.test
The file was added/llvm/trunk/test/tools/llvm-dwarfdump/X86/debug_loclists_multiple.sllvm.src/test/tools/llvm-dwarfdump/X86/debug_loclists_multiple.s
The file was modified/llvm/trunk/test/tools/llvm-dwarfdump/X86/debug_loclists_startx_length.sllvm.src/test/tools/llvm-dwarfdump/X86/debug_loclists_startx_length.s
Revision 374230 by dr87:
[Docs] Adds section for Additional Topics on Reference page

Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Reference.rstllvm.src/docs/Reference.rst
The file was modified/llvm/trunk/docs/UserGuides.rstllvm.src/docs/UserGuides.rst
Revision 374228 by jakehehrlich:
[libFuzzer] Fix Alarm callback in fuchsia.

This patch adds an #if macro to skip the InFuzzingThread() comparison
for fuchsia, similar to what it is done for Windows and NetBSD.

In fuchsia, the alarm callback runs in a separate thread[0], making it fail
the comparison InFuzzingThread(), breaking the -timeout flag.

[0]:
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp#L323

Author: charco (aka Marco  Vanotti)
Differential Revision: https://reviews.llvm.org/D68166
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cppcompiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
Revision 374224 by abataev:
[OPENMP50]Fix scoring of contexts with and without user provided scores.

The context selector with user provided score must have higher score
than the context selector without user provided score.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cppclang.src/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modified/cfe/trunk/test/OpenMP/declare_variant_implementation_vendor_codegen.cppclang.src/test/OpenMP/declare_variant_implementation_vendor_codegen.cpp
Revision 374223 by Vitaly Buka:
[sanitizer, NFC] Fix grammar in comment
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp
Revision 374222 by Vitaly Buka:
[System Model] [TTI] Define AMDGPUTTIImpl::getST and AMDGPUTTIImpl::getTLI

To fix "infinite recursion" warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.hllvm.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
Revision 374221 by Vitaly Buka:
[System Model] [TTI] Fix virtual destructor warning
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/BasicTTIImpl.hllvm.src/include/llvm/CodeGen/BasicTTIImpl.h
Revision 374220 by Vitaly Buka:
[sanitizer] Disable signal_trap_handler on s390
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp
Revision 374219 by sdmitriev:
[Clang][OpenMP Offload] Add new tool for wrapping offload device binaries

This patch removes the remaining part of the OpenMP offload linker scripts which was used for inserting device binaries into the output linked binary. Device binaries are now inserted into the host binary with a help of the wrapper bit-code file which contains device binaries as data. Wrapper bit-code file is dynamically created by the clang driver with a help of new tool clang-offload-wrapper which takes device binaries as input and produces bit-code file with required contents. Wrapper bit-code is then compiled to an object and resulting object is appended to the host linking by the clang driver.

This is the second part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943).

Differential Revision: https://reviews.llvm.org/D68166
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Action.hclang.src/include/clang/Driver/Action.h
The file was modified/cfe/trunk/include/clang/Driver/Options.tdclang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/ToolChain.hclang.src/include/clang/Driver/ToolChain.h
The file was modified/cfe/trunk/lib/Driver/Action.cppclang.src/lib/Driver/Action.cpp
The file was modified/cfe/trunk/lib/Driver/Driver.cppclang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChain.cppclang.src/lib/Driver/ToolChain.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.hclang.src/lib/Driver/ToolChains/Clang.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cppclang.src/lib/Driver/ToolChains/CommonArgs.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.hclang.src/lib/Driver/ToolChains/CommonArgs.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Cuda.cppclang.src/lib/Driver/ToolChains/Cuda.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Gnu.cppclang.src/lib/Driver/ToolChains/Gnu.cpp
The file was added/cfe/trunk/test/Driver/clang-offload-wrapper.cclang.src/test/Driver/clang-offload-wrapper.c
The file was modified/cfe/trunk/test/Driver/openmp-offload-gpu.cclang.src/test/Driver/openmp-offload-gpu.c
The file was modified/cfe/trunk/test/Driver/openmp-offload.cclang.src/test/Driver/openmp-offload.c
The file was modified/cfe/trunk/tools/CMakeLists.txtclang.src/tools/CMakeLists.txt
The file was added/cfe/trunk/tools/clang-offload-wrapperclang.src/tools/clang-offload-wrapper
The file was added/cfe/trunk/tools/clang-offload-wrapper/CMakeLists.txtclang.src/tools/clang-offload-wrapper/CMakeLists.txt
The file was added/cfe/trunk/tools/clang-offload-wrapper/ClangOffloadWrapper.cppclang.src/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp
Revision 374214 by dr87:
[Docs] Adds Documentation links to sidebar

Adds links to Getting Started/Tutorials, User Guides, and Reference documentation pages to sidebar. Also adds a new section for LLVM IR on the Reference documentation page.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/GettingStartedTutorials.rstllvm.src/docs/GettingStartedTutorials.rst
The file was modified/llvm/trunk/docs/Reference.rstllvm.src/docs/Reference.rst
The file was modified/llvm/trunk/docs/_templates/indexsidebar.htmlllvm.src/docs/_templates/indexsidebar.html
Revision 374213 by Vitaly Buka:
[sanitizer] Make signal_name a C test
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.ccompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.c
The file was removed/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.cpp
Revision 374211 by Vitaly Buka:
[sanitizer] Use raise() in test and cover more signals
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.cpp
The file was removed/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap.cpp
Revision 374210 by spatel:
[ConstProp] add tests for extractelement with undef index; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/ConstProp/InsertElement.llllvm.src/test/Transforms/ConstProp/InsertElement.ll
Revision 374208 by evandro:
[AMDGPU] Use math constants defined in MathExtras (NFC)

Use the the new math constants in `MathExtras.h`.

Differential revision: https://reviews.llvm.org/D68285
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cppllvm.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULibCalls.cppllvm.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cppllvm.src/lib/Target/AMDGPU/R600ISelLowering.cpp
Revision 374207 by evandro:
[Support] Add mathematical constants

Add own version of the mathematical constants from the upcoming C++20 `std::numbers`.

Differential revision: https://reviews.llvm.org/D68257
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/MathExtras.hllvm.src/include/llvm/Support/MathExtras.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cppllvm.src/lib/Transforms/Utils/SimplifyLibCalls.cpp
Revision 374205 by greened:
[System Model] [TTI] Update cache and prefetch TTI interfaces

Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon.  This involved
moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo.

Rework the TTI cache and software prefetching APIs to prepare for the
introduction of a general system model.  Changes include:

- Marking existing interfaces const and/or override as appropriate
- Adding comments
- Adding BasicTTIImpl interfaces that delegate to a subtarget
  implementation
- Moving the default TargetTransformInfoImplBase implementation to a default
  MCSubtarget implementation

Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC
and SystemZ.  AArch64 already has a custom subtarget implementation, so its
custom TTI implementation is migrated to use the new facilities in BasicTTIImpl
to invoke its custom subtarget implementation.  The custom TTI implementations
continue to exist for the other targets with this change.  They are not moved
over to subtarget-based implementations.

The end goal is to have the default subtarget implementation defer to the system
model defined by the target.  With this change, the default MCSubtargetInfo
implementation essentially returns the defaults TargetTransformInfoImplBase used
to return.  Existing users of TTI defaults will hit the defaults now in
MCSubtargetInfo.  Targets that define their own custom TTI implementations won't
use the BasicTTIImpl implementations that route to the subtarget.

Once system models are in place for the targets that use these interfaces, their
custom TTI implementations can be removed.

Differential Revision: https://reviews.llvm.org/D63614
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfo.hllvm.src/include/llvm/Analysis/TargetTransformInfo.h
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfoImpl.hllvm.src/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modified/llvm/trunk/include/llvm/CodeGen/BasicTTIImpl.hllvm.src/include/llvm/CodeGen/BasicTTIImpl.h
The file was modified/llvm/trunk/include/llvm/MC/MCSubtargetInfo.hllvm.src/include/llvm/MC/MCSubtargetInfo.h
The file was modified/llvm/trunk/lib/Analysis/TargetTransformInfo.cppllvm.src/lib/Analysis/TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/MC/MCSubtargetInfo.cppllvm.src/lib/MC/MCSubtargetInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.hllvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetTransformInfo.cppllvm.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetTransformInfo.hllvm.src/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonTargetTransformInfo.hllvm.src/lib/Target/Hexagon/HexagonTargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCTargetTransformInfo.cppllvm.src/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCTargetTransformInfo.hllvm.src/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.hllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.h
Revision 374202 by vsapsai:
[ObjC generics] Fix not inheriting type bounds in categories/extensions.

When a category/extension doesn't repeat a type bound, corresponding
type parameter is substituted with `id` when used as a type argument. As
a result, in the added test case it was causing errors like

> type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T'

We are already checking that type parameters should be consistent
everywhere (see `checkTypeParamListConsistency`) and update
`ObjCTypeParamDecl` to have correct underlying type. And when we use the
type parameter as a method return type or a method parameter type, it is
substituted to the bounded type. But when we use the type parameter as a
type argument, we check `ObjCTypeParamType` that ignores the updated
underlying type and remains `id`.

Fix by desugaring `ObjCTypeParamType` to the underlying type, the same
way we are doing with `TypedefType`.

rdar://problem/54329242

Reviewers: erik.pilkington, ahatanak

Reviewed By: erik.pilkington

Subscribers: jkorous, dexonsmith, ributzka, cfe-commits

Differential Revision: https://reviews.llvm.org/D66696
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Type.hclang.src/include/clang/AST/Type.h
The file was modified/cfe/trunk/lib/AST/Type.cppclang.src/lib/AST/Type.cpp
The file was modified/cfe/trunk/test/SemaObjC/parameterized_classes_subst.mclang.src/test/SemaObjC/parameterized_classes_subst.m
Revision 374200 by hliao:
[mangle] Fix mangling where an extra mangle context is required.

Summary:
- [Itanium C++ ABI][1], for certain contexts like default parameter and
  etc., mangling numbering will be local to the particular argument in
  which it appears.
- However, for these cases, the mangle numbering context is allocated per
  expression evaluation stack entry. That causes, for example, two
  lambdas defined/used understand the same default parameter are
  numbered as the same value and, in turn, one of them is not generated
  at all.
- In this patch, an extra mangle numbering context map is maintained in
  the AST context to map taht extra declaration context to its numbering
  context. So that, 2 different lambdas defined/used in the same default
  parameter are numbered differently.

[1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html

Reviewers: rsmith, eli.friedman

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68715
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTContext.hclang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/include/clang/Sema/Sema.hclang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/AST/ASTContext.cppclang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/Sema/SemaLambda.cppclang.src/lib/Sema/SemaLambda.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/mangle-lambdas.cppclang.src/test/CodeGenCXX/mangle-lambdas.cpp
Revision 374198 by yaxunl:
[HIP] Fix -save-temps

Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D68665
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cppclang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cppclang.src/lib/Driver/ToolChains/CommonArgs.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.cppclang.src/lib/Driver/ToolChains/HIP.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.hclang.src/lib/Driver/ToolChains/HIP.h
The file was added/cfe/trunk/test/Driver/hip-save-temps.hipclang.src/test/Driver/hip-save-temps.hip
Revision 374196 by dblaikie:
DebugInfo: Shot in the dark attempt to fix ubsan error from r374122

(specifying an underlying type for the enum might also be suitable - but
this seems better/as good, since there's a clear expectation this can
contain values other than the actual enumerators of this enum)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cppllvm.src/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
Revision 374194 by yln:
[lit] Refactor ProgressDisplay

Move progress display to separate file.  Simplify some code paths.
Decouple from other components via progress callback.  Remove unused
`_Display` class.

Reviewed By: serge-sans-paille

Differential Revision: https://reviews.llvm.org/D68525
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/lit/lit/ProgressBar.pyllvm.src/utils/lit/lit/ProgressBar.py
The file was added/llvm/trunk/utils/lit/lit/display.pyllvm.src/utils/lit/lit/display.py
The file was modified/llvm/trunk/utils/lit/lit/main.pyllvm.src/utils/lit/lit/main.py
The file was modified/llvm/trunk/utils/lit/lit/run.pyllvm.src/utils/lit/lit/run.py
The file was modified/llvm/trunk/utils/lit/tests/progress-bar.pyllvm.src/utils/lit/tests/progress-bar.py
Revision 374191 by efriedma:
[ARM] Fix arm_neon.h with -flax-vector-conversions=none

Really, we were already 99% of the way there; just needed a couple minor
fixes that affected 64-bit-only builtins.  Based on D61717.

Note that the change to builtin_str changes the type of a few
__builtin_neon_* intrinsics that had the "wrong" type.

Fixes https://bugs.llvm.org/show_bug.cgi?id=43341

Differential Revision: https://reviews.llvm.org/D68683
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-2velem.cclang.src/test/CodeGen/aarch64-neon-2velem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-intrinsics.cclang.src/test/CodeGen/aarch64-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-scalar-copy.cclang.src/test/CodeGen/aarch64-neon-scalar-copy.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.cclang.src/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-vget.cclang.src/test/CodeGen/aarch64-neon-vget.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-poly64.cclang.src/test/CodeGen/aarch64-poly64.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-v8.2a-neon-intrinsics.cclang.src/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/arm64-lanes.cclang.src/test/CodeGen/arm64-lanes.c
The file was modified/cfe/trunk/test/CodeGen/arm64_vcopy.cclang.src/test/CodeGen/arm64_vcopy.c
The file was modified/cfe/trunk/test/CodeGen/arm_neon_intrinsics.cclang.src/test/CodeGen/arm_neon_intrinsics.c
The file was modified/cfe/trunk/test/Headers/arm-neon-header.cclang.src/test/Headers/arm-neon-header.c
The file was modified/cfe/trunk/utils/TableGen/NeonEmitter.cppclang.src/utils/TableGen/NeonEmitter.cpp
Revision 374190 by spatel:
[InstCombine] add another test for gep inbounds; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/load-bitcast-vec.llllvm.src/test/Transforms/InstCombine/load-bitcast-vec.ll
Revision 374189 by tlively:
[WebAssembly] Add builtin and intrinsic for v8x16.swizzle

Summary:
This clang builtin and corresponding LLVM intrinsic are necessary to
expose the exact semantics of the underlying WebAssembly instruction
to users. LLVM produces a poison value if the dynamic swizzle indices
are greater than the vector size, but the WebAssembly instruction sets
the corresponding output lane to zero. Users who depend on this
behavior can safely use this builtin.

Depends on D68527.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D68531
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.defclang.src/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.cclang.src/test/CodeGen/builtins-wasm.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.tdllvm.src/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.tdllvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-intrinsics.llllvm.src/test/CodeGen/WebAssembly/simd-intrinsics.ll
Revision 374188 by tlively:
[WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering

Summary:
Adds the new v8x16.swizzle SIMD instruction as specified at
https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices.
In addition to adding swizzles as a candidate lowering in
LowerBUILD_VECTOR, also rewrites and simplifies the lowering to
minimize the number of replace_lanes necessary rather than trying to
minimize code size. This leads to more uses of v128.const instead of
splats, which is expected to increase performance.

The new code will be easier to tune once V8 implements all the vector
construction operations, and it will also be easier to add new
candidate instructions in the future if necessary.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68527
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISD.defllvm.src/lib/Target/WebAssembly/WebAssemblyISD.def
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cppllvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.tdllvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-build-vector.llllvm.src/test/CodeGen/WebAssembly/simd-build-vector.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/simd-encodings.sllvm.src/test/MC/WebAssembly/simd-encodings.s
Revision 374186 by kpn:
[FPEnv][NFC] Change test to conform to strictfp attribute rules.

In particular, the function definition is not marked strictfp despite
containing a function marked strictfp. Also, if any function call is marked
strictfp then all function calls in that function must be marked.

This change to move the one strictfp call to a new properly marked function
meets all the new rules.

Tested with a stricter version of D68233.

Reviewed by: spatel
Approved by: spatel
Differential Revision: https://reviews.llvm.org/D68713
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Bitcode/compatibility.llllvm.src/test/Bitcode/compatibility.ll