[Haskell] Expecting more inlining for bit shifting
Simon Peyton-Jones
simonpj at microsoft.com
Wed Oct 11 06:23:59 EDT 2006
| Do you think it should be that general? I was thinking the discount
| should only apply in the situtation where a case expression contains
an
| expression with one free varaible that is a function argument, and all
| operations are primitive.
Well, if you see
x >=# 0
then it'd be good to inline if argument x was bound to a literal, even
if the >= is not scrutinised by a case. Why? Because then we can
constant-fold it away. But perhaps the discount should be smaller?
| So, is there a way of deciding if a primitive op will be rewritten if
all
| its arguements are given?
The constant-folding rules for the primops are all in
prelude/PrelRules.lhs
in function primOpRules. Please add more rules. For example, I see
that
x +# 0 = x
is not in there!
Simon
More information about the Glasgow-haskell-users
mailing list