summaryrefslogtreecommitdiff
path: root/gary
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-01-21 17:14:11 +0100
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-04-28 23:35:32 +0200
commita39c9c8e5f90da14c939e6c24ccc353da63c32ad (patch)
tree73a886fee989b77d2a0db11041efedc8bedbe15f /gary
parent2d85c32b592b1890ecdb3817068bcdd4e3290dd9 (diff)
Adds Garys commit
Diffstat (limited to 'gary')
-rw-r--r--gary/error-summary31
-rw-r--r--gary/how_to_organize_reorg40
2 files changed, 71 insertions, 0 deletions
diff --git a/gary/error-summary b/gary/error-summary
new file mode 100644
index 00000000000..f51eae94ad9
--- /dev/null
+++ b/gary/error-summary
@@ -0,0 +1,31 @@
+There are two errors know to date and one porblem.
+
+Errors:
+
+1) Using typedef to create differents names for the same type will
+confuse the optimization into thinking that they are different
+types.
+
+This is a know big issue and not a surprise.
+
+2) Some local declarations go missing for not apparient reason.
+To verify this is the case in a suspicious situation uncoment
+the DEBUG statemest annotated with "test_1_8" and you'll see in the
+stderr output that there are no declarations associate with the
+function of interest.
+
+This was a surprise and will require a lot of debugging to track
+dowm the root case of the problem. If you wish to see my test case
+I will send it to you.
+
+Problem:
+
+If you invoke any of the structure reorg optimizations
+(e.g. -fipa-structure-reorg), you'll need to include the options
+"-flto -flto-partition=one". The problem is that struction reorg
+will unfortunenately run if only "-flto" is included with a
+struct reorg option but it will be insane and not function correctly.
+
+I've not found a way to address this yet but I'm hopeful that this
+is someing we can cope with.
+
diff --git a/gary/how_to_organize_reorg b/gary/how_to_organize_reorg
new file mode 100644
index 00000000000..c8116eac15b
--- /dev/null
+++ b/gary/how_to_organize_reorg
@@ -0,0 +1,40 @@
+I'll put shared types and externs in ipa-structure-reorg.h.
+The externs in file ipa-structure-reorg.h will be for the API
+calls.
+
+There will three flags associated with
+
+-fipa-structure-reorg
+-fipa-dead-field-eliminate
+-fipa-field-reorder
+-fipa-instance-interleave
+
+Specifying any of them will run the shared qualification analysis.
+
+Specifying -fipa-structure-reorg will be equivalent
+to invoking all the other flags.
+
+The other flags just run the specific structure reorg algorithm.
+
+The driver and shared qualification code will be in ipa-structure-reorg.c.
+I'm assuming for now that each algorithm will be in it's own file
+and can be invoked via from the driver like this
+
+ if ( control code )
+ {
+ int return_val = algorithm( info);
+ // typical actions dependent on the return value;
+ }
+
+Note, the info parameter (of type Info *) is how I'd like to give the
+API calls access to the persistent information. Frankly, this is my
+own strange idiom but it's served me well in the past and I think it
+beats globals which are something I want to avoid.
+
+Would it be OK for our first integration of code that I create one or
+two empty files. You'd supply a name that you are using now of course
+so you can just subsitute your work for the stubs on itegration.
+
+Also, reagarding the API itself wouldn't a reasonable start just
+be some of the functions in the utility section of my design?
+Check them out see if that makes any sense. \ No newline at end of file