Make derived Generic/Generic1 methods from,to,from1,to1 INLINABLE
AbandonedPublic

Authored by glguy on Nov 7 2015, 1:03 PM.

Details

Reviewers
austin
bgamari
Summary

In order to achieve efficient code generation using GHC.Generics,
the transformations between the original representation and GHC.Generics
representation must be able to optimize away. While inlining of these
methods is necessary for efficient code, it is not sufficient.

This patch marks these methods as INLINABLE so that techniques that
do support efficient code generation can work across module boundaries
when from/to might not have been considered inlinable on their own by
GHC.

Diff Detail

Repository
rGHC Glasgow Haskell Compiler
Branch
master
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 6573
Build 7646: GHC Patch Validation (amd64/Linux)
Build 7645: arc lint + arc unit
glguy updated this revision to Diff 4966.Nov 7 2015, 1:03 PM
glguy retitled this revision from to Make derived Generic/Generic1 methods from,to,from1,to1 INLINABLE.
glguy updated this object.
glguy edited the test plan for this revision. (Show Details)
bgamari edited edge metadata.Nov 7 2015, 3:52 PM

Do you have an example of a program where this helped? While the reasoning sounds plausible, it would be nice to see a concrete example of improvement.

glguy abandoned this revision.Nov 7 2015, 4:36 PM

Do you have an example of a program where this helped? While the reasoning sounds plausible, it would be nice to see a concrete example of improvement.

I went back to my code where it seemed that this made the difference, but I'm actually having trouble reproducing the behavior I thought that this fixed.

Until I can reproduce the behavior I'll close this revision.