Expose cseExpr from CSE
authorJoachim Breitner <mail@joachim-breitner.de>
Fri, 3 Feb 2017 01:28:29 +0000 (20:28 -0500)
committerJoachim Breitner <mail@joachim-breitner.de>
Sat, 4 Feb 2017 23:08:56 +0000 (18:08 -0500)
for the benefit of GHC API users who want to CSE single expressions.

Differential Revision: https://phabricator.haskell.org/D3069

compiler/simplCore/CSE.hs

index 971b3e0..21dbd07 100644 (file)
@@ -6,7 +6,7 @@
 
 {-# LANGUAGE CPP #-}
 
-module CSE (cseProgram) where
+module CSE (cseProgram, cseOneExpr) where
 
 #include "HsVersions.h"
 
@@ -373,6 +373,9 @@ tryForCSE toplevel env expr
     -- top of the replaced sub-expression. This is probably not too
     -- useful in practice, but upholds our semantics.
 
+cseOneExpr :: CoreExpr -> CoreExpr
+cseOneExpr = cseExpr emptyCSEnv
+
 cseExpr :: CSEnv -> InExpr -> OutExpr
 cseExpr env (Type t)              = Type (substTy (csEnvSubst env) t)
 cseExpr env (Coercion c)          = Coercion (substCo (csEnvSubst env) c)