[LLVMdev] weird analysis group behavior

Ryan M. Lefever lefever at crhc.uiuc.edu
Sat Dec 2 14:52:44 PST 2006

I have several passes and an analysis group Z.  Below I've listed the 
passes and they're important properties

			Transitively			Implements
Pass	Requires	Requires	Preserves	Z
----	--------	------------	---------	----------
A	-		-		all		no
B	-		A		all		no
C	-		A, B		all		no
D	-		-		all		yes
E	-		-		all		yes
F	Z		B, C		all		no
G	B, F		-		none		no

In addition, D is the default implementation of Z.  If I want to run the 
whole chain, using the default implementation of Z, then I just call 
"opt -G"  The -G option causes A, B, C, D (the default implementation of 
Z), and F to be run because of the dependencies.  I would like to be 
able to specify with the -G option, a specific implementation of Z that 
I want run.  So, I tried calling "opt -E -G" While it does cause E to 
get run, D also gets run and D is the implementation of Z that F uses. 
However, if I call "opt -A -E -G" or "opt -B -E -G" or "opt -C -E -G" 
then E will get run and F will use the E implementation of Z.  Can 
someone explain why I'm getting this behavior and why I can't simply 
call "opt -E -G"


More information about the llvm-dev mailing list