================ @@ -970,6 +971,19 @@ ModRefInfo BasicAAResult::getModRefInfo(const CallBase *Call, } ModRefInfo Result = ArgMR | OtherMR; + + // Refine writes to errno memory. We can safely exclude the errno location if + // the given memory location is an alloca, the size of the memory access is + // larger than `sizeof(int)` or if TBAA proves it does not alias errno. + if ((ErrnoMR | OtherMR) != OtherMR) { ---------------- nikic wrote:
```suggestion if ((ErrnoMR | Result) != Result) { ``` Would be more efficient, I think? https://github.com/llvm/llvm-project/pull/125258 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits