[all-commits] [llvm/llvm-project] 175c33: [OpenMP] Remove copy constructor of `RTLInfoTy`

Shilei Tian via All-commits all-commits at lists.llvm.org
Sat Jan 9 10:01:18 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 175c336a1c5a7d4cf2e24ec5188c370cd6093ddb
      https://github.com/llvm/llvm-project/commit/175c336a1c5a7d4cf2e24ec5188c370cd6093ddb
  Author: Shilei Tian <tianshilei1992 at gmail.com>
  Date:   2021-01-09 (Sat, 09 Jan 2021)

  Changed paths:
    M openmp/libomptarget/src/rtl.cpp
    M openmp/libomptarget/src/rtl.h

  Log Message:
  -----------
  [OpenMP] Remove copy constructor of `RTLInfoTy`

Multiple `RTLInfoTy` objects are stored in a list `AllRTLs`. Since
`RTLInfoTy` contains a `std::mutex`, it is by default not a copyable object.
In order to support `AllRTLs.push_back(...)` which is currently used, a customized
copy constructor is provided. Every time we need to add a new data member into
`RTLInfoTy`, we should keep in mind not forgetting to add corresponding assignment
in the copy constructor. In fact, the only use of the copy constructor is to push
the object into the list, we can of course write it in a way that first emplace
a new object back, and then use the reference to the last element. In this way we
don't need the copy constructor anymore. If the element is invalid, we just need
to pop it, and that's what this patch does.

Reviewed By: JonChesterfield

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




More information about the All-commits mailing list