control flow analysis