-----Original Message----- From: Ye, Mei Sent: Monday, July 18, 2011 10:20 AM To: '"C. Bergström"'; David Coakley Subject: RE: [Open64-devel] Code review request: add region exit blocks only when needed [OPT]
Hi David Your fix looks good for me in the short term. However, in the long term, we will still need to provide a solution that prevents "out of memory" in corner cases. Suggestions are lowering opt levels, using existing BBs as region exits, using side data structure to identify regions etc. A design to minimize memory usage and keep it local to certain opts will be helpful. -Mei -----Original Message----- From: "C. Bergström" [mailto:cbergst...@pathscale.com] Sent: Friday, July 15, 2011 5:22 PM To: David Coakley Cc: Ye, Mei Subject: Re: [Open64-devel] Code review request: add region exit blocks only when needed [OPT] On 07/16/11 07:09 AM, David Coakley wrote: > Mei, we investigated your suggestion and here's what we found: > > We tried to delete these bb_regionexit nodes after they are used. But > it did not solve the out-of-memory issue. > > The optimization flow is like the following: > preopt: > Build_cfg --> bb_regionexit added (and never used) > DCE > compute_dom_tree --> out of memory because too many bbs > ... > mainopt: > Build_cfg --> bb_regionexit added to mark the end of EH region > DCE > CFG_tranformation > ... > > We need to keep bb_regionexit until CFG_transformation (i.e., we > cannot delete them after build_cfg). preopt still has out-of-memory > issue. Thus, not adding bb_regionexits in build_cfg when these bbs are > not used seems to be a reasonable solution. Also Adding bb_regionexit > in the beginning of CFG_transformation is difficult, since we need to > know the scope of a region. > > We changed the original patch to add a flag OPT_Enable_EH_CFG_OPT to > control whether the CFG_transformation for EH regions are performed > and bb_regionexits are added. The default is only enabled in mainopt. > We believe it is more understandable this way. I don't know how close our code is in this area, but if you need us to test with 64bit version of the compiler to check how much memory is being used let me know. I assume you're hitting the large 4GB ceiling with the compiler? (I know it won't solve the immediate problem, but it could give some idea for how close you are) ------------------------------------------------------------------------------ Storage Efficiency Calculator This modeling tool is based on patent-pending intellectual property that has been used successfully in hundreds of IBM storage optimization engage- ments, worldwide. Store less, Store more with what you own, Move data to the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/ _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel