diff options
author | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-01-21 17:14:11 +0100 |
---|---|---|
committer | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-04-28 23:35:32 +0200 |
commit | a39c9c8e5f90da14c939e6c24ccc353da63c32ad (patch) | |
tree | 73a886fee989b77d2a0db11041efedc8bedbe15f /gary | |
parent | 2d85c32b592b1890ecdb3817068bcdd4e3290dd9 (diff) |
Adds Garys commit
Diffstat (limited to 'gary')
-rw-r--r-- | gary/error-summary | 31 | ||||
-rw-r--r-- | gary/how_to_organize_reorg | 40 |
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 |