projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
d8d65a2
)
Comments only
author
Simon Peyton Jones
<simonpj@microsoft.com>
Sat, 11 Jun 2011 13:21:39 +0000
(14:21 +0100)
committer
Simon Peyton Jones
<simonpj@microsoft.com>
Sat, 11 Jun 2011 13:21:39 +0000
(14:21 +0100)
compiler/coreSyn/CoreUtils.lhs
patch
|
blob
|
history
diff --git
a/compiler/coreSyn/CoreUtils.lhs
b/compiler/coreSyn/CoreUtils.lhs
index
4146b62
..
19ac62f
100644
(file)
--- 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