Hi,

   Could a gatekeeper please review the attached patch for bug#939.

        https://bugs.open64.net/show_bug.cgi?id=939

In function EBO_Disassociate_FMA, the function LR_For_TN(called by Is_TN_Sdsu) 
uses live_range_map created on fma_exe_pool. Currently this map is freed up 
before its use. The patch fixes this  problem by moving the cleanup routines to 
end of the block after their uses are completed.

Thanks,
Shivaram


Index: osprey/be/cg/x8664/ebo_special.cxx
===================================================================
--- osprey/be/cg/x8664/ebo_special.cxx  (revision 3851)
+++ osprey/be/cg/x8664/ebo_special.cxx  (working copy)
@@ -9476,9 +9476,6 @@
     INT P_x = REGISTER_CLASS_register_count(ISA_REGISTER_CLASS_float);
     INT local_conflicts = Find_Degree_For_TN(result, regs_in_use);
 
-    TN_MAP_Delete(conflict_map);
-    MEM_POOL_Pop(&fma_exe_pool);
-
     Get_Disassociated_FMA_TOP_Codes( alu_op, &mul_top, &arith_top );
 
     // Chained single use fma instructions produce simple live ranges
@@ -9523,6 +9520,9 @@
 
       ret_val = TRUE;
     }
+
+    TN_MAP_Delete(conflict_map);
+    MEM_POOL_Pop(&fma_exe_pool);
   }
 
   return ret_val;
------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to