Ian, I'd love a little guidance with this patch:
Thu Oct 21 13:08:53 BST 2010 Ian Lynagh
* Use takeUniqFromSupply in emitProcWithConvention
We were using the supply's unique, and then passing the same supply to
initUs_, which sounds like a bug waiting to happen.
{
hunk ./compiler/codeGen/StgCmmMonad.hs 607
- ; let (offset, entry) = mkEntry (mkBlockId $ uniqFromSupply us) conv args
- blks = initUs_ us $ lgraphOfAGraph $ entry <*> blocks
+ ; let (uniq, us') = takeUniqFromSupply us
+ (offset, entry) = mkEntry (mkBlockId uniq) conv args
+ blks = initUs_ us' $ lgraphOfAGraph $ entry <*> blocks
}
The new codegen has this hunk instead:
; let (offset, entry) = mkCallEntry conv args
blks = initUs_ us $ lgraphOfAGraph $ entry <*> blocks
and it's not clear to me if this circumvents the previous bug
or mkCallEntry needs to be modified to expose the new supply.
Edward