[all-commits] [llvm/llvm-project] e448ad: [LLDB] Add support to resize SVE registers at run-...

Muhammad Omair Javaid via All-commits all-commits at lists.llvm.org
Tue Jan 19 02:02:15 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e448ad787e16119f8db8cc6999896e678a0356ac
      https://github.com/llvm/llvm-project/commit/e448ad787e16119f8db8cc6999896e678a0356ac
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-01-19 (Tue, 19 Jan 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
    M lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

  Log Message:
  -----------
  [LLDB] Add support to resize SVE registers at run-time

This patch builds on previously submitted SVE patches regarding expedited
register set and per thread register infos. (D82853 D82855 and D82857)

We need to resize SVE register based on value received in expedited list.
Also we need to resize SVE registers when we write vg register using
register write vg command. The resize will result in a updated offset
for all of fpr and sve register set. This offset will be configured
in native register context by RegisterInfoInterface and will also be
be updated on client side in GDBRemoteRegisterContext.

A follow up patch will provide a API test to verify this change.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D82863


  Commit: 4d3081331ad854e0bff5032c818ec6414fb974c0
      https://github.com/llvm/llvm-project/commit/4d3081331ad854e0bff5032c818ec6414fb974c0
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-01-19 (Tue, 19 Jan 2021)

  Changed paths:
    A lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/Makefile
    A lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
    A lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c

  Log Message:
  -----------
  [LLDB] Test SVE dynamic resize with multiple threads

This patch adds a new test case which depends on AArch64 SVE support and
dynamic resize capability enabled. It created two seperate threads which
have different values of sve registers and SVE vector granule at various
points during execution.

We test that LLDB is doing the size and offset updates properly for all
of the threads including the main thread and when we VG is updated using
prctl call or by 'register write vg' command the appropriate changes are
also update in register infos.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D82866


Compare: https://github.com/llvm/llvm-project/compare/079e66466177...4d3081331ad8


More information about the All-commits mailing list