When a value Id comes from hi-boot, insert noinline. Fixes #10083.
ClosedPublic

Authored by ezyang on May 12 2016, 10:37 PM.

Diff Detail

Repository
rGHC Glasgow Haskell Compiler
Branch
ghc-quick2
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 9587
Build 11632: arc lint + arc unit
ezyang updated this revision to Diff 7565.May 12 2016, 10:37 PM
ezyang retitled this revision from to When a value Id comes from hi-boot, insert noinline. Fixes #10083..
ezyang edited the test plan for this revision. (Show Details)
ezyang added a reviewer: simonpj.
ezyang updated the Trac tickets for this revision.
ezyang updated this object.
ezyang updated this revision to Diff 7566.May 12 2016, 10:49 PM
ezyang edited edge metadata.

Add a NOTE

ezyang updated this revision to Diff 7567.May 12 2016, 10:55 PM
ezyang edited edge metadata.

Revert parked fix.

ezyang updated this revision to Diff 7568.May 13 2016, 12:09 AM
ezyang edited edge metadata.

Mark test as passing

bgamari requested changes to this revision.May 14 2016, 4:11 AM
bgamari edited edge metadata.

Good but clarification in the comment would be nice.

compiler/typecheck/TcExpr.hs
1587

This somehow feels like a rather hacky way to accomplish this but I guess that's the way it is.

1656

Could you add some ticks or something around the inline code bits here? It's currently rather tough to read.

This revision now requires changes to proceed.May 14 2016, 4:11 AM
ezyang added inline comments.May 16 2016, 6:50 PM
compiler/typecheck/TcExpr.hs
1587

Maybe Simon thinks there's a better way to do it. When we chatted about it it was suggested that adding this during typechecking was the "most logical place".

ezyang updated this revision to Diff 7627.May 17 2016, 1:33 PM
ezyang edited edge metadata.

Improve punctuation in note

ezyang marked an inline comment as done.May 17 2016, 1:34 PM

OK comment twiddled.

ezyang updated this revision to Diff 7677.May 21 2016, 3:43 AM
ezyang edited edge metadata.

use the new strategy

Don't merge until we fix Trac #12076

simonpj edited edge metadata.May 23 2016, 2:48 AM

Make sure the Note is referred to from all the places where it is relevant; eg defn of BootUnfolding, defn of noinline etc

compiler/iface/MkIface.hs
1844 ↗(On Diff #7677)

Refer to the Note here

1892 ↗(On Diff #7677)

in the unfolding of eqSR in SR.hi, replace eqRSR with noinline eqRSR.

This means that when GHC inlines eqSR it will not also inline eqRSR, exactly as would have been the case if foo had been defined in SR.hs.

simonpj accepted this revision.May 23 2016, 2:48 AM
simonpj edited edge metadata.
bgamari requested changes to this revision.May 24 2016, 4:56 AM
bgamari edited edge metadata.

Bumping out of review queue due to @simonpj's comments.

This revision now requires changes to proceed.May 24 2016, 4:56 AM
ezyang marked 2 inline comments as done.Jun 6 2016, 1:09 PM

OK comments updated

This revision was automatically updated to reflect the committed changes.