UFIV traversal breaking CUDA partial folds
Bugzilla Link | 1011 |
Created on | Aug 01, 2012 17:09 |
Resolution | FIXED |
Resolved on | Aug 02, 2012 16:24 |
Version | svn |
OS | All |
Architecture | PC |
Extended Description
Compiling SaC code with fold with-loop for the CUDA backend with the CUDA partial folding optimization fails as of rev 18118. I got this error in previous revisions, but I was working on the cudahybrid backend so I though the issue was specific to that. It does not seem to be the case however: ------------------------------------------------ $ sac2c relax_fix.sac -target MBpro_cuda -dopfd ... ** 16: Introducing memory management instructions ... **** Unshare index vectors in WL-folds ... **** Propagating constants ... **** CUDA Flatten generators ... **** AUD/SCL distinction ... **** Making copy operations explicit ... **** Introducing explicit allocation statements ... memory/alloc.c:1010 Assertion "( NODE_TYPE( prf) == N_prf && PRF_PRF( prf) == F_cond_wl_assign)" failed! Result of partial fold is not defined by F_cond_wl_assign ------------------------------------------------ I briefly looked into this and the result of the partial fold is now a F_unshare prf which was introduced by the UFIV traversal. I don't know if the assertion is now outdated or if this condition is really necessary. I'm assigning this to Jara, as he committed UFIV according to the svn logs.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information