Commit Graph

116 Commits

Author SHA1 Message Date
Fredrik Dahlgren
8a31514734 Added unconstrained-less-than analysis pass 2022-11-17 15:31:06 +01:00
Fredrik Dahlgren
4cae982b36 Added maximum running times for degree and value propagation algorithms
Analysis will currently choke on CFGs with a large (over 65 000) variables. This bounds the running time for degree and value propagation. We still need to handle side-effect analysis.
2022-11-17 15:29:40 +01:00
Fredrik Dahlgren
ac43452f9a Added fmt::Debug implementation for ir::AccessType 2022-11-17 12:19:43 +01:00
Fredrik Dahlgren
385daf7995 Bug fix in value propagation
Previously, value propagation would propagate values from `rhe` to `v` (rather than `v[i]`) in statements like `v[i] = rhe`.
2022-11-17 12:18:25 +01:00
Fredrik Dahlgren
90c6c75fc3 Added ValueKnowledge unit test 2022-11-17 12:14:56 +01:00
Fredrik Dahlgren
73a9b69a69 Renamed DominatorTree API 2022-11-17 12:14:31 +01:00
Fredrik Dahlgren
e290fd0d56 Added MessageCategory::to_level 2022-11-17 12:12:53 +01:00
Fredrik Dahlgren
288bbfbe9f Code cleanup 2022-11-17 12:12:07 +01:00
Fredrik Dahlgren
9bd1a7fc73 Fixed report code spelling 2022-09-24 18:28:40 +02:00
Filipe Casal
a15270e796 Sarif: use name instead of id. 2022-09-13 12:42:54 +01:00
Filipe Casal
a6bff9294f Add rule names to the sarif report. 2022-09-13 11:51:37 +01:00
Fredrik Dahlgren
1f9f0cb8f1 Updated Sarif conversion to support rule names 2022-09-13 12:46:00 +02:00
Fredrik Dahlgren
adde91f1e3 Bumped versions 2022-09-13 10:31:25 +02:00
Fredrik Dahlgren
505a5380d0 Fixed clippy suggestion 2022-09-13 10:25:51 +02:00
Fredrik Dahlgren
48086a3e01 Improved degree propagation
Degree propagation now does fixed point iteration.
2022-09-13 10:23:26 +02:00
Fredrik Dahlgren
27e6311a61 Bumped versions 2022-09-13 09:22:33 +02:00
Fredrik Dahlgren
593e357c4e Improved handling of custom templates 2022-09-13 09:13:58 +02:00
Fredrik Dahlgren
3cdd3c3fc5 Update to support Circom 2.0.8 2022-09-12 21:59:23 +02:00
Fredrik Dahlgren
1e5a4a6a25 Bumped circomspect-program-structure version 2022-09-12 13:51:01 +02:00
Fredrik Dahlgren
c978a79882 Bug fix in Statement implementation of VariableMeta
The implementation did not track accesses to written variables.
2022-09-12 13:47:34 +02:00
Fredrik Dahlgren
87a4c150e4 Added log message for Sarif generation 2022-09-12 12:34:15 +02:00
Fredrik Dahlgren
3a2cfd3b03 Added metadata to Cargo.toml 2022-09-12 11:37:56 +02:00
Fredrik Dahlgren
efcf008341 Fixed test failures due to renaming 2022-09-12 11:26:01 +02:00
Fredrik Dahlgren
92a73d7816 Renamed internal crates to avoid crates.io namespace collisions 2022-09-12 11:15:37 +02:00
Fredrik Dahlgren
27dd74dae5 Added version information for internal crates to Cargo.toml 2022-09-12 11:02:39 +02:00
Fredrik Dahlgren
9cf62d5966 Better output from side-effect analysis 2022-09-12 10:50:24 +02:00
Fredrik Dahlgren
3cc44f4560 Added ReportWriter
This change also adds the verbose output options to the CLI.
2022-09-12 09:22:15 +02:00
Fredrik Dahlgren
31cb9924f8 Fixed clippy suggestions 2022-09-08 12:11:00 +02:00
Fredrik Dahlgren
db1492883f Renamed DegreeKnowledge::degree_range 2022-09-08 11:40:10 +02:00
Fredrik Dahlgren
65793b9717 Added degree analysis to signal assignment analysis pass 2022-09-07 19:25:54 +02:00
Fredrik Dahlgren
ae6d970486 Added DegreeMeta 2022-09-07 19:23:56 +02:00
Fredrik Dahlgren
5edf136e4a Edited comments 2022-09-07 19:23:20 +02:00
Fredrik Dahlgren
5a67df1964 Added dimensions to Declaration 2022-09-07 19:22:50 +02:00
Fredrik Dahlgren
06e4c0b363 Ran cargo fmt 2022-09-02 16:40:50 +02:00
Fredrik Dahlgren
0cc6e1ba74 Bug fix in CFG generation
The conversion to unique variable names contained an error where we failed to convert variable names occurring in variable accesses.
2022-09-02 16:38:15 +02:00
Fredrik Dahlgren
149f64282d Switched rustfmt to more sensible defaults 2022-09-02 14:08:50 +02:00
Fredrik Dahlgren
cf2c945e9e Remove trace println statement 2022-09-01 15:10:52 +02:00
Fredrik Dahlgren
4fed2c5078 Fixed clippy lints 2022-09-01 15:09:46 +02:00
Fredrik Dahlgren
993318d6fe Added definition complexity pass 2022-09-01 13:55:44 +02:00
Fredrik Dahlgren
7c01140bac Completely rewrote side-effect analysis 2022-09-01 13:55:01 +02:00
Fredrik Dahlgren
3b4b1a138d Added trait derives to Declaration 2022-09-01 13:53:39 +02:00
Fredrik Dahlgren
d3bc72a2ee Bug fix in SSA generation
The SSA environment used strings to track variables which meant that variable name suffixes added to ensure uniqueness were lost.
2022-09-01 13:53:04 +02:00
Fredrik Dahlgren
bf1ce68c4a Renamed local variable 2022-09-01 13:51:57 +02:00
Fredrik Dahlgren
e6420a840a Added DefinitionType
This should probably be handled by converting `Cfg` to an enum instead.
2022-09-01 13:51:29 +02:00
Fredrik Dahlgren
fbd59d3b00 Improved errors for undefined variables 2022-09-01 13:50:32 +02:00
Fredrik Dahlgren
c4035f6fed Better Debug implementation for IR statements 2022-09-01 13:49:42 +02:00
Fredrik Dahlgren
8a137ee69c Bug fix in VariableMeta for IR statements 2022-09-01 13:49:10 +02:00
Fredrik Dahlgren
1a805b0a56 Added VariableMeta::variables_used 2022-09-01 13:48:05 +02:00
Fredrik Dahlgren
a9dd70c43b Removed trace println statements from cfg.rs 2022-08-31 11:33:15 +02:00
Fredrik Dahlgren
3cac2d7695 Added get_true_branch and get_false_branch to Cfg 2022-08-31 11:31:34 +02:00