x%
% (c) The GRASP/AQUA Project, Glasgow University, 1993-1995
%
-\section[StgFuns]{Utility functions for @STG@ programs}
+\section[StgUtils]{Utility functions for @STG@ programs}
\begin{code}
#include "HsVersions.h"
-module StgFuns (
- mapStgBindeesRhs
- ) where
+module StgUtils ( mapStgBindeesRhs ) where
import StgSyn
import UniqSet
-import Unique
import Util
\end{code}
bindee in the program.
\begin{code}
-mapStgBindeesBind :: (Id -> Id) -> PlainStgBinding -> PlainStgBinding
+mapStgBindeesBind :: (Id -> Id) -> StgBinding -> StgBinding
mapStgBindeesBind fn (StgNonRec b rhs) = StgNonRec b (mapStgBindeesRhs fn rhs)
mapStgBindeesBind fn (StgRec pairs) = StgRec [ (b, mapStgBindeesRhs fn r) | (b, r) <- pairs ]
------------------
-mapStgBindeesRhs :: (Id -> Id) -> PlainStgRhs -> PlainStgRhs
+mapStgBindeesRhs :: (Id -> Id) -> StgRhs -> StgRhs
mapStgBindeesRhs fn (StgRhsClosure cc bi fvs u args expr)
- = StgRhsClosure
- cc bi
- (map fn fvs)
- u
- (map fn args)
+ = StgRhsClosure
+ cc bi
+ (map fn fvs)
+ u
+ (map fn args)
(mapStgBindeesExpr fn expr)
mapStgBindeesRhs fn (StgRhsCon cc con atoms)
= StgRhsCon cc con (map (mapStgBindeesAtom fn) atoms)
------------------
-mapStgBindeesExpr :: (Id -> Id) -> PlainStgExpr -> PlainStgExpr
+mapStgBindeesExpr :: (Id -> Id) -> StgExpr -> StgExpr
mapStgBindeesExpr fn (StgApp f args lvs)
- = StgApp (mapStgBindeesAtom fn f)
- (map (mapStgBindeesAtom fn) args)
+ = StgApp (mapStgBindeesAtom fn f)
+ (map (mapStgBindeesAtom fn) args)
(mapUniqSet fn lvs)
-mapStgBindeesExpr fn (StgConApp con atoms lvs)
- = StgConApp con (map (mapStgBindeesAtom fn) atoms) (mapUniqSet fn lvs)
+mapStgBindeesExpr fn (StgCon con atoms lvs)
+ = StgCon con (map (mapStgBindeesAtom fn) atoms) (mapUniqSet fn lvs)
-mapStgBindeesExpr fn (StgPrimApp op atoms lvs)
- = StgPrimApp op (map (mapStgBindeesAtom fn) atoms) (mapUniqSet fn lvs)
+mapStgBindeesExpr fn (StgPrim op atoms lvs)
+ = StgPrim op (map (mapStgBindeesAtom fn) atoms) (mapUniqSet fn lvs)
mapStgBindeesExpr fn (StgLet bind expr)
= StgLet (mapStgBindeesBind fn bind) (mapStgBindeesExpr fn expr)
mapStgBindeesDeflt (StgBindDefault b used expr) = StgBindDefault b used (mapStgBindeesExpr fn expr)
------------------
-mapStgBindeesAtom :: (Id -> Id) -> PlainStgAtom -> PlainStgAtom
+mapStgBindeesAtom :: (Id -> Id) -> StgArg -> StgArg
-mapStgBindeesAtom fn a@(StgLitAtom _) = a
-mapStgBindeesAtom fn a@(StgVarAtom id) = StgVarAtom (fn id)
+mapStgBindeesAtom fn a@(StgLitArg _) = a
+mapStgBindeesAtom fn a@(StgVarArg id) = StgVarArg (fn id)
\end{code}