Memory Dependence Analysis

Hi,

I have been trying to run the memdep analysis using opt with the following command: opt -analyze -memdep <*.bc>.
However, I keep getting the following error: Pass::print not implemented for pass: ‘Memory Dependence Analysis’ ! .
I get similar errors for a lot of the analyses passes, which seem as if they should have a print out?

Is there any other memory dependence analysis which gives me a memory dependence graph or something similar via a static analysis, with must or maybe memory dependencies?

Thanks
Nipun

Hi Nipon,

you may try Polly[1]. It inclused a pretty sophisticated memory dependency analysis for parts of the program, where the control flow is statically known. We currently support must_dependences and can eliminate transitive dependences. There is also support for may_dependences, but it is not yet hooked up to the rest.

If you are interested, an example how to use Polly (and its dependency analysis) is shown at the bottom of this wiki page[1]. If you need further help let me know.

Cheers
Tobi

[1] http://wiki.llvm.org/Polly

Hi Tobi,

Thanks for the response, could you point me to the source files of the memory dependence pass?

Thanks
Nipun

Hi Tobi,

Thanks for the response, could you point me to the source files of the memory dependence pass that you mentioned?

Thanks
Nipun

It is part of the Polly source code. Polly is not yet part of the main LLVM repository, but is available in its own git repository. You can find details how to install Polly on the Polly wiki page[1]. If you need any help let me know.

After you checked out Polly, it is available in lib/Dependences.cpp

Cheers
Tobi

[1] http://wiki.llvm.org/Polly