| 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
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to