diff options
author | hexcoder- <heiko@hexco.de> | 2021-04-17 22:32:33 +0200 |
---|---|---|
committer | hexcoder- <heiko@hexco.de> | 2021-04-17 22:32:33 +0200 |
commit | ec49c7fbf5b5dd2259ebfd4a92f6aad5b333c328 (patch) | |
tree | 5664d9d273bdb02e8d6865cf8b50600df4373365 /instrumentation/SanitizerCoveragePCGUARD.so.cc | |
parent | 00e54565ef109a6c697db77b19d1618e37092125 (diff) | |
download | AFLplusplus-ec49c7fbf5b5dd2259ebfd4a92f6aad5b333c328.tar.gz |
Change other LLVM modes to atomic increments
Diffstat (limited to 'instrumentation/SanitizerCoveragePCGUARD.so.cc')
-rw-r--r-- | instrumentation/SanitizerCoveragePCGUARD.so.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/instrumentation/SanitizerCoveragePCGUARD.so.cc b/instrumentation/SanitizerCoveragePCGUARD.so.cc index 09cda9e2..dd2e1459 100644 --- a/instrumentation/SanitizerCoveragePCGUARD.so.cc +++ b/instrumentation/SanitizerCoveragePCGUARD.so.cc @@ -1080,6 +1080,12 @@ void ModuleSanitizerCoverage::InjectCoverageAtBlock(Function &F, BasicBlock &BB, /* Load counter for CurLoc */ Value * MapPtrIdx = IRB.CreateGEP(MapPtr, CurLoc); + +#if 1 /* Atomic */ + IRB.CreateAtomicRMW(llvm::AtomicRMWInst::BinOp::Add, MapPtrIdx, One, + llvm::AtomicOrdering::Monotonic); + +#else LoadInst *Counter = IRB.CreateLoad(MapPtrIdx); /* Update bitmap */ @@ -1095,7 +1101,7 @@ void ModuleSanitizerCoverage::InjectCoverageAtBlock(Function &F, BasicBlock &BB, } IRB.CreateStore(Incr, MapPtrIdx); - +#endif // done :) // IRB.CreateCall(SanCovTracePCGuard, Offset)->setCannotMerge(); |