Running time of a flow-sensitive vs. flow-insensitive analysis

Number of transfer/meet invocations is O(n*h) for a flow-sensitive analysis:

Number of transfer/meet invocations is again O(n*h) for a flow-insensitive analysis on the SSA program (under the assumptions stated above):

  • Let's now look at the time taken by a single call to the transfer or meet function or a meet function: In general, the complexity of a single transfer or meet function call is expected to be asymptotically smaller (by up to a factor of the size of the values being tracked). For some DFAs, this may not be true, e.g., if the size of a value is always constant-sized; but for many DFAs (e.g., constant propagation, common-subexpression elimination, range analysis, pointer analysis, etc), this yields asympotic improvements by a factor of up to O(n).