From 62a07ee96d51c29bab9668d8c41bf5f8bdf9e23d Mon Sep 17 00:00:00 2001 From: xleroy Date: Thu, 18 Aug 2011 09:24:23 +0000 Subject: SimplVolatile: new pass to eliminate read-modify-write ops over volatiles Elsewhere: refactoring, moving common code into Cutil and Transform (to be continued) git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1716 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cparser/Parse.ml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'cparser/Parse.ml') diff --git a/cparser/Parse.ml b/cparser/Parse.ml index abef83cf..dcd01e93 100644 --- a/cparser/Parse.ml +++ b/cparser/Parse.ml @@ -21,13 +21,14 @@ let transform_program t p = let run_pass pass flag p = if CharSet.mem flag t then pass p else p in Rename.program (run_pass (AddCasts.program ~all:(CharSet.mem 'C' t)) 'c' - (run_pass (SimplExpr.program ~volatile:(CharSet.mem 'v' t)) 'e' + (run_pass (SimplExpr.program ~volatile:(CharSet.mem 'V' t)) 'e' + (run_pass SimplVolatile.program 'v' (run_pass StructAssign.program 'S' (run_pass StructByValue.program 's' (run_pass PackedStructs.program 'p' (run_pass Bitfields.program 'f' (run_pass Unblock.program 'b' - p))))))) + p)))))))) let parse_transformations s = let t = ref CharSet.empty in @@ -39,7 +40,8 @@ let parse_transformations s = | 'C' -> set "ecC" | 's' -> set "s" | 'S' -> set "bsS" - | 'v' -> set "ev" + | 'v' -> set "v" + | 'V' -> set "eV" | 'f' -> set "bf" | 'p' -> set "bp" | _ -> ()) -- cgit