aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorVignesh Balasubramanian <Vignesh.Balasubrmanian@amd.com>2021-09-01 13:43:13 +0530
committerVignesh Balasubramanian <Vignesh.Balasubrmanian@amd.com>2021-09-01 14:50:16 +0530
commitb9a27908f9b3d90ef306dfb9296316943c203726 (patch)
tree7204fabbb7b3eec5485328a01a7ed5028dabd29a /clang/lib/Frontend/CompilerInvocation.cpp
parentfb321c2ea274c1bd1e1b294f2c090f1c0d9a97fe (diff)
downloadllvm-b9a27908f9b3d90ef306dfb9296316943c203726.zip
llvm-b9a27908f9b3d90ef306dfb9296316943c203726.tar.gz
llvm-b9a27908f9b3d90ef306dfb9296316943c203726.tar.bz2
[OpenMP][OMPD] Implementation of OMPD debugging library - libompd.
This is a continuation of the review: https://reviews.llvm.org/D100181 Creates a new directory "libompd" under openmp. "TargetValue" provides operational access to the OpenMP runtime memory for OMPD APIs. With TargetValue, using "pointer" a user can do multiple operations from casting, dereferencing to accessing an element for structure. The member functions are designed to concatenate the operations that are needed to access values from structures. e.g., _a[6]->_b._c would read like : TValue(ctx, "_a").cast("A",2) .getArrayElement(6).access("_b").cast("B").access("_c") For example: If you have a pointer "ThreadHandle" of a running program then you can access/retrieve "threadID" from the memory using TargetValue as below. TValue(context, thread_handle->th) /*__kmp_threads[t]->th*/ .cast("kmp_base_info_t") .access("th_info") /*__kmp_threads[t]->th.th_info*/ .cast("kmp_desc_t") .access("ds") /*__kmp_threads[t]->th.th_info.ds*/ .cast("kmp_desc_base_t") .access("ds_thread") /*__kmp_threads[t]->th.th_info.ds.ds_thread*/ .cast("kmp_thread_t") .getRawValue(thread_id, 1); Reviewed By: @hbae Differential Revision: https://reviews.llvm.org/D100182
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions