Displaying 3 results from an estimated 3 matches for "createexternalaawrapperpass".
2020 Jun 22
2
Restrict qualifier on class members
Unfortunately https://llvm.org/docs/LangRef.html#llvm-loop-parallel-accesses-metadata
is not a solution here. A loop-parallel access does not imply
non-aliasing. The obvious case is when only reading from a location,
but even when a location is written to I'd be careful to deduce that
they do not alias since it might be a "benign data race" or the value
never used. Additionally,
2020 Jun 22
2
Restrict qualifier on class members
...ructs. We were constrained in that we had to make
> it work with LLVM versions all the way back to shipped LLVM 6, so what we
> did was:
>
> - Add module-level metadata that tracked whether a given struct member
> field was no-alias.
> - Added our own alias analysis using createExternalAAWrapperPass to
> register it in the pass pipeline.
>
> This allowed us to have zero modifications to LLVM and do something useful
> with aliasing. The one 'issue' with it is if you have a stack-allocated
> struct that is SROA'ed you will lose the info that it was a struct, or if
&...
2020 Jun 24
2
FW: Restrict qualifier on class members
...ructs. We were constrained in that we had to make
> it work with LLVM versions all the way back to shipped LLVM 6, so what we
> did was:
>
> - Add module-level metadata that tracked whether a given struct member
> field was no-alias.
> - Added our own alias analysis using createExternalAAWrapperPass to
> register it in the pass pipeline.
>
> This allowed us to have zero modifications to LLVM and do something useful
> with aliasing. The one 'issue' with it is if you have a stack-allocated
> struct that is SROA'ed you will lose the info that it was a struct, or if
&...