Tweak code into an equivalent form for which icc

doesn't warn about unreachable instructions.  Patch
by Erick Tryzelaar (#111).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81110 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands
2009-09-06 10:53:22 +00:00
parent 12fd767ed8
commit 740eb5323e
4 changed files with 33 additions and 33 deletions

View File

@ -93,32 +93,36 @@ namespace llvm
MutexImpl(rec), acquired(0), recursive(rec) { }
bool acquire() {
if (!mt_only || llvm_is_multithreaded())
if (!mt_only || llvm_is_multithreaded()) {
return MutexImpl::acquire();
// Single-threaded debugging code. This would be racy in multithreaded
// mode, but provides not sanity checks in single threaded mode.
assert((recursive || acquired == 0) && "Lock already acquired!!");
++acquired;
return true;
} else {
// Single-threaded debugging code. This would be racy in
// multithreaded mode, but provides not sanity checks in single
// threaded mode.
assert((recursive || acquired == 0) && "Lock already acquired!!");
++acquired;
return true;
}
}
bool release() {
if (!mt_only || llvm_is_multithreaded())
if (!mt_only || llvm_is_multithreaded()) {
return MutexImpl::release();
// Single-threaded debugging code. This would be racy in multithreaded
// mode, but provides not sanity checks in single threaded mode.
assert(((recursive && acquired) || (acquired == 1)) &&
"Lock not acquired before release!");
--acquired;
return true;
} else {
// Single-threaded debugging code. This would be racy in
// multithreaded mode, but provides not sanity checks in single
// threaded mode.
assert(((recursive && acquired) || (acquired == 1)) &&
"Lock not acquired before release!");
--acquired;
return true;
}
}
bool tryacquire() {
if (!mt_only || llvm_is_multithreaded())
return MutexImpl::tryacquire();
return true;
else return true;
}
private: