[LLVMdev] A question about pointer aliasing rules in LLVM
kparzysz at codeaurora.org
Thu Oct 25 17:32:47 PDT 2012
On 10/25/2012 5:36 PM, Dan Gohman wrote:
> First, yes, it is wrong for AliasAnalysis implementations to trust LLVM
> IR types, for the most part. There's nothing in LLVM IR which would
> prevent you from having two myStruct instances which overlap here,
> sharing 4 bytes. Because of that, next really could be equal to &prev.
> In theory, you could help this situation by using TBAA; you could give
> next and prev fields different TBAA tags to say that a store to a next
> field never stores to a prev field.
In practice this is impossible to guarantee. The only safe way of
disambiguating the two objects is to prove that the pointers are different.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev