[llvm-dev] recursive alias analysis allowed ?

Finkel, Hal J. via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 9 09:39:52 PDT 2018


Hi, Jeroen,

Can you please explain in more detail what you're trying to do?
Obviously, disjoint storage locations can hold the same pointer value.
Where does the metadata enter the picture?

Thanks again,

Hal


On 10/09/2018 11:30 AM, Jeroen Dobbelaere wrote:
> Hi Hal et al,
>
> I am extending the ScopedNoAliasAA pass with some deeper analysis. The goal is to add restrict member pointer support.
>
> For that I'll need to do an extra alias-analysis request from within the ScopedNoAliasAA pass:
>
> for example:
>   %v1 = load i32*, i32** %p1
>   %result1= load i32, i32* %v1
>   %v2 = load i32*, i32** %p2
>   %result2= load i32, i32* %v2  
>
> in order to proof that %v1 and %v2 are not aliasing, I need to proof that their storages %p1 and %p2 are not aliasing.
>
> - (1) This means that we will get recursive (possibly multiple levels) alias analysis calls.
> - (2) I'll also need access to the main AliasAnalysis inside the ScopedNoAliasAA.
>
> Do you think (1) will be safe to do ?
>
> For (2), is the right location to do this, everywhere the DominatorTree is set ? (setDT(), ScopedNoAliasAAResult constructor, ...)
>
> Thanks,
>
> Jeroen Dobbelaere
>

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list