diff options
author | nineonine <mail4chemik@gmail.com> | 2021-11-10 00:52:06 -0800 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-03-20 21:16:06 -0400 |
commit | c842611fc72d987519cd9fab1c351135ae93665e (patch) | |
tree | aa4365b4050a0733887a4d4f0291e6e9d52cc801 /compiler/GHC/Unit/Module/ModGuts.hs | |
parent | d45bb70178e044bc8b6e8215da7bc8ed0c95f2cb (diff) | |
download | haskell-c842611fc72d987519cd9fab1c351135ae93665e.tar.gz |
Revamp derived Eq instance code generation (#17240)
This patch improves code generation for derived Eq instances.
The idea is to use 'dataToTag' to evaluate both arguments.
This allows to 'short-circuit' when tags do not match.
Unfortunately, inner evals are still present when we branch
on tags. This is due to the way 'dataToTag#' primop
evaluates its argument in the code generator. #21207 was
created to explore further optimizations.
Metric Decrease:
LargeRecord
Diffstat (limited to 'compiler/GHC/Unit/Module/ModGuts.hs')
0 files changed, 0 insertions, 0 deletions