Would gatekeepr help reveiew this patch?

Currently, nystrom alias analyzer analyze again for OpenMP lower created
parallel PU.
And when OpenMP lower create this parallel PU, it doesn't copy aliasTagMap.

This problem is when creating constraint graph for OpenMP parallel PU.
Compilation has sig fault in red code when checking if a WN node can be a
pointer.
The root cause is WN node has constraint graph node id, however id's
corresponding node not in current contraint graph.
Because when OpenMP lower clone the parallel PU, it copy the
WN_MAP_ALIAS_CGNODE map.

ConstraintGraph::exprMayPoint(WN *const wn)
{
  TYPE_ID desc = WN_desc(wn);
  if (MTYPE_is_float(desc) || MTYPE_is_complex(desc) ||
MTYPE_is_vector(desc)) {
     return false;
  }

  CGNodeId id = WN_MAP_CGNodeId_Get(wn);
  if (id != 0 && cgNode(id)->checkFlags(CG_NODE_FLAGS_NOT_POINTER))
      return false;

Fix is in OpenMP lower, not copy the WN_MAP_ALIAS_CGNODE map.

Index: osprey/be/com/wn_mp.cxx
===================================================================
--- osprey/be/com/wn_mp.cxx     (revision 3636)
+++ osprey/be/com/wn_mp.cxx     (working copy)
@@ -2768,8 +2768,14 @@
         ("parallel_pu's PU's maptab isn't parallel_pu\n"));
     Current_Map_Tab = pmaptab;
     WN_MAP_Set_dont_copy(aa->aliasTagMap(), TRUE);
+    WN_MAP_Set_dont_copy(WN_MAP_ALIAS_CGNODE, TRUE);
     Current_Map_Tab = PU_Info_maptab(parallel_pu);
   }
+  else {
+    Current_Map_Tab = pmaptab;
+    WN_MAP_Set_dont_copy(WN_MAP_ALIAS_CGNODE, TRUE);
+    Current_Map_Tab = PU_Info_maptab(parallel_pu);
+  }

     // use hack to save csymtab using parallel_pu, so we can restore it
     // later when we lower parallel_pu; this is necessary because the

Regard
Shi Hui
------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger. 
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today. 
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to