projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8f877d3
)
[project @ 2001-11-22 12:22:42 by simonpj]
author
simonpj
<unknown>
Thu, 22 Nov 2001 12:22:42 +0000
(12:22 +0000)
committer
simonpj
<unknown>
Thu, 22 Nov 2001 12:22:42 +0000
(12:22 +0000)
Inlining pragma buglet
ghc/compiler/simplCore/SimplMonad.lhs
patch
|
blob
|
history
diff --git
a/ghc/compiler/simplCore/SimplMonad.lhs
b/ghc/compiler/simplCore/SimplMonad.lhs
index
cfd606d
..
deae477
100644
(file)
--- a/
ghc/compiler/simplCore/SimplMonad.lhs
+++ b/
ghc/compiler/simplCore/SimplMonad.lhs
@@
-868,7
+868,7
@@
gentle we are being.
activeInline :: SimplEnv -> OutId -> OccInfo -> Bool
activeInline env id occ
= case getMode env of
activeInline :: SimplEnv -> OutId -> OccInfo -> Bool
activeInline env id occ
= case getMode env of
- SimplGently -> isOneOcc occ
+ SimplGently -> isAlwaysActive prag && isOneOcc occ
-- No inlining at all when doing gentle stuff,
-- except for things that occur once
-- The reason is that too little clean-up happens if you
-- No inlining at all when doing gentle stuff,
-- except for things that occur once
-- The reason is that too little clean-up happens if you
@@
-884,7
+884,9
@@
activeInline env id occ
-- and they are now constructed as Compulsory unfoldings (in MkId)
-- so they'll happen anyway.
-- and they are now constructed as Compulsory unfoldings (in MkId)
-- so they'll happen anyway.
- SimplPhase n -> isActive n (idInlinePragma id)
+ SimplPhase n -> isActive n prag
+ where
+ prag = idInlinePragma id
-- Belongs in BasicTypes; this frag occurs in OccurAnal too
isOneOcc (OneOcc _ _) = True
-- Belongs in BasicTypes; this frag occurs in OccurAnal too
isOneOcc (OneOcc _ _) = True