[don't float non-inlinable routines inward.
John Meacham <john@repetae.net>**20060720065318] hunk ./E/LetFloat.hs 156
-    let binds = G.scc $  G.newGraph [ (d,bindingFreeVars x y) | d@(x,y) <- programDs prog, x `notElem` progEntryPoints prog ] (tvrIdent . fst . fst) (idSetToList . snd)
+    let binds = G.scc $  G.newGraph [ (d,bindingFreeVars x y) | d@(x,y) <- programDs prog, x `notElem` fsts epoints ] (tvrIdent . fst . fst) (idSetToList . snd)
hunk ./E/LetFloat.hs 159
-        epoints = [ d | d@(x,_) <- programDs prog, x `elem` progEntryPoints prog ]
+        epoints = [ d | d@(x,_) <- programDs prog, (x `elem` progEntryPoints prog) || forceNoinline x || getProperty prop_INSTANCE x || getProperty prop_SPECIALIZATION x ]