[PATCH] D115510: [clang][OpenMP][DebugInfo] Debug support for variables in shared clause of OpenMP task construct

Alok Kumar Sharma via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 10 04:29:01 PST 2021


alok created this revision.
alok added reviewers: aprantl, djtodoro, jdoerfert, jini.susan.george.
alok added a project: debug-info.
Herald added subscribers: guansong, yaxunl.
alok requested review of this revision.
Herald added subscribers: cfe-commits, sstefan1.
Herald added a project: clang.

Currently variables appearing inside shared clause of OpenMP task construct are not visible inside lldb debugger.
This is because compiler does not generate debug info for it.

  * thread #1, name = 'a.out', stop reason = breakpoint 1.1
      frame #0: 0x0000000000400934 a.out`.omp_task_entry. [inlined] .omp_outlined.(.global_tid.=0, .part_id.=0x000000000071f0d0, .privates.=0x000000000071f0e8, .copy_fn.=(a.out`.omp_task_privates_map. at testshared.cxx:8), .task_t.=0x000000000071f0c0, __context=0x000000000071f0f0) at testshared.cxx:10:34
     7      else {
     8    #pragma omp task shared(svar) firstprivate(n)
     9        {
  -> 10         printf("Task svar = %d\n", svar);
     11         printf("Task n = %d\n", n);
     12         svar = fib(n - 1);
     13       }
  (lldb) p svar
  error: <user expression 0>:1:1: use of undeclared identifier 'svar'
  svar
  ^
  (lldb)

After the current patch, lldb is able to show the variable

  * thread #1, name = 'a.out', stop reason = breakpoint 1.1
      frame #0: 0x0000000000400934 a.out`.omp_task_entry. [inlined] .omp_outlined.(.global_tid.=0, .part_id.=0x000000000071f0d0, .privates.=0x000000000071f0e8, .copy_fn.=(a.out`.omp_task_privates_map. at testshared.cxx:8), .task_t.=0x000000000071f0c0, __context=0x000000000071f0f0) at testshared.cxx:10:34
     7      else {
     8    #pragma omp task shared(svar) firstprivate(n)
     9        {
  -> 10         printf("Task svar = %d\n", svar);
     11         printf("Task n = %d\n", n);
     12         svar = fib(n - 1);
     13       }
  (lldb) p svar
  (int) $0 = 9
  (lldb)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D115510

Files:
  clang/lib/CodeGen/CGStmtOpenMP.cpp
  clang/lib/CodeGen/CodeGenFunction.h
  clang/test/OpenMP/debug_task_shared.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115510.393447.patch
Type: text/x-patch
Size: 6137 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211210/4460c8df/attachment.bin>


More information about the cfe-commits mailing list