Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
74f6100
First pass lattice
HaydenAtFoxHaven Jan 16, 2026
f7f2e99
Least upper bound for more than 2
HaydenAtFoxHaven Jan 16, 2026
ba782dc
Intersect, splits and cut
HaydenAtFoxHaven Jan 16, 2026
c94d13c
Merge branch 'agle:main' into wrapping-intervals
HaydenAtFoxHaven Jan 18, 2026
2ec8471
Add widths and tests
HaydenAtFoxHaven Jan 19, 2026
59835ce
Constants, negation, not, addition and subtraction
HaydenAtFoxHaven Jan 20, 2026
0e187fe
Whoops! We prop tested too hard
HaydenAtFoxHaven Jan 20, 2026
fb26496
Multiplication and fixing intersect
HaydenAtFoxHaven Jan 21, 2026
6058a30
Un/signed Division
HaydenAtFoxHaven Jan 21, 2026
9ae77ce
Bitwise Or/And/Xor
HaydenAtFoxHaven Jan 22, 2026
3ad5877
Merge branch 'agle:main' into wrapping-intervals
HaydenAtFoxHaven Jan 22, 2026
411dcca
Merge branch 'agle:main' into wrapping-intervals
HaydenAtFoxHaven Jan 22, 2026
8b74712
Zero/Sign extend
HaydenAtFoxHaven Jan 22, 2026
073ad64
Merge branch 'wrapping-intervals' of https://github.com/HaydenAtFoxHa…
HaydenAtFoxHaven Jan 22, 2026
6f4eac9
Shifts
HaydenAtFoxHaven Jan 23, 2026
a0b95ce
Multi argument ops
HaydenAtFoxHaven Jan 23, 2026
a585454
Concat
HaydenAtFoxHaven Jan 23, 2026
7565ee3
light fixes
HaydenAtFoxHaven Jan 27, 2026
641f8b7
Test everythin
HaydenAtFoxHaven Jan 27, 2026
d434349
Fixes and don;t allocate 32000GiB
HaydenAtFoxHaven Jan 27, 2026
a240ddb
Concat is now sound
HaydenAtFoxHaven Jan 28, 2026
cd4ebd6
Concat is now sound
HaydenAtFoxHaven Jan 28, 2026
37e1a12
smul is all equal not all high
HaydenAtFoxHaven Jan 28, 2026
eeaf870
Or and XOR are safe too!
HaydenAtFoxHaven Jan 28, 2026
01b9ed3
All clear on AND, not sure about mul...
HaydenAtFoxHaven Jan 28, 2026
e93f85e
Mul is fixed, thanks b-paul
HaydenAtFoxHaven Jan 29, 2026
f14ada0
I think the bitwise stuff is fine
HaydenAtFoxHaven Jan 29, 2026
284bac9
UDiv should ssplit, not nsplit (Crab was wrong)
HaydenAtFoxHaven Jan 30, 2026
571a8f8
Tidy up show
HaydenAtFoxHaven Jan 30, 2026
2f09696
Appease dune fmt
HaydenAtFoxHaven Feb 1, 2026
f2885d2
Wrapping --> Wrapped
HaydenAtFoxHaven Feb 4, 2026
8027d35
Add implementation notes
HaydenAtFoxHaven Feb 4, 2026
189396b
Merge branch 'agle:main' into wrapping-intervals
HaydenAtFoxHaven Feb 4, 2026
df2b54f
Fix bounds handling on shift and extract
HaydenAtFoxHaven Feb 4, 2026
19eabd9
open Bitvec
HaydenAtFoxHaven Feb 4, 2026
b420072
Docs and light clean up
HaydenAtFoxHaven Feb 4, 2026
149205d
Fix typecheck tests failing locally
HaydenAtFoxHaven Feb 4, 2026
136cf06
Add demo to passes list
HaydenAtFoxHaven Feb 5, 2026
ff4e3d2
Propagate unknown widths (if unable to infer)
HaydenAtFoxHaven Feb 5, 2026
b602c1a
Implement proper widening
HaydenAtFoxHaven Feb 6, 2026
92c2ab0
Implement proper widening (REAL, not clickbait)
HaydenAtFoxHaven Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/dev/wrapped-intervals.pdf
Binary file not shown.
7 changes: 6 additions & 1 deletion lib/analysis/dune
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
(public_name bincaml.analysis)
(name analysis)
(flags -w -27)
(modules dataflow_graph intra_analysis defuse_bool lattice_types)
(modules
dataflow_graph
intra_analysis
defuse_bool
lattice_types
wrapped_intervals)
(libraries
patricia-tree
loader
Expand Down
2 changes: 1 addition & 1 deletion lib/analysis/intra_analysis.ml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ module MapState (V : Lattice) = struct
let to_iter m = Iter.from_iter (fun f -> M.iter (fun k v -> f (k, v)) m)
let read (v : Var.t) m = M.find_opt v m |> Option.get_or ~default:V.bottom
let update k v m = M.add k v m
let widening a b = join a b
let widening a b = M.idempotent_union (fun v a b -> V.widening a b) a b

type val_t = V.t
type key_t = Var.t
Expand Down
Loading
Loading