Increase the size of a string literal; cures a simplifier loop
when an application (f "x") appeared to have size 1, and so was
inlined repeatedly. The problem was that "x" appeared to have
size 0.
litIsDupable other = True
litSize :: Literal -> Int
litIsDupable other = True
litSize :: Literal -> Int
- -- used by CoreUnfold.sizeExpr
-litSize (MachStr str) = lengthFS str `div` 4
+-- Used by CoreUnfold.sizeExpr
+litSize (MachStr str) = 1 + (lengthFS str `div` 4)
+ -- Every literal has size at least 1, otherwise
+ -- f "x"
+ -- might be too small
litSize _other = 1
\end{code}
litSize _other = 1
\end{code}