Displaying 3 results from an estimated 3 matches for "9njgqx".
2020 Jul 09
2
Understand alias-analysis results
...Pointers: (i32* %y,
> LocationSize::precise(4))
>
> It means we have two "must alias" sets, each of which contain only one
> pointer? That seems quite confusing to me..
You can add -print-all-alias-modref-info for more detailed information:
https://llvm.godbolt.org/z/9njGqx -- you'll notice "MustAlias: i32* %c,
i8* %6".
Adding `-evaluate-aa-metadata` for `load` and `store` instructions,
https://llvm.godbolt.org/z/YaW1Mb, you'll notice "MustAlias: %0 = load
i32**, i32*** %a, align 8 <-> store i32** %b, i32*** %a, align 8"
Howe...
2020 Jul 10
2
Understand alias-analysis results
...is one really confused me. I would expect to have an alias set of at
> least *two* elements (e.g., two pointers point to the same memory
> region), otherwise for the above case, $y$ is aliased to whom? I
> searched all outputs that are related to %y from
> https://llvm.godbolt.org/z/9njGqx but all I can find is "NoAlias".
> Overall, to understand why an alias set can have only one pointer looks
> quite strange to me..
This seems correct: Note that `int y` is a distinct object in memory,
not a pointer, and shares no alias sets with anything (we happen to
assign t...
2020 Jul 09
2
Understand alias-analysis results
Hey Matt,
That's awesome. Thank you very much for all the information and
clarification! Just a few follow up questions. Could you kindly shed some
lights on it? Thank you!
1. I tried to tweak the code in the following way:
- Clang [-> LLVM-IR]: https://llvm.godbolt.org/z/n9rGrs
- [LLVM-IR ->] opt: https://llvm.godbolt.org/z/Uc6h5Y
And i note that the outputs are:
Alias sets for