Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a rewrite rule to collapse constant casts #494

Merged
merged 2 commits into from
Jan 16, 2019

Commits on Jan 15, 2019

  1. Add a rewrite rule to collapse constant casts

    If, e.g., we know from bounds analysis that the result of an operation
    fits in the range r[0~>0], we now just replace it with the literal
    constant.
    
    Fixes mit-plv#493
    
    After     | File Name                                    | Before    || Change    | % Change
    --------------------------------------------------------------------------------------------
    21m22.14s | Total                                        | 21m22.79s || -0m00.65s | -0.05%
    --------------------------------------------------------------------------------------------
    4m09.97s  | PushButtonSynthesis.vo                       | 4m10.56s  || -0m00.59s | -0.23%
    3m09.12s  | p384_32.c                                    | 3m08.91s  || +0m00.21s | +0.11%
    2m05.94s  | Rewriter.vo                                  | 2m06.30s  || -0m00.35s | -0.28%
    1m56.58s  | RewriterWf2.vo                               | 1m56.09s  || +0m00.48s | +0.42%
    1m52.39s  | RewriterRulesGood.vo                         | 1m52.04s  || +0m00.35s | +0.31%
    1m46.01s  | RewriterRulesInterpGood.vo                   | 1m45.79s  || +0m00.21s | +0.20%
    0m46.44s  | RewriterInterpProofs1.vo                     | 0m46.47s  || -0m00.03s | -0.06%
    0m44.96s  | ExtractionHaskell/word_by_word_montgomery    | 0m45.59s  || -0m00.63s | -1.38%
    0m39.18s  | p521_32.c                                    | 0m39.33s  || -0m00.14s | -0.38%
    0m32.41s  | p521_64.c                                    | 0m32.54s  || -0m00.13s | -0.39%
    0m30.87s  | ExtractionHaskell/unsaturated_solinas        | 0m30.67s  || +0m00.19s | +0.65%
    0m24.32s  | ExtractionHaskell/saturated_solinas          | 0m24.44s  || -0m00.12s | -0.49%
    0m23.59s  | RewriterWf1.vo                               | 0m24.10s  || -0m00.51s | -2.11%
    0m17.01s  | ExtractionOCaml/word_by_word_montgomery      | 0m17.14s  || -0m00.12s | -0.75%
    0m13.48s  | secp256k1_32.c                               | 0m13.30s  || +0m00.17s | +1.35%
    0m13.11s  | p256_32.c                                    | 0m13.37s  || -0m00.25s | -1.94%
    0m11.34s  | p484_64.c                                    | 0m11.34s  || +0m00.00s | +0.00%
    0m10.78s  | ExtractionOCaml/unsaturated_solinas          | 0m10.79s  || -0m00.00s | -0.09%
    0m10.27s  | ExtractionOCaml/word_by_word_montgomery.ml   | 0m10.06s  || +0m00.20s | +2.08%
    0m08.11s  | ExtractionOCaml/saturated_solinas            | 0m07.92s  || +0m00.18s | +2.39%
    0m06.92s  | ExtractionOCaml/unsaturated_solinas.ml       | 0m07.02s  || -0m00.09s | -1.42%
    0m06.18s  | ExtractionHaskell/word_by_word_montgomery.hs | 0m06.28s  || -0m00.10s | -1.59%
    0m06.13s  | BoundsPipeline.vo                            | 0m05.98s  || +0m00.14s | +2.50%
    0m05.90s  | p224_32.c                                    | 0m05.92s  || -0m00.01s | -0.33%
    0m05.29s  | p384_64.c                                    | 0m05.33s  || -0m00.04s | -0.75%
    0m05.17s  | ExtractionOCaml/saturated_solinas.ml         | 0m05.20s  || -0m00.03s | -0.57%
    0m04.91s  | ExtractionHaskell/unsaturated_solinas.hs     | 0m04.93s  || -0m00.01s | -0.40%
    0m04.06s  | ExtractionHaskell/saturated_solinas.hs       | 0m04.00s  || +0m00.05s | +1.49%
    0m02.21s  | curve25519_32.c                              | 0m02.22s  || -0m00.01s | -0.45%
    0m01.52s  | curve25519_64.c                              | 0m01.50s  || +0m00.02s | +1.33%
    0m01.38s  | CLI.vo                                       | 0m01.42s  || -0m00.04s | -2.81%
    0m01.14s  | RewriterProofs.vo                            | 0m01.13s  || +0m00.01s | +0.88%
    0m01.14s  | StandaloneOCamlMain.vo                       | 0m00.96s  || +0m00.17s | +18.74%
    0m01.12s  | StandaloneHaskellMain.vo                     | 0m01.03s  || +0m00.09s | +8.73%
    0m01.12s  | secp256k1_64.c                               | 0m01.00s  || +0m00.12s | +12.00%
    0m01.05s  | p256_64.c                                    | 0m00.98s  || +0m00.07s | +7.14%
    0m01.03s  | p224_64.c                                    | 0m01.15s  || -0m00.11s | -10.43%
    JasonGross committed Jan 15, 2019
    Configuration menu
    Copy the full SHA
    cadf213 View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2019

  1. Constant-propogate 0+x and x+0 after bounds

    After     | File Name                                    | Before    || Change    | % Change
    --------------------------------------------------------------------------------------------
    21m22.67s | Total                                        | 21m28.24s || -0m05.56s | -0.43%
    --------------------------------------------------------------------------------------------
    4m09.95s  | PushButtonSynthesis.vo                       | 4m14.76s  || -0m04.81s | -1.88%
    3m07.95s  | p384_32.c                                    | 3m11.17s  || -0m03.21s | -1.68%
    2m06.43s  | Rewriter.vo                                  | 2m06.15s  || +0m00.28s | +0.22%
    1m55.83s  | RewriterWf2.vo                               | 1m56.15s  || -0m00.32s | -0.27%
    1m52.36s  | RewriterRulesGood.vo                         | 1m52.34s  || +0m00.01s | +0.01%
    1m46.52s  | RewriterRulesInterpGood.vo                   | 1m45.70s  || +0m00.82s | +0.77%
    0m46.56s  | RewriterInterpProofs1.vo                     | 0m46.72s  || -0m00.15s | -0.34%
    0m45.04s  | ExtractionHaskell/word_by_word_montgomery    | 0m45.33s  || -0m00.28s | -0.63%
    0m39.17s  | p521_32.c                                    | 0m39.07s  || +0m00.10s | +0.25%
    0m32.40s  | p521_64.c                                    | 0m32.64s  || -0m00.24s | -0.73%
    0m31.13s  | ExtractionHaskell/unsaturated_solinas        | 0m30.88s  || +0m00.25s | +0.80%
    0m24.20s  | ExtractionHaskell/saturated_solinas          | 0m24.27s  || -0m00.07s | -0.28%
    0m23.72s  | RewriterWf1.vo                               | 0m23.42s  || +0m00.29s | +1.28%
    0m17.52s  | ExtractionOCaml/word_by_word_montgomery      | 0m17.10s  || +0m00.41s | +2.45%
    0m13.39s  | secp256k1_32.c                               | 0m13.29s  || +0m00.10s | +0.75%
    0m13.08s  | p256_32.c                                    | 0m13.26s  || -0m00.17s | -1.35%
    0m11.49s  | p484_64.c                                    | 0m11.18s  || +0m00.31s | +2.77%
    0m10.68s  | ExtractionOCaml/unsaturated_solinas          | 0m10.64s  || +0m00.03s | +0.37%
    0m10.11s  | ExtractionOCaml/word_by_word_montgomery.ml   | 0m10.10s  || +0m00.00s | +0.09%
    0m07.96s  | ExtractionOCaml/saturated_solinas            | 0m07.95s  || +0m00.00s | +0.12%
    0m06.81s  | ExtractionOCaml/unsaturated_solinas.ml       | 0m06.76s  || +0m00.04s | +0.73%
    0m06.30s  | ExtractionHaskell/word_by_word_montgomery.hs | 0m06.26s  || +0m00.04s | +0.63%
    0m06.07s  | p224_32.c                                    | 0m05.94s  || +0m00.12s | +2.18%
    0m06.06s  | BoundsPipeline.vo                            | 0m06.08s  || -0m00.02s | -0.32%
    0m05.46s  | p384_64.c                                    | 0m05.30s  || +0m00.16s | +3.01%
    0m05.28s  | ExtractionOCaml/saturated_solinas.ml         | 0m05.18s  || +0m00.10s | +1.93%
    0m04.97s  | ExtractionHaskell/unsaturated_solinas.hs     | 0m04.99s  || -0m00.02s | -0.40%
    0m04.13s  | ExtractionHaskell/saturated_solinas.hs       | 0m04.10s  || +0m00.03s | +0.73%
    0m02.34s  | curve25519_32.c                              | 0m02.21s  || +0m00.12s | +5.88%
    0m01.59s  | curve25519_64.c                              | 0m01.47s  || +0m00.12s | +8.16%
    0m01.46s  | CLI.vo                                       | 0m01.48s  || -0m00.02s | -1.35%
    0m01.15s  | secp256k1_64.c                               | 0m01.03s  || +0m00.11s | +11.65%
    0m01.14s  | RewriterProofs.vo                            | 0m01.13s  || +0m00.01s | +0.88%
    0m01.14s  | StandaloneHaskellMain.vo                     | 0m01.09s  || +0m00.04s | +4.58%
    0m01.14s  | StandaloneOCamlMain.vo                       | 0m01.12s  || +0m00.01s | +1.78%
    0m01.09s  | p256_64.c                                    | 0m00.98s  || +0m00.11s | +11.22%
    0m01.06s  | p224_64.c                                    | 0m01.00s  || +0m00.06s | +6.00%
    JasonGross committed Jan 16, 2019
    Configuration menu
    Copy the full SHA
    c07d388 View commit details
    Browse the repository at this point in the history