search for: createexternalaawrapperpass

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 &...