[commit: ghc] master: Hoopl.Collections: change right folds to strict left folds (2974b2b)

Simon Peyton Jones simonpj at microsoft.com
Mon Feb 5 11:19:24 UTC 2018


Hi Michael

Thanks for pushing forward with Hoopl and other back-end things.

Did this patch elicit any performance gains?  Or what brought it to your attention?

Do you have further plans for Hoopl and GHC's back end?

Simon

|  -----Original Message-----
|  From: ghc-commits [mailto:ghc-commits-bounces at haskell.org] On Behalf
|  Of git at git.haskell.org
|  Sent: 03 February 2018 00:56
|  To: ghc-commits at haskell.org
|  Subject: [commit: ghc] master: Hoopl.Collections: change right folds
|  to strict left folds (2974b2b)
|  
|  Repository : ssh://git@git.haskell.org/ghc
|  
|  On branch  : master
|  Link       :
|  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fghc.ha
|  skell.org%2Ftrac%2Fghc%2Fchangeset%2F2974b2b873b4bad007c619c6e32706123
|  a612428%2Fghc&data=02%7C01%7Csimonpj%40microsoft.com%7C19a7af179b224ee
|  8b74708d56aa0fa00%7Cee3303d7fb734b0c8589bcd847f1c277%7C1%7C0%7C6365321
|  61979971135&sdata=muRQGh3GHuEirDVMUgTb0JKbBUkvqceymKFQTt9eAY0%3D&reser
|  ved=0
|  
|  >---------------------------------------------------------------
|  
|  commit 2974b2b873b4bad007c619c6e32706123a612428
|  Author: Michal Terepeta <michal.terepeta at gmail.com>
|  Date:   Thu Feb 1 00:30:22 2018 -0500
|  
|      Hoopl.Collections: change right folds to strict left folds
|  
|      It seems that most uses of these folds should be strict left folds
|      (I could only find a single place that benefits from a right
|  fold).
|      So this removes the existing `setFold`/`mapFold`/`mapFoldWihKey`
|      replaces them with:
|      - `setFoldl`/`mapFoldl`/`mapFoldlWithKey` (strict left folds)
|      - `setFoldr`/`mapFoldr` (for the less common case where a right
|  fold
|        actually makes sense, e.g., `CmmProcPoint`)
|  
|      Signed-off-by: Michal Terepeta <michal.terepeta at gmail.com>
|  
|      Test Plan: ./validate
|  
|      Reviewers: bgamari, simonmar
|  
|      Reviewed By: bgamari
|  
|      Subscribers: rwbarton, thomie, carter, kavon
|  
|      Differential Revision: https://phabricator.haskell.org/D4356
|  
|  
|  >---------------------------------------------------------------
|  
|  2974b2b873b4bad007c619c6e32706123a612428
|   compiler/cmm/CmmCommonBlockElim.hs         |  4 ++--
|   compiler/cmm/CmmContFlowOpt.hs             |  6 +++---
|   compiler/cmm/CmmProcPoint.hs               | 20 ++++++++++----------
|   compiler/cmm/CmmUtils.hs                   |  6 +++---
|   compiler/cmm/Hoopl/Collections.hs          | 16 ++++++++++------
|   compiler/cmm/Hoopl/Dataflow.hs             |  8 ++++----
|   compiler/cmm/Hoopl/Graph.hs                |  6 +++---
|   compiler/cmm/Hoopl/Label.hs                |  9 ++++++---
|   compiler/nativeGen/RegAlloc/Graph/Spill.hs |  9 ++++-----
|   9 files changed, 45 insertions(+), 39 deletions(-)
|  
|  Diff suppressed because of size. To see it, use:
|  
|      git diff-tree --root --patch-with-stat --no-color --find-copies-
|  harder --ignore-space-at-eol --cc
|  2974b2b873b4bad007c619c6e32706123a612428
|  _______________________________________________
|  ghc-commits mailing list
|  ghc-commits at haskell.org
|  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h
|  askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
|  commits&data=02%7C01%7Csimonpj%40microsoft.com%7C19a7af179b224ee8b7470
|  8d56aa0fa00%7Cee3303d7fb734b0c8589bcd847f1c277%7C1%7C0%7C6365321619799
|  71135&sdata=hSeyqtbepopL%2FkSme3DPLOQQKf9WCLWsdVMh86tbx4o%3D&reserved=
|  0


More information about the ghc-devs mailing list