File tree Expand file tree Collapse file tree 2 files changed +3
-14
lines changed Expand file tree Collapse file tree 2 files changed +3
-14
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1818 node via ` --cache-dir dir ` .
1919- Changed ` verify* ` methods to always require postcodition.
2020- Removed type parameter of mutable memory from VM definition.
21+ - Removed simplification that were rewriting concrete bytes-to-be-overwritten
22+ with zero bytes. Benefits were unclear while it had negative effect on
23+ analysis' performance.
2124
2225## [ 0.56.0] - 2025-10-13
2326
Original file line number Diff line number Diff line change @@ -1001,20 +1001,6 @@ simplifyNoLitToKeccak e = untilFixpoint (mapExpr go) e
10011001 go (ReadByte idx buf) = readByte idx buf
10021002 go (BufLength buf) = bufLength buf
10031003
1004- -- We can zero out any bytes in a base ConcreteBuf that we know will be overwritten by a later write
1005- -- TODO: make this fully general for entire write chains, not just a single write.
1006- go o@ (WriteWord (Lit idx) val (ConcreteBuf b))
1007- | idx >= maxBytes = o
1008- | BS. length b >= (unsafeInto idx + 32 ) =
1009- let
1010- slot = BS. take 32 (BS. drop (unsafeInto idx) b)
1011- isSlotZero = BS. all (== 0 ) slot
1012- content = if isSlotZero
1013- then b
1014- else (BS. take (unsafeInto idx) b)
1015- <> (BS. replicate 32 0 )
1016- <> (BS. drop (unsafeInto idx + 32 ) b)
1017- in writeWord (Lit idx) val (ConcreteBuf content)
10181004 go (WriteWord a b c) = writeWord a b c
10191005
10201006 go (WriteByte a b c) = writeByte a b c
You can’t perform that action at this time.
0 commit comments