I wished to inquire about what exactly the various optimizations do as part of IPO. There is a list of the various optimizations but it is not clear what types of operations are actually performed when such optimizations are applied.
Consider, for instance, this snippet from a generated IPO report:
What exactly is "routine attributes propagation"? I can see the function names are listed first but I could not find any mention of the meanings attached to the various abbreviations thereafter. What meaning then do the numerous abbrevations hold?
As far as I can tell, it seems to transform the function or the "function attributes" in some way but it is unclear as to what type of transformation this is.
It may be the case that I have to consult some compiler theory books but I would appreciate it if some particular book(s) explaining specifically the ~20 optimizations that are applied as part of IPO be recommended.
Hi Ipo is used principally for merge objects as example source that have language C/c++ and Fortran ,But Is not the only one side where it can be used favoring This side is complexe but if you want extand more subject search word FLTO , GIMPLE ,LTRANS Gold linker (similar xild) (ELF) WWW. Example If you have last compiler gcc 4.6.0 you must discover that time for build could be reduced divided by 20 or more when flag -fwhole-program used Load this link you have general information vulgarized (IPO is similar almost functionally LTO) http://gcc.gnu.org/projects/lto/whopr.pdf
Trace That you give could be reworked better functions ordered in objects for linker. Better you use is an large control , trace strict for your source is correct Unfortunately, is an new technology yet at start progressing with yet several sides is imperfect. Regards Nb: (maybe , show if subject is in google books ???)
It was helpful in the sense that it provided some hints about what
"routine attribute propagation" might be. Upon further investigation, I
may have found what the theoretical roots for it might be. It probably
stems from the concept of "attribute grammars" in the theory of
It is likely that each "routine" or "function" is assigned certain
attributes that are then propagated somehow through the call graph for
the application. What those attributes are is unknown as the
abbreviations are quite ambiguous.
I am hoping that someone can at least verify that I am on the right track or whether I am completely wrong.
Thank for your link that give clear one side of process theorized principle.
I have read some files sources gnu compiler for understand more clear gnu compiler flag -fwhole-program. but I'm afraid that it too hard for the possibility my small head old now.. I am very surprise and curious for understand how is reduced same factor times when you build with this flag, is crazy.. I think with I5 or I7 processor it would be possible to build source contained, is contextual in real time, without penalty observed for users. I hope Icc take same process futures I have build last package binutils that is required before build GNU with (lto & gold) and no problem observed with shared same machine Icc compiler.
( I have test cross the library have origin of the two compilers without problem at process linkage)(ICC 12.0.2 & GNU 4.6.0)