Allow CSE'ing of work-wrapped bindings (#14186)
authorJoachim Breitner <mail@joachim-breitner.de>
Sun, 10 Sep 2017 15:10:37 +0000 (16:10 +0100)
committerJoachim Breitner <mail@joachim-breitner.de>
Tue, 12 Sep 2017 15:01:10 +0000 (11:01 -0400)
commitfe04f3783b662c52c4a0ff36b2d62a7a575998a5
tree3a49d515bc700562621bb0d97a74a89bd0d174fb
parentfe35b85a8cc72582e0f98a3059be00a9a2318a4a
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
30 files changed:
compiler/basicTypes/BasicTypes.hs
compiler/deSugar/DsBinds.hs
compiler/deSugar/DsMeta.hs
compiler/hsSyn/Convert.hs
compiler/hsSyn/HsBinds.hs
compiler/parser/Parser.y
compiler/simplCore/CSE.hs
compiler/specialise/Specialise.hs
compiler/stranal/WorkWrap.hs
compiler/typecheck/TcSigs.hs
compiler/utils/Binary.hs
testsuite/tests/roles/should_compile/Roles1.stderr
testsuite/tests/roles/should_compile/Roles14.stderr
testsuite/tests/roles/should_compile/Roles2.stderr
testsuite/tests/roles/should_compile/Roles3.stderr
testsuite/tests/roles/should_compile/Roles4.stderr
testsuite/tests/roles/should_compile/T8958.stderr
testsuite/tests/simplCore/should_compile/T13143.stderr
testsuite/tests/simplCore/should_compile/T14186.stderr
testsuite/tests/simplCore/should_compile/T3717.stderr
testsuite/tests/simplCore/should_compile/T3772.stdout
testsuite/tests/simplCore/should_compile/T4908.stderr
testsuite/tests/simplCore/should_compile/T4930.stderr
testsuite/tests/simplCore/should_compile/T7360.stderr
testsuite/tests/simplCore/should_compile/T7865.stdout
testsuite/tests/simplCore/should_compile/all.T
testsuite/tests/simplCore/should_compile/spec-inline.stderr
testsuite/tests/stranal/should_compile/T10482.stderr
testsuite/tests/stranal/should_compile/T10482a.stderr
testsuite/tests/th/TH_Roles2.stderr