Definition vanalyze (cu: program) (f: function) :=
  ValueAnalysis.analyze (romem_for cu) f.

Lemma transf_volatile_store: forall v1 v2 v1' v2' m tm chunk sp nm t v m', volatile_store_sem chunk ge (v1::v2::nil) m t v m' -> Val.lessdef v1 v1' -> vagree v2 v2' (store_argument chunk) -> magree m tm (nlive ge sp nm) -> v = Vundef /\ exists tm', volatile_store_sem chunk ge (v1'::v2'::nil) tm t Vundef tm' /\ magree m' tm' (nlive ge sp nm).