[LLVMdev] Some questions on the output formats of AliasSetTracker

Dan Gohman gohman at apple.com
Fri May 8 14:11:38 PDT 2009


On May 7, 2009, at 5:29 PM, hc2428 at columbia.edu wrote:

> Quoting Eli Friedman <eli.friedman at gmail.com>:
>
> Dear Eli,
>     Thanks very much for your reply. I have modified the XX and YY to
> be global variables, but the output of AliasSetTracker are still MUST
> alias:
>
> Alias Set Tracker: 5 alias sets for 4 pointer values.
>   AliasSet[0xea55d0,0] may alias, Mod/Ref
>     8 Call Sites: void ({ }*)* @llvm.dbg.func.start, void (i32, i32,
> { }*)* @llvm.dbg.stoppoint, void (i32, i32, { }*)*
> @llvm.dbg.stoppoint, void (i32, i32, { }*)* @llvm.dbg.stoppoint, void
> (i32, i32, { }*)* @llvm.dbg.stoppoint, void (i32, i32, { }*)*
> @llvm.dbg.stoppoint, void (i32, i32, { }*)* @llvm.dbg.stoppoint, void
> ({ }*)* @llvm.dbg.region.end
>   AliasSet[0xeb81e0,1] must alias, Mod/Ref   Pointers: (i32** @XX, 8)
>   AliasSet[0xea5fc0,1] must alias, Mod       Pointers: (i32** @YY, 8)
>   AliasSet[0xeab830,1] must alias, Mod/Ref   Pointers: (i32* %0, 4)
>   AliasSet[0xea5e70,1] must alias, Mod/Ref   Pointers: (i32*  
> %retval, 4)

This means that @XX and the others are each in an alias set of
their own. A "must alias" on an AliasSetTracker AliasSet indicates
that everything in the set is considered to must-alias every other
element in that set. However since the above sets have just one
element each, that indicates that there is no aliasing.

Dan




More information about the llvm-dev mailing list