summaryrefslogtreecommitdiff
path: root/compiler/utils/Binary.hs
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2017-09-10 16:10:37 +0100
committerJoachim Breitner <mail@joachim-breitner.de>2017-09-12 11:01:10 -0400
commitfe04f3783b662c52c4a0ff36b2d62a7a575998a5 (patch)
tree3a49d515bc700562621bb0d97a74a89bd0d174fb /compiler/utils/Binary.hs
parentfe35b85a8cc72582e0f98a3059be00a9a2318a4a (diff)
downloadhaskell-fe04f3783b662c52c4a0ff36b2d62a7a575998a5.tar.gz
Allow CSE'ing of work-wrapped bindings (#14186)
the worker/wrapper creates an artificial INLINE pragma, which caused CSE to not do its work. We now recognize such artificial pragmas by using `NoUserInline` instead of `Inline` as the `InlineSpec`. Differential Revision: https://phabricator.haskell.org/D3939
Diffstat (limited to 'compiler/utils/Binary.hs')
-rw-r--r--compiler/utils/Binary.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/utils/Binary.hs b/compiler/utils/Binary.hs
index 2859033814..9254e97985 100644
--- a/compiler/utils/Binary.hs
+++ b/compiler/utils/Binary.hs
@@ -1031,14 +1031,14 @@ instance Binary RuleMatchInfo where
else return FunLike
instance Binary InlineSpec where
- put_ bh EmptyInlineSpec = putByte bh 0
+ put_ bh NoUserInline = putByte bh 0
put_ bh Inline = putByte bh 1
put_ bh Inlinable = putByte bh 2
put_ bh NoInline = putByte bh 3
get bh = do h <- getByte bh
case h of
- 0 -> return EmptyInlineSpec
+ 0 -> return NoUserInline
1 -> return Inline
2 -> return Inlinable
_ -> return NoInline