SmallString<32> AtomicLoadName("cds_atomic_load" + BitSizeStr);
SmallString<32> AtomicStoreName("cds_atomic_store" + BitSizeStr);
-// CDSLoad[i] = M.getOrInsertFunction(LoadName, Ty, PtrTy);
-// CDSStore[i] = M.getOrInsertFunction(StoreName, VoidTy, PtrTy, Ty);
CDSLoad[i] = M.getOrInsertFunction(LoadName, VoidTy, PtrTy);
CDSStore[i] = M.getOrInsertFunction(StoreName, VoidTy, PtrTy);
CDSAtomicLoad[i] = M.getOrInsertFunction(AtomicLoadName, Ty, PtrTy, OrdTy);
bool Res = false;
const DataLayout &DL = F.getParent()->getDataLayout();
- errs() << "Before\n";
- F.dump();
+// errs() << "Before\n";
+// F.dump();
for (auto &B : F) {
for (auto &I : B) {
}
for (auto Inst : AllLoadsAndStores) {
-// Res |= instrumentLoadOrStore(Inst, DL);
-// errs() << "load and store are not replaced\n";
+ Res |= instrumentLoadOrStore(Inst, DL);
+// errs() << "load and store are replaced\n";
}
for (auto Inst : AtomicAccesses) {
Res |= instrumentAtomic(Inst);
}
-
- if (Res) {
- errs() << F.getName();
- errs() << " has above instructions replaced\n";
- }
}
// errs() << "After\n";
// F.dump();