[all-commits] [llvm/llvm-project] 1e8dad: [MLIR][LLVM] Support Recursive DITypes (#80251)

Fangrui Song via All-commits all-commits at lists.llvm.org
Fri Mar 15 10:48:26 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/driver-dont-alias-mstrict-align-to-mno-unaligned-access
  Home:   https://github.com/llvm/llvm-project
  Commit: 1e8dad3bef64ada8b293e6c538b1f41ad9727cc0
      https://github.com/llvm/llvm-project/commit/1e8dad3bef64ada8b293e6c538b1f41ad9727cc0
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M mlir/include/mlir-c/Dialect/LLVM.h
    M mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrs.h
    M mlir/include/mlir/Dialect/LLVMIR/LLVMInterfaces.td
    M mlir/lib/CAPI/Dialect/LLVM.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.h
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.h
    M mlir/test/CAPI/llvm.c
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    M mlir/test/Target/LLVMIR/Import/import-failure.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Support Recursive DITypes (#80251)

Following the discussion from [this
thread](https://discourse.llvm.org/t/handling-cyclic-dependencies-in-debug-info/67526/11),
this PR adds support for recursive DITypes.

This PR adds:
1. DIRecursiveTypeAttrInterface: An interface that DITypeAttrs can
implement to indicate that it supports recursion. See full description
in code.
2. Importer & exporter support (The only DITypeAttr that implements the
interface is DICompositeTypeAttr, so the exporter is only implemented
for composites too. There will be two methods that each llvm DI type
that supports mutation needs to implement since there's nothing
general).

---------

Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>


  Commit: ba2e3bd39678bdadabe8b606007d335e1cb4d213
      https://github.com/llvm/llvm-project/commit/ba2e3bd39678bdadabe8b606007d335e1cb4d213
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn

  Log Message:
  -----------
  [gn build] Port f01a32f5c58b


  Commit: bb9ca8afc0bd5a1abb8ef3d0f5c8e4928c2f7f60
      https://github.com/llvm/llvm-project/commit/bb9ca8afc0bd5a1abb8ef3d0f5c8e4928c2f7f60
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h

  Log Message:
  -----------
  [Hexagon][TTI] Remove two overrides which simply proxy to base class [NFC]

These serve no point, and slightly complicate a refectoring I'm working
on for this API.


  Commit: 2210c85a664463cdc11e3b7990c9663c739e6060
      https://github.com/llvm/llvm-project/commit/2210c85a664463cdc11e3b7990c9663c739e6060
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  Reapply [libomptarget] Support BE ELF files in plugins-nextgen (#85246)

Code in plugins-nextgen reading ELF files is currently hard-coded to
assume a 64-bit little-endian ELF format. Unfortunately, this assumption
is even embedded in the interface between GlobalHandler and Utils/ELF
routines, which use ELF64LE types.

To fix this, I've refactored the interface to use generic types, in
particular by using (a unique_ptr to) ObjectFile instead of
ELF64LEObjectFile, and ELFSymbolRef instead of ELF64LE::Sym.

This allows properly templating over multiple ELF format variants inside
Utils/ELF; specifically, this patch adds support for 64-bit big-endian
ELF files in addition to 64-bit little-endian files.


  Commit: b43965adacfafc4dc6b5ec17b4bea839372b7626
      https://github.com/llvm/llvm-project/commit/b43965adacfafc4dc6b5ec17b4bea839372b7626
  Author: Michael Flanders <mkf727 at cs.washington.edu>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/stdc.td
    M libc/src/__support/UInt.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    M libc/src/math/CMakeLists.txt
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/nanf128.cpp
    A libc/src/math/nanf128.h
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/nanf128_test.cpp

  Log Message:
  -----------
  [libc][math][c23] adds `nanf128` (#85201)

Continuing #84689, this one required more changes than the others, so I
am making it a separate PR.

Extends some stuff in `str_to_float.h`, `str_to_integer.h` to work on
types wider than `unsigned long long` and `uint64_t`.

cc @lntue for review.


  Commit: 0360f3218a13666123849f6699216bdbebe64833
      https://github.com/llvm/llvm-project/commit/0360f3218a13666123849f6699216bdbebe64833
  Author: Charlie Barto <chbarto at microsoft.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_host.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/double_free.cpp
    R compiler-rt/test/asan/TestCases/Windows/interface_symbols_windows.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/symbols_path.cpp
    M compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cpp
    M compiler-rt/test/asan/TestCases/calloc-overflow.cpp
    M compiler-rt/test/asan/TestCases/deep_stack_uaf.cpp
    M compiler-rt/test/asan/TestCases/double-free.cpp
    M compiler-rt/test/asan/TestCases/malloc-size-too-big.cpp
    M compiler-rt/test/asan/TestCases/strncpy-overflow.cpp
    M compiler-rt/test/asan/TestCases/use-after-free-right.cpp
    M compiler-rt/test/asan/TestCases/use-after-free.cpp

  Log Message:
  -----------
  [asan][windows] Make tests more flexable (#85274)

Contains test changes from
https://github.com/llvm/llvm-project/pull/81677 that are simple test
changes. For the most part just makes the tests allow more flexibility
in the callstacks produced by asan.

Note: this PR has the exact changes from
https://github.com/llvm/llvm-project/pull/81677 in addition to a revert
commit to remove the ones that require other things from that PR. This
will be squashed, ofc. I just left things unsquashed for reviewing
pleasure :).

This is a non-functional-change


  Commit: b8db3e7c7dddaa14c314a05b92c9fa3df38734e4
      https://github.com/llvm/llvm-project/commit/b8db3e7c7dddaa14c314a05b92c9fa3df38734e4
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/test/Preprocessor/riscv-target-features.c

  Log Message:
  -----------
  [RISCV,test] Change two -munaligned-access to GCC-supported -mno-strict-align


  Commit: a3d4ddb6b2073dfa26a860c4ea0a6bd87ae55c78
      https://github.com/llvm/llvm-project/commit/a3d4ddb6b2073dfa26a860c4ea0a6bd87ae55c78
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M clang/test/Preprocessor/riscv-target-features.c
    M compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_host.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/double_free.cpp
    R compiler-rt/test/asan/TestCases/Windows/interface_symbols_windows.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cpp
    M compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cpp
    M compiler-rt/test/asan/TestCases/Windows/symbols_path.cpp
    M compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cpp
    M compiler-rt/test/asan/TestCases/calloc-overflow.cpp
    M compiler-rt/test/asan/TestCases/deep_stack_uaf.cpp
    M compiler-rt/test/asan/TestCases/double-free.cpp
    M compiler-rt/test/asan/TestCases/malloc-size-too-big.cpp
    M compiler-rt/test/asan/TestCases/strncpy-overflow.cpp
    M compiler-rt/test/asan/TestCases/use-after-free-right.cpp
    M compiler-rt/test/asan/TestCases/use-after-free.cpp
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/stdc.td
    M libc/src/__support/UInt.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    M libc/src/math/CMakeLists.txt
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/nanf128.cpp
    A libc/src/math/nanf128.h
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/nanf128_test.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
    M mlir/include/mlir-c/Dialect/LLVM.h
    M mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrs.h
    M mlir/include/mlir/Dialect/LLVMIR/LLVMInterfaces.td
    M mlir/lib/CAPI/Dialect/LLVM.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.h
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.h
    M mlir/test/CAPI/llvm.c
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    M mlir/test/Target/LLVMIR/Import/import-failure.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  rebase

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/fe7eb311a12b...a3d4ddb6b207

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list