The Value Flow Graph: A Program Representation for Optimal Program Transformations