[project @ 2003-09-23 15:09:09 by simonpj]
authorsimonpj <unknown>
Tue, 23 Sep 2003 15:09:09 +0000 (15:09 +0000)
committersimonpj <unknown>
Tue, 23 Sep 2003 15:09:09 +0000 (15:09 +0000)
--------------------------
     Make MachString literals a bit bigger
   --------------------------

Up to now, unboxed string literals of up to 3 characters had
size 1, which means they are inlined in place of a variable.
That seems over-eager (duplication), so I've upped their size a bit.

ghc/compiler/basicTypes/Literal.lhs

index d71bedf..edc77b7 100644 (file)
@@ -288,10 +288,12 @@ litIsDupable other         = True
 
 litSize :: Literal -> Int
 -- Used by CoreUnfold.sizeExpr
-litSize (MachStr str) = 1 + (lengthFS str `div` 4)
+litSize (MachStr str) = 1 + ((lengthFS str + 3) `div` 4)
        -- Every literal has size at least 1, otherwise
        --      f "x" 
        -- might be too small
+       -- [Sept03: make literal strings a bit bigger to avoid fruitless 
+       --  duplication of little strings]
 litSize _other       = 1
 \end{code}