SuccessChanges

Summary

  1. AMDGPU/GlobalISel: Add missing tests for cmpxchg selection (details)
  2. [OPENMP50]Add support for hint clause in atomic directive. (details)
  3. Remove clang::ast_type_traits namespace in favor of clang (details)
  4. Add a DWARF transformer class that converts DWARF to GSYM. (details)
  5. [gn build] Port 19602b71949 (details)
  6. [libc][NFC] clang-format syscall.h.in (details)
  7. [mlir][spirv] Add ConvertGpuLaunchFuncToVulkanCallsPass (details)
  8. Clean up hexagon builder after object-emission removal (details)
Commit cfa60ff2c7a60fba2213b29097fe41c07e99ab21 by Matthew.Arsenault
AMDGPU/GlobalISel: Add missing tests for cmpxchg selection
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-atomic-cmpxchg-local.mir (diff)
Commit 2fb6268854f178609e974002e4781dbdb1074b90 by a.bataev
[OPENMP50]Add support for hint clause in atomic directive.

According to OpenMP 5.0, hint clause is alowed to be used in atomic
directives.
The file was modifiedclang/include/clang/Basic/OpenMPKinds.def (diff)
The file was modifiedclang/test/OpenMP/atomic_messages.c (diff)
The file was modifiedclang/lib/Basic/OpenMPKinds.cpp (diff)
The file was modifiedclang/test/OpenMP/atomic_ast_print.cpp (diff)
Commit cd62511496938e33c061c90796dd23a5288ff843 by rnk
Remove clang::ast_type_traits namespace in favor of clang

DynTypedNode and ASTNodeKind are implemented as part of the clang AST
library, which uses the main clang namespace. There doesn't seem to be a
need for this extra level of namespacing.

I left behind aliases in the ast_type_traits namespace for out of tree
clients of these APIs. To provide aliases for the enumerators, I used
this pattern:
  namespace ast_type_traits {
  constexpr TraversalKind TK_AsIs = ::clang::TK_AsIs;
  }
I think the typedefs will be useful for migration, but we might be able
to drop these enumerator aliases.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D74499
The file was modifiedclang/lib/Tooling/Transformer/RewriteRule.cpp (diff)
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp (diff)
The file was modifiedclang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp (diff)
The file was modifiedclang/include/clang/AST/ASTContext.h (diff)
The file was modifiedclang/include/clang/ASTMatchers/Dynamic/VariantValue.h (diff)
The file was modifiedclang/include/clang/AST/ASTTypeTraits.h (diff)
The file was modifiedclang/lib/Tooling/ASTDiff/ASTDiff.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchFinder.h (diff)
The file was modifiedclang/lib/ASTMatchers/Dynamic/VariantValue.cpp (diff)
The file was modifiedclang/include/clang/Tooling/ASTDiff/ASTDiffInternal.h (diff)
The file was modifiedclang/include/clang/Tooling/Refactoring/ASTSelection.h (diff)
The file was modifiedclang/docs/LibASTMatchersReference.html (diff)
The file was modifiedclang/lib/ASTMatchers/Dynamic/Marshallers.h (diff)
The file was modifiedclang/lib/AST/ParentMapContext.cpp (diff)
The file was modifiedclang/unittests/AST/MatchVerifier.h (diff)
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)
The file was modifiedclang/include/clang/AST/ParentMapContext.h (diff)
The file was modifiedclang/lib/AST/ASTTypeTraits.cpp (diff)
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp (diff)
The file was modifiedclang/include/clang/Tooling/ASTDiff/ASTDiff.h (diff)
The file was modifiedclang/lib/Tooling/Transformer/RangeSelector.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h (diff)
The file was modifiedclang/unittests/AST/ASTContextParentMapTest.cpp (diff)
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h (diff)
The file was modifiedclang/unittests/AST/ASTTraverserTest.cpp (diff)
The file was modifiedclang/include/clang/AST/ASTNodeTraverser.h (diff)
The file was modifiedclang/lib/Tooling/Transformer/Stencil.cpp (diff)
The file was modifiedclang/lib/Tooling/Refactoring/ASTSelection.cpp (diff)
Commit 19602b71949db1f840b262558c832c5f73722c7e by gclayton
Add a DWARF transformer class that converts DWARF to GSYM.

Summary:
The DWARF transformer is added as a class so it can be unit tested fully.

