[OpenMP] Remove copy constructor of `RTLInfoTy`
authorShilei Tian <tianshilei1992@gmail.com>
Sat, 9 Jan 2021 18:00:50 +0000 (13:00 -0500)
committerShilei Tian <tianshilei1992@gmail.com>
Sat, 9 Jan 2021 18:01:01 +0000 (13:01 -0500)
commit175c336a1c5a7d4cf2e24ec5188c370cd6093ddb
treecc01be87aa5f0e021731f0b896e09a8ed51225a9
parente98b441a09fac0a8419fee15afc725758390ca2a
[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
openmp/libomptarget/src/rtl.cpp
openmp/libomptarget/src/rtl.h