================
@@ -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

Reply via email to