[alias-export] Remove exported ddg info for insns in unrolled loop

Andrey Belevantsev abel@ispras.ru
Wed Apr 22 15:50:00 GMT 2009


Hello,

When answering alias queries with data dependency information, we can 
disambiguate references that have nonzero distance vectors (unless we're 
doing it for modulo scheduling).  However, unrolling makes exported 
distance vectors invalid.  Fixing it the right way would be to compute 
the correct distance.  For now I've just nuked the wrong info from the 
hashtable.

Bootstrapped on x86-64 together with Jakub's patch for infamous PR39794, 
which was supposed to be the test case for the above problem kindly 
constructed by Alexander Monakov (but we found that the test case fails 
nicely even without ddg-export :), committed to alias-export branch.

Andrey

2009-04-22  Andrey Belevantsev  <abel@ispras.ru>

         Apply Jakub's patch for PR39794.
         * alias-export.c (walk_mems): New.
         (remove_exported_ddg_data): New.
         (init_ddg_info): Allow disambiguation using inter loop deps.
         * alias-export.h (remove_exported_ddg_data): Export.
         * loop-unroll.c (apply_opt_in_copies): Use it for removing saved
         ddg information from insns in unrolled loop.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-unroll-ddg-export.diff
Type: text/x-patch
Size: 3247 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20090422/4e9c0497/attachment.bin>


More information about the Gcc-patches mailing list