The author discusses the importance of provenance in distinguishing pointers pointing to the same address in the context of compiler optimizations. They present a cautionary tale of how overlooking provenance can lead to incorrect results in optimizing compilers, using examples in LLVM. The author explores three compiler transformations that, when combined, produce conflicting outcomes, highlighting the need for a precise understanding of LLVM IR semantics. The post emphasizes that pointers have provenance, while integers do not, advocating for a more rigorous specification of LLVM IR to ensure correct optimizations. The author proposes resolving the issue by acknowledging pointer provenance but not integer provenance.
https://www.ralfj.de/blog/2020/12/14/provenance.html