The DWARF is converted to GSYM format and handles many special cases for functions:
- omit functions in compile units with 4 byte addresses whose address is UINT32_MAX (dead stripped)
- omit functions in compile units with 8 byte addresses whose address is UINT64_MAX (dead stripped)
- omit any functions whose high PC is <= low PC (dead stripped)
- StringTable builder doesn't copy strings, so we need to make backing copies of strings but only when needed. Many strings come from sections in object files and won't need to have backing copies, but some do.
- When a function doesn't have a mangled name, store the fully qualified name by creating a string by traversing the parent decl context DIEs and then. If we don't do this, we end up having cases where some function might appear in the GSYM as "erase" instead of "std::vector<int>::erase".
- omit any functions whose address isn't in the optional TextRanges member variable of DwarfTransformer. This allows object file to register address ranges that are known valid code ranges and can help omit functions that should have been dead stripped, but just had their low PC values set to zero. In this case we have many functions that all appear at address zero and can omit these functions by making sure they fall into good address ranges on the object file. Many compilers do this when the DWARF has a DW_AT_low_pc with a DW_FORM_addr, and a DW_AT_high_pc with a DW_FORM_data4 as the offset from the low PC. In this case the linker can't write the same address to both the high and low PC since there is only a relocation for the DW_AT_low_pc, so many linkers tend to just zero it out.

Reviewers: aprantl, dblaikie, probinson

Subscribers: mgorny, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74450
The file was modifiedllvm/lib/DebugInfo/GSYM/GsymCreator.cpp (diff)
The file was modifiedllvm/include/llvm/DebugInfo/GSYM/LineTable.h (diff)
The file was modifiedllvm/include/llvm/DebugInfo/GSYM/GsymReader.h (diff)
The file was modifiedllvm/unittests/DebugInfo/GSYM/GSYMTest.cpp (diff)
The file was addedllvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp
The file was modifiedllvm/unittests/DebugInfo/GSYM/CMakeLists.txt (diff)
The file was modifiedllvm/lib/DebugInfo/GSYM/FunctionInfo.cpp (diff)
The file was modifiedllvm/include/llvm/MC/StringTableBuilder.h (diff)
The file was modifiedllvm/include/llvm/DebugInfo/GSYM/GsymCreator.h (diff)
The file was modifiedllvm/lib/DebugInfo/GSYM/GsymReader.cpp (diff)
The file was modifiedllvm/lib/DebugInfo/GSYM/CMakeLists.txt (diff)
The file was modifiedllvm/lib/DebugInfo/GSYM/InlineInfo.cpp (diff)
The file was addedllvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h
Commit 1bafd2be061821be3d809bdb505a239182d04a5a by llvmgnsyncbot
[gn build] Port 19602b71949
The file was modifiedllvm/utils/gn/secondary/llvm/lib/DebugInfo/GSYM/BUILD.gn (diff)
Commit a8cb0cf500ef0be4e46fafd45a327873a04a098f by alexbrachetmialot
[libc][NFC] clang-format syscall.h.in

Reviewers: sivachandra

Reviewed By: sivachandra

Subscribers: MaskRay, tschuett, libc-commits

Differential Revision: https://reviews.llvm.org/D74570
The file was modifiedlibc/config/linux/x86_64/syscall.h.inc (diff)
Commit a062a3ed7fd82c277812d80fb83dc6f05b939a84 by antiagainst
[mlir][spirv] Add ConvertGpuLaunchFuncToVulkanCallsPass

Implement a pass to convert gpu.launch_func op into a sequence of
Vulkan runtime calls. The Vulkan runtime API surface is huge so currently we
don't expose separate external functions in IR for each of them, instead we
expose a few external functions to wrapper libraries which manages
Vulkan runtime.

Differential Revision: https://reviews.llvm.org/D74549
The file was modifiedmlir/include/mlir/InitAllPasses.h (diff)
The file was addedmlir/test/Conversion/GPUToVulkan/invoke-vulkan.mlir
The file was addedmlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
The file was addedmlir/include/mlir/Conversion/GPUToVulkan/ConvertGPUToVulkanPass.h
The file was modifiedmlir/lib/Conversion/CMakeLists.txt (diff)
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt (diff)
The file was addedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
Commit efef165f82cbcbbda1e2f9be5d4b31dc867c7a34 by ted.woodward
Clean up hexagon builder after object-emission removal

Original commit:
https://reviews.llvm.org/rG7683a084de6bd2637f2351f53389df8b610566cf
The file was modifiedllvm/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll (diff)
The file was modifiedllvm/test/DebugInfo/Generic/member-pointers.ll (diff)
The file was modifiedllvm/test/DebugInfo/Generic/sugared-constants.ll (diff)