From a3629d2c0e8f876ac4e2d4efe058c9502df8ba5d Mon Sep 17 00:00:00 2001 From: ARATA Mizuki Date: Tue, 17 Sep 2024 21:15:02 +0900 Subject: [PATCH] Eliminate always-inline functions/continuations when inlining --- src/cps/inline.sml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cps/inline.sml b/src/cps/inline.sml index 004552c..2da3d89 100644 --- a/src/cps/inline.sml +++ b/src/cps/inline.sml @@ -770,7 +770,8 @@ struct ) val dec = C.ValDec {exp = exp, results = [SOME result]} in - (env, cenv, subst, csubst, dec :: acc) + if alwaysInline then (env, cenv, subst, csubst, acc) + else (env, cenv, subst, csubst, dec :: acc) end | _ => (case (C.isDiscardable exp, results) of @@ -825,7 +826,8 @@ struct val dec = C.ContDec {name = name, params = params, body = body, attr = attr} in - (env, cenv, subst, csubst, dec :: acc) + if alwaysInline then (env, cenv, subst, csubst, acc) + else (env, cenv, subst, csubst, dec :: acc) end | C.RecContDec defs => let