aboutsummaryrefslogtreecommitdiff
path: root/backend/backendconvert.icl
diff options
context:
space:
mode:
Diffstat (limited to 'backend/backendconvert.icl')
-rw-r--r--backend/backendconvert.icl150
1 files changed, 0 insertions, 150 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl
index be93abc..958c444 100644
--- a/backend/backendconvert.icl
+++ b/backend/backendconvert.icl
@@ -314,7 +314,6 @@ backEndConvertModules predefs {fe_icl = fe_icl =: {icl_name, icl_functions, icl_
# backEnd
= adjustArrayFunctions predefs fe_arrayInstances icl_functions fe_dcls varHeap (backEnd -*-> "adjustArrayFunctions")
#! (rules, backEnd)
-// MW was: = convertRules [(index, icl_functions.[index]) \\ (_, index) <- functionIndices] varHeap (backEnd -*-> "convertRules")
= convertRules predefs.[PD_DummyForStrictAliasFun].pds_ident
[(index, icl_functions.[index]) \\ (_, index) <- functionIndices]
varHeap (backEnd -*-> "convertRules")
@@ -419,80 +418,7 @@ reshuffleTypes nIclTypes dclIclConversions be
#! to` = if (to` >= nDclTypes) frm` to`
= (swap frm` to` p, swap frm to p`, swapTypes frm to be)
-/* MW changed into
-class declareVars a :: a !(!Ident, !VarHeap) -> Backender
-before it was:
-class declareVars a :: a !VarHeap -> Backender
-non trivial changes are indicated with a comment
-instance declareVars [a] | declareVars a where
- declareVars :: [a] VarHeap -> Backender | declareVars a
- declareVars list varHeap
- = foldState (flip` declareVars varHeap) list
-
-instance declareVars (Ptr VarInfo) where
- declareVars varInfoPtr varHeap
- = declareVariable BELhsNodeId varInfoPtr "_var???" varHeap // +++ name
-
-instance declareVars FreeVar where
- declareVars :: FreeVar VarHeap -> Backender
- declareVars freeVar varHeap
- = declareVariable BELhsNodeId freeVar.fv_info_ptr freeVar.fv_name.id_name varHeap
-
-instance declareVars (Bind a FreeVar) where
- declareVars :: (Bind a FreeVar) VarHeap -> Backender
- declareVars {bind_dst=freeVar} varHeap
- = declareVariable BERhsNodeId freeVar.fv_info_ptr freeVar.fv_name.id_name varHeap
-
-declareVariable :: Int (Ptr VarInfo) {#Char} VarHeap -> Backender
-declareVariable lhsOrRhs varInfoPtr name varHeap
- = beDeclareNodeId (getVariableSequenceNumber varInfoPtr varHeap) lhsOrRhs name
-
-instance declareVars (Optional a) | declareVars a where
- declareVars :: (Optional a) VarHeap -> Backender | declareVars a
- declareVars (Yes x) varHeap
- = declareVars x varHeap
- declareVars No _
- = identity
-
-instance declareVars FunctionPattern where
- declareVars :: FunctionPattern !VarHeap -> Backender
- declareVars (FP_Algebraic _ freeVars optionalVar) varHeap
- = declareVars freeVars varHeap
- o` declareVars optionalVar varHeap
- declareVars (FP_Variable freeVar) varHeap
- = declareVars freeVar varHeap
- declareVars (FP_Basic _ optionalVar) varHeap
- = declareVars optionalVar varHeap
- declareVars FP_Empty varHeap
- = identity
-
-instance declareVars Expression where
- declareVars :: Expression !VarHeap -> Backender
- declareVars (Let {let_strict_binds, let_lazy_binds, let_expr}) varHeap
- = declareVars let_strict_binds varHeap
- o` declareVars let_lazy_binds varHeap
- o` declareVars let_expr varHeap
- declareVars (Conditional {if_then, if_else}) varHeap
- = declareVars if_then varHeap
- o` declareVars if_else varHeap
- declareVars (AnyCodeExpr _ outParams _) varHeap
- = declareVars outParams varHeap
- declareVars _ _
- = identity
-
-instance declareVars TransformedBody where
- declareVars :: TransformedBody !VarHeap -> Backender
- declareVars {tb_args, tb_rhs} varHeap
- = declareVars tb_args varHeap
- o` declareVars tb_rhs varHeap
-
-instance declareVars BackendBody where
- declareVars :: BackendBody !VarHeap -> Backender
- declareVars {bb_args, bb_rhs} varHeap
- = declareVars bb_args varHeap
- o` declareVars bb_rhs varHeap
-*/
:: DeclVarsInput :== (!Ident, !VarHeap)
class declareVars a :: a !DeclVarsInput -> Backender
@@ -511,7 +437,6 @@ instance declareVars FreeVar where
declareVars freeVar (_, varHeap)
= declareVariable BELhsNodeId freeVar.fv_info_ptr freeVar.fv_name.id_name varHeap
-// MW this rule was changed non trivially
instance declareVars (Bind Expression FreeVar) where
declareVars :: (Bind Expression FreeVar) !DeclVarsInput -> Backender
declareVars {bind_src=App {app_symb, app_args=[Var _:_]}, bind_dst=freeVar} (aliasDummyId, varHeap)
@@ -553,7 +478,6 @@ instance declareVars Expression where
declareVars (Conditional {if_then, if_else}) dvInput
= declareVars if_then dvInput
o` declareVars if_else dvInput
-// MW here was a non trivial change
declareVars (AnyCodeExpr _ outParams _) (_, varHeap)
= foldState (declVar varHeap) outParams
where
@@ -937,17 +861,6 @@ adjustArrayFunctions predefs arrayInstancesRange functions dcls varHeap
adjustIclArrayInstance mapping index {fun_index}
= beAdjustArrayFunction mapping.[fun_index] index cIclModIndex
-/*
-convertRules :: [(Int, FunDef)] VarHeap -> BEMonad BEImpRuleP
-convertRules rules varHeap
-// = foldr` (beRules o flip` convertRule varHeap) beNoRules rules
- = foldl (flip` beRules) beNoRules (map (flip` convertRule varHeap) rules)
-*/
-
-/* MW was
-convertRules :: [(Int, FunDef)] VarHeap *BackEnd -> (BEImpRuleP, *BackEnd)
-convertRules rules varHeap be
-*/
convertRules :: Ident [(Int, FunDef)] VarHeap *BackEnd -> (BEImpRuleP, *BackEnd)
convertRules aliasDummyId rules varHeap be
# (null, be)
@@ -960,19 +873,13 @@ convertRules aliasDummyId rules varHeap be
= (rulesP, be)
convert [h:t] varHeap rulesP be
# (ruleP, be)
-// MW was = convertRule h varHeap be
= convertRule aliasDummyId h varHeap be
# (rulesP, be)
= BERules ruleP rulesP be
= convert t varHeap rulesP be
-/* MW was
-convertRule :: (Int,FunDef) VarHeap -> BEMonad BEImpRuleP
-convertRule (index, {fun_type=Yes type, fun_body=body, fun_pos, fun_kind, fun_symb}) varHeap
-*/
convertRule :: Ident (Int,FunDef) VarHeap -> BEMonad BEImpRuleP
convertRule aliasDummyId (index, {fun_type=Yes type, fun_body=body, fun_pos, fun_kind, fun_symb}) varHeap
-// MW was: = beRule index (cafness fun_kind) (convertTypeAlt index cIclModIndex (type /* ->> ("convertRule", fun_symb.id_name, index, type) */)) (convertFunctionBody index (positionToLineNumber fun_pos) body varHeap)
= beRule index (cafness fun_kind)
(convertTypeAlt index cIclModIndex (type /* ->> ("convertRule", fun_symb.id_name, index, type) */))
(convertFunctionBody index (positionToLineNumber fun_pos) aliasDummyId body varHeap)
@@ -995,11 +902,6 @@ convertRule aliasDummyId (index, {fun_type=Yes type, fun_body=body, fun_pos, fun
positionToLineNumber _
= -1
-/* MW was
-convertFunctionBody :: Int Int FunctionBody VarHeap -> BEMonad BERuleAltP
-convertFunctionBody functionIndex lineNumber (BackendBody bodies) varHeap
- = convertBackendBodies functionIndex lineNumber bodies varHeap
-*/
convertFunctionBody :: Int Int Ident FunctionBody VarHeap -> BEMonad BERuleAltP
convertFunctionBody functionIndex lineNumber aliasDummyId (BackendBody bodies) varHeap
= convertBackendBodies functionIndex lineNumber aliasDummyId bodies varHeap
@@ -1082,53 +984,37 @@ convertTypeArgs :: [AType] -> BEMonad BETypeArgP
convertTypeArgs args
= foldr` (beTypeArgs o convertAnnotTypeNode) beNoTypeArgs args
-/* MW was
-convertBackendBodies :: Int Int [BackendBody] VarHeap -> BEMonad BERuleAltP
-convertBackendBodies functionIndex lineNumber bodies varHeap
- = foldr (beRuleAlts o (flip (convertBackendBody functionIndex lineNumber)) varHeap) beNoRuleAlts bodies
-*/
convertBackendBodies :: Int Int Ident [BackendBody] VarHeap -> BEMonad BERuleAltP
convertBackendBodies functionIndex lineNumber aliasDummyId bodies varHeap
= foldr (beRuleAlts o (flip (convertBackendBody functionIndex lineNumber aliasDummyId)) varHeap)
beNoRuleAlts bodies
-/* MW was
-convertBackendBody :: Int Int BackendBody VarHeap -> BEMonad BERuleAltP
-convertBackendBody functionIndex lineNumber body=:{bb_args, bb_rhs=ABCCodeExpr instructions inline} varHeap
-*/
convertBackendBody :: Int Int Ident BackendBody VarHeap -> BEMonad BERuleAltP
convertBackendBody functionIndex lineNumber aliasDummyId body=:{bb_args, bb_rhs=ABCCodeExpr instructions inline} varHeap
= beNoNodeDefs ==> \noNodeDefs
-// MW was -> declareVars body varHeap
-> declareVars body (aliasDummyId, varHeap)
o` beCodeAlt
lineNumber
(convertLhsNodeDefs bb_args noNodeDefs varHeap)
(convertBackendLhs functionIndex bb_args varHeap)
(beAbcCodeBlock inline (convertStrings instructions))
-// MW was:convertBackendBody functionIndex lineNumber body=:{bb_args, bb_rhs=AnyCodeExpr inParams outParams instructions} varHeap
convertBackendBody functionIndex lineNumber aliasDummyId body=:{bb_args, bb_rhs=AnyCodeExpr inParams outParams instructions} varHeap
= beNoNodeDefs ==> \noNodeDefs
-// MW was -> declareVars body varHeap
-> declareVars body (aliasDummyId, varHeap)
o` beCodeAlt
lineNumber
(convertLhsNodeDefs bb_args noNodeDefs varHeap)
(convertBackendLhs functionIndex bb_args varHeap)
(beAnyCodeBlock (convertCodeParameters inParams varHeap) (convertCodeParameters outParams varHeap) (convertStrings instructions))
-// MW was:convertBackendBody functionIndex lineNumber body=:{bb_args, bb_rhs} varHeap
convertBackendBody functionIndex lineNumber aliasDummyId body=:{bb_args, bb_rhs} varHeap
= beNoNodeDefs ==> \noNodeDefs
-// MW was -> declareVars body varHeap
-> declareVars body (aliasDummyId, varHeap)
o` beRuleAlt
lineNumber
(convertLhsNodeDefs bb_args noNodeDefs varHeap)
(convertBackendLhs functionIndex bb_args varHeap)
-// MW was: (convertRhsNodeDefs bb_rhs varHeap)
(convertRhsNodeDefs aliasDummyId bb_rhs varHeap)
(convertRhsStrictNodeIds bb_rhs varHeap)
-// MW was: (convertRootExpr bb_rhs varHeap)
(convertRootExpr aliasDummyId bb_rhs varHeap)
convertStrings :: [{#Char}] -> BEMonad BEStringListP
@@ -1197,16 +1083,6 @@ convertVars :: [VarInfoPtr] VarHeap -> BEMonad BEArgP
convertVars vars varHeap
= foldr` (beArgs o flip` convertVarPtr varHeap) beNoArgs vars
-/* MW was
-convertRootExpr :: Expression VarHeap -> BEMonad BENodeP
-convertRootExpr (Let {let_expr}) varHeap
- = convertRootExpr let_expr varHeap
-convertRootExpr (Conditional {if_cond=cond, if_then=then, if_else=Yes else}) varHeap
- = convertConditional cond then else varHeap
- where
- convertConditional :: Expression Expression Expression VarHeap -> BEMonad BENodeP
- convertConditional cond then else varHeap
-*/
convertRootExpr :: Ident Expression VarHeap -> BEMonad BENodeP
convertRootExpr aliasDummyId (Let {let_expr}) varHeap
= convertRootExpr aliasDummyId let_expr varHeap
@@ -1217,29 +1093,21 @@ convertRootExpr aliasDummyId (Conditional {if_cond=cond, if_then=then, if_else=Y
convertConditional aliasDummyId cond then else varHeap
= beGuardNode
(convertExpr cond varHeap)
-// MW was: (convertRhsNodeDefs then varHeap)
(convertRhsNodeDefs aliasDummyId then varHeap)
(convertRhsStrictNodeIds then varHeap)
-// MW was: (convertRootExpr then varHeap)
(convertRootExpr aliasDummyId then varHeap)
-// MW was: (convertRhsNodeDefs else varHeap)
(convertRhsNodeDefs aliasDummyId else varHeap)
(convertRhsStrictNodeIds else varHeap)
-// MW was: (convertRootExpr else varHeap)
(convertRootExpr aliasDummyId else varHeap)
-// MW was:convertRootExpr (Conditional {if_cond=cond, if_then=then, if_else=No}) varHeap
convertRootExpr aliasDummyId (Conditional {if_cond=cond, if_then=then, if_else=No}) varHeap
= beGuardNode
(convertExpr cond varHeap)
-// MW was: (convertRhsNodeDefs then varHeap)
(convertRhsNodeDefs aliasDummyId then varHeap)
(convertRhsStrictNodeIds then varHeap)
-// MW was: (convertRootExpr then varHeap)
(convertRootExpr aliasDummyId then varHeap)
beNoNodeDefs
beNoStrictNodeIds
(beNormalNode (beBasicSymbol BEFailSymb) beNoArgs)
-// MW was:convertRootExpr expr varHeap
convertRootExpr _ expr varHeap
= convertExpr expr varHeap
@@ -1269,14 +1137,8 @@ defineLhsNodeDef freeVar pattern nodeDefs varHeap
(beNodeDef (getVariableSequenceNumber freeVar.fv_info_ptr varHeap) (convertPattern pattern varHeap))
(return nodeDefs)
-/* MW was
-collectNodeDefs :: Expression -> [Bind Expression FreeVar]
-collectNodeDefs (Let {let_strict_binds, let_lazy_binds})
- = let_strict_binds ++ let_lazy_binds
-*/
collectNodeDefs :: Ident Expression -> [Bind Expression FreeVar]
collectNodeDefs aliasDummyId (Let {let_strict_binds, let_lazy_binds})
-// MW was: = let_strict_binds ++ let_lazy_binds
= filterStrictAlias let_strict_binds let_lazy_binds
where
filterStrictAlias [] let_lazy_binds
@@ -1293,15 +1155,9 @@ collectNodeDefs aliasDummyId (Let {let_strict_binds, let_lazy_binds})
-> [{ strict_bind & bind_src = hd_app_args } : filterStrictAlias strict_binds let_lazy_binds]
filterStrictAlias [strict_bind:strict_binds] let_lazy_binds
= [strict_bind: filterStrictAlias strict_binds let_lazy_binds]
-// MW was:collectNodeDefs _
collectNodeDefs _ _
= []
-/* MW was
-convertRhsNodeDefs :: Expression VarHeap -> BEMonad BENodeDefP
-convertRhsNodeDefs expr varHeap
- = convertNodeDefs (collectNodeDefs expr) varHeap
-*/
convertRhsNodeDefs :: Ident Expression VarHeap -> BEMonad BENodeDefP
convertRhsNodeDefs aliasDummyId expr varHeap
= convertNodeDefs (collectNodeDefs aliasDummyId expr) varHeap
@@ -1498,12 +1354,6 @@ convertVar varInfo varHeap
= beNodeId (getVariableSequenceNumber varInfo varHeap)
getVariableSequenceNumber :: VarInfoPtr VarHeap -> Int
-/* MW was
-getVariableSequenceNumber varInfoPtr varHeap
- # (VI_SequenceNumber sequenceNumber)
- = sreadPtr varInfoPtr varHeap
- = sequenceNumber
-*/
getVariableSequenceNumber varInfoPtr varHeap
# vi = sreadPtr varInfoPtr varHeap
= case vi of