Commit graph

4747 commits

Author SHA1 Message Date
Ayaz Hafiz
9702f30a61
Support erased functions in debug mode 2023-07-12 14:46:37 -05:00
Ayaz Hafiz
cb56872566
Add initial tests 2023-07-12 14:46:36 -05:00
Ayaz Hafiz
667a69279e
Refcounting null box ptr 2023-07-12 14:46:36 -05:00
Ayaz Hafiz
0385da490a
Support ValuePtr in alias analysis and llvm 2023-07-12 14:46:12 -05:00
Ayaz Hafiz
8d9c6d09b9
Load as a stack pointer 2023-07-12 14:46:11 -05:00
Ayaz Hafiz
fde75d5432
Correct calling branches 2023-07-12 14:45:03 -05:00
Ayaz Hafiz
23f4d02f81
Cleanup 2023-07-12 14:45:03 -05:00
Ayaz Hafiz
6ba6b04a17
Pass function pointer directly rather than load/store into alloca 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
a123820b2b
Fix argument type 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
1cd9deffe2
Sorry checker 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
3e23699bb4
Build easy refcounter for erased 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
bc4c91a68f
Easy mode refcounter 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
f37cc48e88
Build erased load in llvm 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
fcb907b0c9
Don't pass empty captures 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
13c45151a4
Mono IR checker: check wanted function pointer layout 2023-07-12 14:45:01 -05:00
Ayaz Hafiz
e1c88c6101
Build erased types 2023-07-12 14:45:01 -05:00
Ayaz Hafiz
b8c1436a75
Pass less arguments around 2023-07-12 14:45:00 -05:00
Ayaz Hafiz
13d1232f7d
Erased functions do not take a func spec 2023-07-12 14:44:17 -05:00
Ayaz Hafiz
7c8e7bbea3
pub crate 2023-07-12 14:43:40 -05:00
Ayaz Hafiz
74d0f8d2e5
llvm types for erasure, function pointer 2023-07-12 14:43:40 -05:00
Ayaz Hafiz
2c826ea898
Model erasure in alias analysis 2023-07-12 14:43:39 -05:00
Ayaz Hafiz
f2f80f390d
Add erasure llvm test 2023-07-12 14:43:25 -05:00
Ayaz Hafiz
535eb80dfb
Clippy 2023-07-12 14:43:25 -05:00
Ayaz Hafiz
cd64134b0a
Allow direct packing, unpacking of erased types 2023-07-12 14:43:25 -05:00
Ayaz Hafiz
1d1db83cc7
Add needed file 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
dc56a0ffef
First pass update erasure IR 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
7ea85e44d2
Add Layout::Erased 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
283b9d53d6
Add Expr::ErasedLoad 2023-07-12 14:42:46 -05:00
Ayaz Hafiz
2c838aa5c2
Add mono Expr::ErasedMake 2023-07-12 14:40:16 -05:00
Ayaz Hafiz
3e3d3cc7f3
Type fixes 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
b2d3b52bd5
First compile of erased lambdas 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
cf74f849e1
Unpack erased captures 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
fbad6bcb90
First pass at specialized erased 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
2cb2e37fd7
Specialize erased 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
d17d8c72ad
Exercise building erased function 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
a1eb641bb6
how to build an erased fn 2023-07-12 14:21:27 -05:00
Ayaz Hafiz
cf30f02e01
Expr::FunctionPointer 2023-07-12 14:21:27 -05:00
Ayaz Hafiz
55fa8098d3
add a todo impl 2023-07-12 14:17:58 -05:00
Ayaz Hafiz
63db2c0eea
Add erased layout 2023-07-12 14:17:57 -05:00
Ayaz Hafiz
510a421748
Call erased functions 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
558d7459b4
Fix merge conflicts 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
929579d51d
Fix 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
a6bb3ab03c
Get started on calling erased functions 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
6312d75ee0
Add FunctionPointer layout 2023-07-12 13:59:50 -05:00
Ayaz Hafiz
a9e3f967a8
First pass at erased function layouts 2023-07-12 13:57:19 -05:00
Ayaz Hafiz
6e5a308557
Content variant ErasedLambda 2023-07-12 13:57:17 -05:00
Ayaz Hafiz
c459757062
Thread simple model of "ErasedLambdas" through proc layouts
But none of these paths are yet exercised.
2023-07-12 13:53:52 -05:00
Ayaz Hafiz
6eae480e36
Check in first erasure test 2023-07-12 13:53:52 -05:00
Ayaz Hafiz
16ebcba053
Use index 2023-07-12 13:53:51 -05:00
Ayaz Hafiz
6014370b91
Initial support for erasure in tests 2023-07-12 13:53:51 -05:00