SCEV Alias Analysis

Dear LLVMers,

I am looking into the passes that clang uses by default (using only the flags -O0, -O1, -O2, -O3) and I noticed that the pass scev-aa (ScalarEvolution-based Alias Analysis) is not being used in any of those options.The pass scev, however, is executed with the optimization levels -O1, -O2, and -O3.

Does anybody know the reason why scev-aa is not included? Does it make the compilation too slow? Is the pass buggy?

Thanks in advance,

Raphael Ernani Rodrigues
PhD student, University of Alberta

From: "Raphael Ernani Rodrigues" <raphael@dcc.ufmg.br>
To: "LLVM Developers Mailing List" <llvmdev@cs.uiuc.edu>
Sent: Thursday, April 30, 2015 7:45:09 AM
Subject: [LLVMdev] SCEV Alias Analysis

Dear LLVMers,

I am looking into the passes that clang uses by default (using only
the flags -O0, -O1, -O2, -O3) and I noticed that the pass scev-aa
(ScalarEvolution-based Alias Analysis) is not being used in any of
those options.The pass scev, however, is executed with the
optimization levels -O1, -O2, and -O3.

Does anybody know the reason why scev-aa is not included? Does it
make the compilation too slow? Is the pass buggy?

Because of current pass manager limitations, it is not possible to preserve the pass when SCEV is invalidated. I don't believe it has known bugs, but it might be slow (it does no caching, as I recall, so I suspect some performance work is in order). The pass manager is being rewritten, and once the new framework is in place, using scev-aa might be practical.

-Hal