llvm-project
c3628c7f - Reapply [AA] No synchronization effects for never-escaping identified local (#196923)

Commit
65 days ago
Reapply [AA] No synchronization effects for never-escaping identified local (#196923) Relative to the previous attempt, this makes sure that the location does not alias with the pointer operand first. If it aliases, then we need to consider the direct ModRef effects of the instruction, not just the synchronization effects. ----- Fences and other synchronizing operations (such as atomic accesses stronger than monotonic) are modelled as reading and writing all memory, in order to enforce their implied ordering constraints. Currently, this happens even for identified function locals that do not escape. This patch excludes those objects. Notably, we can not reason based on captures-before here, because the synchronizing operation still has an effect even if the object only escapes later. The hope here is that with this restriction in place, it may be viable to respect potential synchronization inside non-nosync function calls.
Author
Parents
Loading