microproofs
1075be1b71
Minor fix to optimization to actually detect vars that are just forced builtins
2025-01-17 11:34:41 +07:00
microproofs
91b6e6da31
Oops left a todo
2025-01-16 09:33:59 +07:00
microproofs
ade50dd462
Clippy fix
2025-01-15 18:28:41 +07:00
microproofs
a9bedda5ed
Update script context handler to do less work with only fallback. Also optimize wrapped builtins too.
2025-01-15 18:27:43 +07:00
microproofs
6d2e38851e
Push down functions that aren't dependent on the group in front.
2025-01-12 00:39:04 +07:00
microproofs
09ddec6b41
New optimization to split independent lam function applications to enable case constr to optimize further
2025-01-11 19:09:00 +07:00
microproofs
d559e384ec
Handle case where write_bits is used without being applied
2025-01-11 19:08:43 +07:00
microproofs
e437d70ae2
Clippy fix
2025-01-11 19:08:42 +07:00
microproofs
a3a3185e5e
Conformance tests should be using NamedDebruijn comparisons not name. Also no inline remover needs to run separately from other uplc transformations
2025-01-11 19:08:42 +07:00
microproofs
f7f68fbafc
Add writeBits back in and use the optimizer to utilize the list conversion
2025-01-11 19:08:42 +07:00
microproofs
19d0ec23cf
Oops did wrong comparison check on number of consecutive applies
2025-01-11 19:08:42 +07:00
microproofs
7462f1d52f
DecodeUtf8 is not error safe
2025-01-11 19:08:42 +07:00
microproofs
2c214186b6
Make sure clean up doesn't add case and constr to comp time eval. Also had fun with test_1 mint script context validator
2025-01-11 19:08:42 +07:00
microproofs
33392f1532
Add case constr for applies greater than 2 optimization
2025-01-11 19:08:41 +07:00
microproofs
c1ed0dcbb5
Remove some prints and switch an uneeded isize to usize since it can't be negative
2025-01-11 19:08:41 +07:00
microproofs
19b4b9df0f
Inline now handles (if cond then body else error) patterns.
...
This allows conditions like ```expect x == 1``` to match performance with ```x == 1 && ...```
Also change builtins forcing to accommodate the new case-constr apply optimization
2025-01-11 19:08:41 +07:00
microproofs
463b88413e
feat: new builtins constr_index and constr_fields for alternative fast ways to take apart Data
2024-12-13 14:15:19 +07:00
Kasey
4ea6fdffe8
Aiken UPLC Optimization overhaul ( #1052 )
...
* Refactor and structuring optimizations to be less computationally heavy
* Forgot to commit the new file containing the optimization do over
* Point to correct functions in shrinker2
* Split out inline_constr_ops since it adds in builtins that can then be swept up by the builtin force reduction
* Fix: issue where identity reducer was always returning true
* Forward inlining on lambdas produces better results. This is due to a forward pass being able to apply an argument that may have no_inline at the top where as vice-versa would reduce the arg first.
* Clippy and test fixes
* Clear no_inlines when inlining a function
* Convert shrinker2 to replace shrinker and update tests
2024-11-13 15:08:36 -05:00
microproofs
eb37ed0da5
Clippy fix
2024-09-20 13:47:56 -04:00
microproofs
fa2aa0a3e8
When we find bls constants in UPLC convert them to their a hoisted compressed form with an uncompress call
2024-09-20 12:31:36 -04:00
KtorZ
ff4a480242
Upgrade pallas to v0.0.29, and start support for simulating transactions carrying Plutus v3 scripts.
2024-08-13 10:55:22 +02:00
microproofs
0be5229f1c
Only 2 errors and todos left to finish
2024-08-08 00:39:44 -04:00
microproofs
c286ada08d
clippy fix
2024-07-24 11:29:55 -04:00
microproofs
dfce9c1d96
feat: Add multivalidator as an AIR tree opcode.
...
feat: Add uplc eval optimization
2024-07-24 10:00:08 -04:00
microproofs
4bd9125b86
Fix delay of arguments to be exactly the same as codegen tests
2024-06-25 18:50:00 -04:00
hade
ad3c9f24b7
chore: minimal pallas dependencies
2024-05-30 15:09:05 +07:00
microproofs
3d06129d9b
add test for curry optimization that is a reduced case of #945
2024-05-22 15:46:32 -04:00
microproofs
d6cc450ce4
The actual issue with #945 is that the curry builtin reducer could sometimes place fully applied builtins that could evaluate and fail above where they were actually used. This happened with builtins that were called with the same constants enough times for the curry builtin to try hoist to a higher scope. This is now fixed by detecting which builtins are safe to evaluate in advance before we hoist fully applied builtins
2024-05-22 15:22:31 -04:00
microproofs
c16bd06e97
make sure traverse_uplc_with_helper is always passing the arg to lambda before running the with function.
...
Breaks #945 again
2024-05-22 11:58:05 -04:00
microproofs
489eff7f5b
Closes #945
...
Switch to depth first optimization passes instead of breadth first for inlining. Need to think more on how to do breadth first optimization passes
2024-05-21 17:12:57 -04:00
microproofs
945a3f743b
feat: builtin wrapper reduction optimization
2024-04-26 19:24:04 +02:00
microproofs
21b1e29f09
chore: clippy fix
2024-03-27 16:39:52 -04:00
microproofs
94f383762c
step up the optimizations a bit more by inlining a small function
2024-03-08 00:12:44 -05:00
microproofs
1edd1a1fa3
change currying to happen with 3 or more occurrences
2024-03-08 00:12:44 -05:00
microproofs
e9122de061
more identity reduce testing
2024-03-08 00:12:44 -05:00
microproofs
dabaae8ca6
more identity and inline tests
2024-03-08 00:12:44 -05:00
microproofs
97b0cf6813
reorganize shrinker tests
2024-03-08 00:12:44 -05:00
microproofs
eb709d6fc3
reorder tests to match order of functions
2024-03-08 00:12:44 -05:00
microproofs
2bc433f61e
fix: need to use temp_term for counting var occurrences in identity reducer
...
chore: Adding more shrinker tests and fixed some of the existing ones
2024-03-05 12:08:18 -05:00
microproofs
27eb1a3e04
Change all uses of interning besides the uplc parser to use the new CodeGenInterner
2024-03-04 11:03:23 -05:00
microproofs
d971d9818b
update tests and ensure identity reducer handles no_inline lambda
2024-03-04 10:52:56 -05:00
microproofs
af6c107187
remove unneeded assert
2024-03-04 10:52:56 -05:00
microproofs
06ca22c26a
update inliner to handle no_inline functions
2024-03-04 10:52:56 -05:00
microproofs
4e928f39db
start adding no inline flag to functions
2024-03-04 10:52:56 -05:00
microproofs
2aaa46e54c
remove print
2024-03-04 10:52:56 -05:00
microproofs
c6ef37cc5c
checkpoint
2024-03-04 10:52:56 -05:00
microproofs
4e0aaf970f
update tests and fix final unique issues
2024-03-04 10:52:56 -05:00
microproofs
62963f7fc2
feat: finish curry optmization, improve inline optimization further, and add a subtract integer to add integer conversion
2024-03-04 10:52:56 -05:00
microproofs
7d8fdc0f22
prevent curried function hoisting if occurrences is 0
2024-03-04 10:52:56 -05:00
microproofs
258b5abf23
now currying works
2024-03-04 10:52:56 -05:00