From 38292c2d6a73e67789637556c21c4f674c39a769 Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Wed, 19 Jun 2024 14:08:03 +0200 Subject: [PATCH] inline immediate values --- .../Compiler/Core/Transformation/Optimize/Inlining.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Juvix/Compiler/Core/Transformation/Optimize/Inlining.hs b/src/Juvix/Compiler/Core/Transformation/Optimize/Inlining.hs index 266a025bfb..9c54e4ac21 100644 --- a/src/Juvix/Compiler/Core/Transformation/Optimize/Inlining.hs +++ b/src/Juvix/Compiler/Core/Transformation/Optimize/Inlining.hs @@ -55,7 +55,13 @@ convertNode inlineDepth recSyms md = dmapL go Just InlineFullyApplied | argsNum == 0 -> def Just (InlinePartiallyApplied 0) -> def Just InlineAlways -> def - _ -> node + Just InlineNever -> node + _ + | not (HashSet.member _identSymbol recSyms) + && isImmediate md def -> + def + | otherwise -> + node where ii = lookupIdentifierInfo md _identSymbol pi = ii ^. identifierPragmas . pragmasInline