-
Notifications
You must be signed in to change notification settings - Fork 147
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Guard exponentially slow bounds analysis with a flag
With `--fancy-and-powerful-but-exponentially-slow-bounds-analysis` Idk how to implement a non-exponential PHOAS passe for this.
- Loading branch information
1 parent
69f8538
commit 6508d15
Showing
16 changed files
with
7,127 additions
and
3,466 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
594 changes: 594 additions & 0 deletions
594
src/AbstractInterpretation/Bottomify/AbstractInterpretation.v
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
Require Import Rewriter.Language.Language. | ||
Require Import Rewriter.Language.Wf. | ||
Require Import Crypto.Language.API. | ||
Require Import Crypto.Language.WfExtra. | ||
Require Import Crypto.AbstractInterpretation.Bottomify.AbstractInterpretation. | ||
Require Import Crypto.AbstractInterpretation.Bottomify.Wf. | ||
|
||
Module Compilers. | ||
Import Language.Compilers. | ||
Import Language.Inversion.Compilers. | ||
Import Language.Wf.Compilers. | ||
Import Language.API.Compilers. | ||
Import Language.WfExtra.Compilers. | ||
Import AbstractInterpretation.Bottomify.AbstractInterpretation.Compilers. | ||
Import AbstractInterpretation.Bottomify.Wf.Compilers. | ||
Import Compilers.API. | ||
|
||
Import AbstractInterpretation.Bottomify.AbstractInterpretation.Compilers.partial. | ||
Import AbstractInterpretation.Bottomify.Wf.Compilers.partial. | ||
|
||
#[global] | ||
Hint Resolve Wf_Eval Wf_EvalWithBound Wf_EtaExpandWithBound Wf_EtaExpandWithListInfoFromBound Wf_StripAnnotations Wf_StripAllAnnotations : wf_extra. | ||
#[global] | ||
Hint Opaque partial.Eval EvalWithBound EtaExpandWithBound EtaExpandWithListInfoFromBound StripAnnotations StripAllAnnotations : wf_extra interp_extra. | ||
|
||
#[global] | ||
Hint Resolve Wf_PartialEvaluateWithListInfoFromBounds : wf_extra. | ||
#[global] | ||
Hint Opaque PartialEvaluateWithListInfoFromBounds : wf_extra interp_extra. | ||
|
||
#[global] | ||
Hint Resolve Wf_PartialEvaluateWithBounds : wf_extra. | ||
#[global] | ||
Hint Opaque PartialEvaluateWithBounds : wf_extra interp_extra. | ||
End Compilers. |
612 changes: 612 additions & 0 deletions
612
src/AbstractInterpretation/Fancy/AbstractInterpretation.v
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
Require Import Rewriter.Language.Language. | ||
Require Import Rewriter.Language.Wf. | ||
Require Import Crypto.Language.API. | ||
Require Import Crypto.Language.WfExtra. | ||
Require Import Crypto.AbstractInterpretation.Fancy.AbstractInterpretation. | ||
Require Import Crypto.AbstractInterpretation.Fancy.Wf. | ||
|
||
Module Compilers. | ||
Import Language.Compilers. | ||
Import Language.Inversion.Compilers. | ||
Import Language.Wf.Compilers. | ||
Import Language.API.Compilers. | ||
Import Language.WfExtra.Compilers. | ||
Import AbstractInterpretation.Fancy.AbstractInterpretation.Compilers. | ||
Import AbstractInterpretation.Fancy.Wf.Compilers. | ||
Import Compilers.API. | ||
|
||
Import AbstractInterpretation.Fancy.AbstractInterpretation.Compilers.partial. | ||
Import AbstractInterpretation.Fancy.Wf.Compilers.partial. | ||
|
||
#[global] | ||
Hint Resolve Wf_Eval Wf_EvalWithBound Wf_EtaExpandWithBound Wf_EtaExpandWithListInfoFromBound Wf_StripAnnotations Wf_StripAllAnnotations : wf_extra. | ||
#[global] | ||
Hint Opaque partial.Eval EvalWithBound EtaExpandWithBound EtaExpandWithListInfoFromBound StripAnnotations StripAllAnnotations : wf_extra interp_extra. | ||
|
||
#[global] | ||
Hint Resolve Wf_PartialEvaluateWithListInfoFromBounds : wf_extra. | ||
#[global] | ||
Hint Opaque PartialEvaluateWithListInfoFromBounds : wf_extra interp_extra. | ||
|
||
#[global] | ||
Hint Resolve Wf_PartialEvaluateWithBounds : wf_extra. | ||
#[global] | ||
Hint Opaque PartialEvaluateWithBounds : wf_extra interp_extra. | ||
End Compilers. |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters