diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-08-18 09:24:23 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-08-18 09:24:23 +0000 |
commit | 62a07ee96d51c29bab9668d8c41bf5f8bdf9e23d (patch) | |
tree | a44ae71bef9021e42a91da1787e7e83e75d18cad /cparser/Parse.ml | |
parent | 84cb73abe0f777521ee67cec2405c9593420d3da (diff) |
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
Diffstat (limited to 'cparser/Parse.ml')
-rw-r--r-- | cparser/Parse.ml | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/cparser/Parse.ml b/cparser/Parse.ml index abef83c..dcd01e9 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" | _ -> ()) |