From a82e7148cea32a669636819250bb4f4d9d7b2a93 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Fri, 26 Jun 2020 09:56:22 -0400 Subject: [PATCH 260/315] FIXME: tweaks to cover-letter.txt --- cover-letter.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cover-letter.txt b/cover-letter.txt index 80002b84087..ef94318b122 100644 --- a/cover-letter.txt +++ b/cover-letter.txt @@ -1,6 +1,11 @@ Subject: analyzer: rewrite of region and value-handling -This patch reimplements how the analyzer tracks regions and values. +This large patch reimplements how the analyzer tracks regions and +values. + + +Elimination of region_id and svalue_id +************************************** The patch eliminates region_id and svalue_id in favor of simply using pointers. I'd hoped that the ID classes would make it easier @@ -17,6 +22,10 @@ be one more bug. By eliminating IDs in this new implementation, no canonicalization or ID remapping should be needed, and a lot of tricky code goes away. + +Ownership of regions and svalues +******************************** + In the old implementation, each region_model had its own copies of regions and svalues, so there was heap bloat and churn as lots of little objects were cloned when copying program_state instances. In the @@ -32,6 +41,10 @@ svalues is now stored in the region_model. TODO: not yet sure if we need validation, but by eliminating region_id and svalue_id, almost all of the old validation becomes redundant + +Changes to the meaning of a "region" +************************************ + Region subclasses no longer represent internal structure, but instead represent how the regions are reached. So e.g. a global "struct coord c;" is now a decl_region, rather than a struct_region. -- 2.26.2