gingerBill
|
dbcbf45509
|
Escape Analysis: Keep stored field paths in escape analysis flows
|
2026-10-15 00:26:44 +01:00 |
|
gingerBill
|
89b94438a5
|
Leave out bounds checks proven from fields of locals and lengths known not to be zero
|
2026-10-12 20:55:44 +01:00 |
|
gingerBill
|
33c1d7124c
|
Leave out bounds checks proven from conditions, loops, and earlier checks
|
2026-10-12 16:15:49 +01:00 |
|
gingerBill
|
2804ac31ce
|
Check an interval's end and an iterator's call on every iteration when leaving out bounds checks
|
2026-10-12 15:29:23 +01:00 |
|
gingerBill
|
3cd272c0fe
|
Leave out bounds checks repeating one which already passed
|
2026-10-12 15:15:48 +01:00 |
|
gingerBill
|
97c7f0214f
|
Move a DeclInfo's procedure-only fields to a ProcDeclInfo only procedures allocate; remove the unused type_and_value_mutex fields
|
2026-10-11 20:08:31 +01:00 |
|
gingerBill
|
992839ebea
|
Store a node's constant value out of line (as few nodes have one)
|
2026-10-11 19:16:22 +01:00 |
|
Franz
|
4c331405ae
|
Fix escape analysis for init statements of ranged loops
|
2026-10-10 13:29:17 +02:00 |
|
gingerBill
|
8169255b97
|
Analyse procedures that call each other in at most three parallel rounds, each with what the others found in the one before, instead of one at a time until what flows through them settles
|
2026-10-09 02:10:26 +01:00 |
|
gingerBill
|
cf01b81df3
|
Forget what is held by what an if statement's condition shows is nil in that branch, e.g. a field replaced with a clone unless it is nil
|
2026-10-09 01:58:52 +01:00 |
|
gingerBill
|
24f920021b
|
Analyse a procedure that grows too large again without what its calls do, rather than giving up on it, so what it does itself is always checked
|
2026-10-09 01:54:49 +01:00 |
|
gingerBill
|
cc0f0a5ea0
|
Keep only the escape flows that find common mistakes: none for what is loaded through an argument more than once, nor for what is moved around within the memory an argument reaches
|
2026-10-09 01:49:07 +01:00 |
|
gingerBill
|
476a692204
|
Fix the escape analysis hanging when a call stores what it loads into a field of another type and give up on procedures that grow too large
|
2026-10-09 00:44:31 +01:00 |
|
gingerBill
|
d0a5d4a8e2
|
Fix #7820: keep only the origins of what a call's flow loads from memory of an unknown type in the escape analysis
|
2026-10-08 11:14:39 +01:00 |
|
gingerBill
|
158d0a9d8d
|
Replace the #+escape-analysis/#+atomic-analysis file tags with #+analysis which takes names and ! like #+vet
|
2026-10-07 22:50:20 +01:00 |
|
gingerBill
|
d728de8a20
|
Add #+escape-analysis and #+no-escape-analysis file tags, and keep the syntactic check of unsafe returns where the escape analysis is disabled
|
2026-10-07 21:06:56 +01:00 |
|
gingerBill
|
476ff62d6d
|
Add -vet-uninitialized, reporting reads of what is declared with --- before anything is stored in it
|
2026-10-07 20:35:53 +01:00 |
|
gingerBill
|
043f6e4c3d
|
Use the temporary allocator for the escape analysis's scratch memory
|
2026-10-07 20:08:35 +01:00 |
|
gingerBill
|
cfde9fb9cb
|
Tidy up check_escape.cpp
|
2026-10-07 20:02:04 +01:00 |
|
gingerBill
|
3f1a87dd33
|
Treat the fields brought in by 'using' on locals and in 'using' statements as part of what it was applied to in the escape analysis
|
2026-10-07 19:42:29 +01:00 |
|
gingerBill
|
e512fe07d3
|
Add -vet-nil-deref, reporting dereferences and calls through what is nil on every path reaching them
|
2026-10-07 19:36:37 +01:00 |
|
gingerBill
|
9ee4b3f497
|
Cut the escape call graph's setup by numbering, counting and releasing in parallel, and finding callers alongside the groups
|
2026-10-07 18:16:36 +01:00 |
|
gingerBill
|
cb3165cd2c
|
Settle recursive escape groups one member at a time after a first parallel round
|
2026-10-07 18:00:18 +01:00 |
|
gingerBill
|
969b84fb9c
|
Build the escape call graph's edges in parallel
|
2026-10-07 17:51:05 +01:00 |
|
gingerBill
|
20c603392e
|
Analyse the escape summaries in the strongly connected components of the recorded calls, so the results are deterministic
|
2026-10-07 17:44:59 +01:00 |
|
gingerBill
|
01dfa7756b
|
Analyse the escape summaries in the call graph's strongly connected components, so the results are deterministic
|
2026-10-07 17:26:20 +01:00 |
|
gingerBill
|
5659d485cb
|
Merge the escape analysis's stores of the caller's memory from different calls
|
2026-10-07 16:31:08 +01:00 |
|
gingerBill
|
23d057c01f
|
Use a specialization's full type for its escape summary in calls
|
2026-10-07 16:05:56 +01:00 |
|
gingerBill
|
50810e6717
|
Add store summaries to the escape analysis
|
2026-10-07 15:44:07 +01:00 |
|
gingerBill
|
bc56d95e63
|
Add interprocedural summaries to the escape analysis, analysing callees on demand
|
2026-10-07 15:08:05 +01:00 |
|
gingerBill
|
edeca40dd6
|
Skip the escape analysis for an executable's entry point, suggest clearing stores, and add type_zero_value_string
|
2026-10-07 13:41:32 +01:00 |
|
gingerBill
|
5522d18745
|
Skip the escape analysis for an executable's entry point and suggest clearing stores
|
2026-10-07 13:38:22 +01:00 |
|
gingerBill
|
8a8ffa27f1
|
Replace check_unsafe_return by deciding unsafe returns in the escape analysis
|
2026-10-07 13:16:57 +01:00 |
|
gingerBill
|
8ea02cc733
|
Add flow-based escape analysis of stack memory, reported as warnings
|
2026-10-07 13:08:22 +01:00 |
|