> I'm studying the program flow analysis and compiler optimization.> What's the purpose of program flow analysis? The answer I can come> is "to synthesize invariants". Is this claim true? Can we say the> more invariants we can find, the more optimization opportunities we> can explore?

No-one else seems to have answered this one.

I think that program flow analysis is used to provide a basis for
further analyses to be done, including loop-invariant code motion.