From: Simon Peyton Jones Date: Sat, 11 Jun 2011 13:21:39 +0000 (+0100) Subject: Comments only X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=769f5c90a96742beec5e1870e68b3c7f21d9e573 Comments only --- diff --git a/compiler/coreSyn/CoreUtils.lhs b/compiler/coreSyn/CoreUtils.lhs index 4146b62..19ac62f 100644 --- a/compiler/coreSyn/CoreUtils.lhs +++ b/compiler/coreSyn/CoreUtils.lhs @@ -592,6 +592,12 @@ exprIsCheap' good_app other_expr -- Applications and variables go_pap args = all (exprIsCheap' good_app) args -- Used to be "all exprIsTrivial args" due to concerns about -- duplicating nested constructor applications, but see #4978. + -- The principle here is that + -- let x = a +# b in c *# x + -- should behave equivalently to + -- c *# (a +# b) + -- Since lets with cheap RHSs are accepted, + -- so should paps with cheap arguments -------------- go_primop op args = primOpIsCheap op && all (exprIsCheap' good_app) args