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" Regards, Ryan