From 6812805fbdcec419a5c76ccf6fb9efddc768aa1c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 28 Aug 2020 17:37:55 -0500 Subject: [PATCH] caching previous generated polymorphic functions --- onyx | Bin 576288 -> 576584 bytes progs/wasi_test.onyx | 3 +++ src/onyxutils.c | 16 ++++++++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/onyx b/onyx index 266cba25507d8cfc8bfed300bca9711496cc217b..a68aa882e1dbab8a9cb98c3b0f70831dec24157b 100755 GIT binary patch delta 63924 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�=Lbp@hSEhzbq^!9qR{uXu^1|zHnou|_5_fX?72aS)DD_OEg8GZZ2+xs< za~;?un!LMp6qENa9a(%J0riwP3;mdPsuMVaJ_%@F&HWmhIaB}Le+V?su?y%Ke^_1d zH{RNcajIYREJgqHduXE9FGf)!#v|VKb1C>iBoaI{(d(DOC_xiFrT#Ri1ozKqdB1+e zf5VAKXFWBNkaJb2(>%0WuKyK`)eLSoh*AIB_!L5s;*lyHk5qMHnieGt!gZyvC@P(Q z+=-Kaa-dc?$csOLNCybr6gXIbH|sBb?;@8kA{BDYJ+yrt(M3} zk;J7p2U-RBF*X{QT0b&@ztWl2>yki9TkA%M3rgRFsIsZ8?i~q|bp|BOYEPD1>tPdg z5|@6DZWJRwQoJrv$LkW`Kq?9kf_Gu^(L4ebQ**>bE#iGZZ2K-+(uwD1{67+B_3zNg z%XCj6SinS?`f}YkN;)f%#!Y~oiL#N#()%a)>rhsSG$sy08rP$ePV(QoF!_|54y3Uy z5LF`A_k|^l-n+4{gmr6t2Gx$yUvT)j8%4Z9)!Xgxj3i^CO40fCJu>BvT8`eYzbI3F zE#?d_zL(`=eVcwSlW%C$@rFiO)Ys=wCwfDp2c0#l3qNo#Q;*K+cyz8es8QKEwBgaY z21vl-S1VXoCLW!0cc%cOqG@;5Q9_)9Q-yEb9)dUrr~1fIA)XTcR1XnhID6U=MsN=V z3sB~HnP>MB5yqNcBEtBq7o!&-y;&-vh_K#bIiJ;AtoZ--77<2XACb4Hk07$XOum#V z1n}UmvC#OVlKG0hj9yB$tFH(q{*$M!{Y3ciYd;}3qQ6?|L-5`~DObYv`gxe2rU(H}_c|c{g;C>q;Xn~nJU&pw6nzKT1tF%e zbzU7LVu~7r*>(LcoNkDwd&{835;$E;;B+mC(~UV%(QF9&MHe{T5a4wG#3GeU`>7#_ zK(<0CnQ*!xh(P|KoD|+=n212m4rBWeh^!utw(8H142Mhl^SBY%be+WWMu0etj~v1B z@HE|~5v+j#^!hv@)HmH*`Bx(lw={5JC`WpSBw)<|9t@`k@V{Ccv>)!UB7pZr84W-Q zy94v}#d_(nYD>U;Edlej1kBeGFkef+d@TXG^-fDmz537oGb zaK09BzFJ31z55zcpzC1AdmfcaVi=4%O8?#9oLWw8S(6!Kk(tyf!wLIn5qT{ZG3C9u7| zfBp1Aat~p9eYfSJ9Yxq)AF#cYN<~Bww$}%2FF~%7qk!%0Gmc4YuMgPX zk>H6G*j^v7y;ceqM!Lc51Gbk0v?#*%`he~IP^hL2A|J55#7I|M{XvZ(aUZa~r%2aV z{P;L5Q<41laZF-+eZcnC27l}wY_AX4-t{0^0^4f|Y_BD-y_UrG#t^R$*xqsAihP%M z8_y)R*9UCxHlkhPOU5&a?eziMn~uAthzSVW>jSp;8)6aIULU|K^ii)U+86Wz+bhDH zD1uWU6-Ftih+%xd_EI?O)?!G|2W)Q+jSoT4`^u;+v@|icTGKLqkzf>Y_AMj2;1uewwEFjf7GMY zioo_#Dl>|(y*^-jNvtG_u)RKDdnvCpim<&tV0$+pZ(0;#dwsz6Zb52Rl)(1-fbHFe z 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 delta 63468 zcmc${2UJu^&^A2XcLo7bK*{|KONgtx(eg07E9XnPSn3z8Vszb~zzx%mx=)+W)R)B@slUd$sW&6z)rjbU{C>Q; zFuDkz8L#e%9?g^D)v__Axp%zUCFWb+t)``LiRP|+eFe2o>{I@*yrp%eQY_p#7QRwX zC#PObPQ8+pdS_o0Dw>>nJvsF)vNH>}v#hJ!i}B5E)B;t9DGl3kT0N9|Tb5R}F&_S> zWoh+l%(%Y{H&D3)JdmGiVR==fg^>?#s@6}8;kBDuMkJQuJTppdS|^ylYNT$NSxWt* zb_ZTl&#B+YGPuq&SJqDL)T9>oy{mrRq!Bw~dC{bWN%_16r|)jDAm?ab(H$f9s%%II zFIB^m*7BC3L=@)q;uiB(KX%K{W2#u@wq5ST=ajRQ>{6fc#IowBuA80vxypj8)uC+z z`Oq?|OZRAXNVnn68(kdox0go#5#^*ar=goz5Wif?^0@nE&LhrQmh|#4anDog#{RST zjAEAZ12!tkjc~569umaWkLriPMLC75;X}UUS3anRhlKO1VV1i?-Z6Gdz5e+b{`)&* z`cQ%1JU@RKtlk~sZ@Dw<7~?(%)HNf%=ZS%qQ6m!=H|$d{PxrQ58dZ|M_o{zmMO-%o&R#@Dh7ha>TUK|OpXBHuzU4bE$kc(CmQSm$EBy9T^_Ml<72_FuH@H8wY+9SjjDP*Y4C>@{!ItLh z^D*AxceTTY?aJhncC9&&EhRTT;x5--F~j3;5YE)K5ihKk*&NNgJy+XpF2>zosFOE0 z;@e(Xu54b+GZdexYPGo$*UCXsSbr~PDOSWmuFKYbWMx5Wb%-tKq zc$04}`}cKV{N;9w-+@TR&umi@502zbx2gLMUgWJa)LDn>@q!uZcZX*4DW}zrhvRwT zX?5k{lf2EZYL6quxao!^?TE&ly53}lth#y=*Bqbz4@EhfrI!6^5P!BrmVJLfJ@V6grm6dWUcd%g8eWByB5f>m ztrKH&EN_0P##vLf+>JO^TOE933+t%{-Hc;x)OI&lv6<>$;K!;}ZcS$=)Wf&p*dEKr zTRS-WQQdmC8=o*+^}JVWU;8MHtx(Hm)@L=&#cowTRdR&E-S7$sf#cb-X$79(K zYMI~TxOY=^(C?ktF7@K?P1zzfBx@skY01c%$yj+ylcxtbYpmvf(ThD&KYuZs9Z)~L zsLe*Hi7#t zT-E+By*#@k8)KSN@E3K`A1(O(IQ8Mn;(S_pwcsDcojbsIo}!+iPNig)>t2L};qfW# zV~$2L)uFF~**SIIt8dsuwc6_zELxq1e}7bed))!!llW $sBt`e!$GNd53AuM_N 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 diff --git a/progs/wasi_test.onyx b/progs/wasi_test.onyx index 3dc37daa..b225c14d 100644 --- a/progs/wasi_test.onyx +++ b/progs/wasi_test.onyx @@ -280,6 +280,9 @@ main :: proc (args: []cstring) { print_u64(cast(u64) fib(20)); print("\n"); + print(add(20l, 5l)); + print(add(20l, 5l)); + print(add(20l, 5l)); print(add(20l, 5l)); print("\n"); print(cast(u64) add(20.0f, 5.0f)); diff --git a/src/onyxutils.c b/src/onyxutils.c index 7498c0ea..94e5a520 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -373,8 +373,6 @@ AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, AstCall* call) { scope_clear(pp->poly_scope); - // Currently, not going to do any cacheing - bh_arr_each(AstPolyParam, param, pp->poly_params) { AstArgument* arg = call->arguments; if (param->idx >= call->arg_count) { @@ -402,9 +400,23 @@ AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, AstCall* call) { symbol_introduce(pp->poly_scope, param->poly_sym->token, (AstNode *) raw); } + static char key_buf[1024]; + fori (i, 0, 1024) key_buf[i] = 0; + bh_table_each_start(AstNode *, pp->poly_scope->symbols); + strncat(key_buf, bh_bprintf("%s=", key), 1023); + strncat(key_buf, type_get_name(((AstTypeRawAlias *) value)->to), 1023); + strncat(key_buf, ";", 1023); + bh_table_each_end; + + if (bh_table_has(AstFunction *, pp->concrete_funcs, key_buf)) { + return bh_table_get(AstFunction *, pp->concrete_funcs, key_buf); + } + semstate.curr_scope = pp->poly_scope; AstFunction* func = (AstFunction *) ast_clone(semstate.node_allocator, pp->base_func); + bh_table_put(AstFunction *, pp->concrete_funcs, key_buf, func); + symres_function(func); if (check_function_header(func)) return NULL; if (check_function(func)) return NULL; -- 2.25.1