diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2022-07-14 16:58:07 +0200 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2022-07-14 17:49:00 +0200 |
commit | ab02680b5aee81fbcf564e30891e8e2089d513e1 (patch) | |
tree | 0cfb77c6ae865d98d46d773d34a0589f1f446ce5 /llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | |
parent | 58fec78231dc29bd503ba91d06471c94851d21a0 (diff) | |
download | llvm-ab02680b5aee81fbcf564e30891e8e2089d513e1.zip llvm-ab02680b5aee81fbcf564e30891e8e2089d513e1.tar.gz llvm-ab02680b5aee81fbcf564e30891e8e2089d513e1.tar.bz2 |
tsan: fix a bug in trace part switching
Callers of TraceSwitchPart expect that TraceAcquire will always succeed
after the call. It's possible that TryTraceFunc/TraceMutexLock in TraceSwitchPart
that restore the current stack/mutexset filled the trace part exactly up
to the TracePart::kAlignment gap and the next TraceAcquire won't succeed.
Skip the alignment gap after writing initial stack/mutexset to avoid that.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D129777
Diffstat (limited to 'llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp')
0 files changed, 0 insertions, 0 deletions