on master help sign in
Add an SCC for resizing during a reverse
a8e021cBryan O'Sullivan
Data/Text/Fusion.hs+1−1
@@ -130,7 +130,7 @@ reverse (Stream next s len0)
130 Done -> return (marr, (j, len-j))
130 Done -> return (marr, (j, len-j))
131 where j = i + 1
131 where j = i + 1
132 Skip s1 -> loop s1 i len marr
132 Skip s1 -> loop s1 i len marr
133− Yield x s1 | i < least -> do
133+ Yield x s1 | i < least -> {-# SCC "reverse/resize" #-} do
134 let newLen = len `shiftL` 1
134 let newLen = len `shiftL` 1
135 marr' <- A.unsafeNew newLen
135 marr' <- A.unsafeNew newLen
136 A.unsafeCopy marr 0 marr' (newLen-len) len
136 A.unsafeCopy marr 0 marr' (newLen-len) len