Could a gatekeeper please review this patch?
APO Ofast assertion, no constraint graph for OpenMP lower generated PU
https://bugs.open64.net/show_bug.cgi?id=749
Assert in ConstraintGraph::buildCGFromSummary, can't find PU's constraint
graph info in IPA output IR file.

APO transformation will insert OpenMP pragma in PU. These pragma is lower
after LNO before WOPT, generate a separate PU for the parallel do body.
These PU has no constraint graph info in IPA output IR file.

Fix is for OpenMP lower generated pu, directly construct constraint graph
for this PU, don’t construct from summary.

Index: osprey/be/com/alias_analyzer.cxx
===================================================================
--- osprey/be/com/alias_analyzer.cxx    (revision 3534)
+++ osprey/be/com/alias_analyzer.cxx    (working copy)
@@ -47,7 +47,7 @@

   // What alias analyzer are we going to use?
   if ( Alias_Nystrom_Analyzer ) {
-    if (FILE_INFO_ipa(File_info))
+    if (FILE_INFO_ipa(File_info) && !PU_mp(Get_Current_PU ()) )
       _alias_analyzer = new NystromAliasAnalyzer(ac, tree, true);
     else
       _alias_analyzer = new NystromAliasAnalyzer(ac, tree);
@@ -97,6 +97,17 @@

   MEM_POOL_Delete(&_memPool);
   IPA_WN_MAP_Delete(Current_Map_Tab, _aliasTagMap);
+  // delete the mp generate pu's map
+  PU_Info *child = PU_Info_child(Current_PU_Info);
+  while (child) {
+    if (PU_mp(PU_Info_pu(child))) {
+      FmtAssert(PU_Info_maptab(child)->_pool[_aliasTagMap] ==
+                PU_Info_maptab(Current_PU_Info)->_pool[_aliasTagMap] ,
+               ("the child mp pu pool is not equal to _memPool"));
+      IPA_WN_MAP_Delete(PU_Info_maptab(child), _aliasTagMap);
+    }
+    child = PU_Info_next(child);
+  }
 }

 ALIAS_RESULT
------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to