From 27e9bf83dc6aa798110339a28476e2648ccb3847 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 27 Jul 2017 20:47:17 +0200 Subject: Optimise multiple pop instructions --- Sil/Compile.icl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sil/Compile.icl b/Sil/Compile.icl index efe61cb..cad8000 100644 --- a/Sil/Compile.icl +++ b/Sil/Compile.icl @@ -54,6 +54,8 @@ where opt ['ABC'.PushI i:'ABC'.Push_b l:'ABC'.EqI:ss] = ['ABC'.EqI_b i (l-1):opt ss] opt ['ABC'.Push_b l:'ABC'.PushI i:'ABC'.EqI:ss] = ['ABC'.EqI_b i l :opt ss] opt ['ABC'.PushI i:'ABC'.Update_b 0 l:'ABC'.Pop_b n:ss] | l == n = ['ABC'.Pop_b n:'ABC'.PushI i:opt ss] + opt ['ABC'.Pop_a i:'ABC'.Pop_a j:ss] = opt ['ABC'.Pop_a (i+j):ss] + opt ['ABC'.Pop_b i:'ABC'.Pop_b j:ss] = opt ['ABC'.Pop_b (i+j):ss] opt [s:ss] = [s:opt ss] opt [] = [] -- cgit v1.2.3