Ok, here's a potentialy stupid question: how do I choose the various flavors
of alias analysis on the command line? I followed the alias analysis design
in its use of AnalysisGroup when I did the register coalescing refactoring and
alternative implentations. But I can't figure out how to actually invoke
the
different versions. There's no cl_opt for the various alias analysis
flavors
so I just assumed it was all built in to AnalysisGroup. Not so, apparently.
So how do I get opt to use Andersens instead of basicaa, for example?
-Dave
On Aug 9, 2007, at 1:52 PM, David Greene wrote:> So how do I get opt to use Andersens instead of basicaa, for example?Following uses basic alias analysis $ opt -licm foo.bc -disable-output -debug-pass=Structure where as $ opt -anders-aa -licm foo.bc -disable-output -debug-pass=Structure uses Andersens analysis algorithm implementation. - Devang
On Thursday 09 August 2007 15:56, Devang Patel wrote:> On Aug 9, 2007, at 1:52 PM, David Greene wrote: > > So how do I get opt to use Andersens instead of basicaa, for example? > > Following uses basic alias analysis > > $ opt -licm foo.bc -disable-output -debug-pass=Structure > > where as > > $ opt -anders-aa -licm foo.bc -disable-output -debug-pass=Structure > > uses Andersens analysis algorithm implementation.Heh. opt was a particularly bad choice for an example on my part. It has special code to provide options for all of the optimizations: // The OptimizationList is automatically populated with registered Passes by // the PassNameParser. // static cl::list<const PassInfo*, bool, PassNameParser> PassList(cl::desc("Optimizations available:")); A better question to ask is, how do I do this with llvm-gcc? My perusal of the code doesn't turn up any obvious places for options for alias analysis are registered. -Dave