From d2e2ea4b42aed69995f975f04c26ff29292346bf Mon Sep 17 00:00:00 2001 From: Thomas Norodom <thomas.norodom@student-cs.fr> Date: Thu, 27 Mar 2025 19:24:56 +0100 Subject: [PATCH] fin de constant propag sans raffinement --- .../constant_propagation.cpython-313.pyc | Bin 7512 -> 7814 bytes tp2/Pystan/config/constant_propagation.py | 29 ++++++++++-------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/tp2/Pystan/config/__pycache__/constant_propagation.cpython-313.pyc b/tp2/Pystan/config/__pycache__/constant_propagation.cpython-313.pyc index 14878ed97db2b6e13e5dc65d134c108406e75287..a61415a92a179c1a85bc691bebbbb3ca0b0af623 100644 GIT binary patch delta 1313 zcmb7EOH30{6n!)8@N4J*?Q~{n`B+-9#$S{I0Tm&EK!_Tu#hR)J4HBaAnUV^LNzoWB zX(B^j2t$O}g^Mm+=+2cpUAQo*EEtg(OwgriLX9rHZ`zSa(CA&9^X{E@@4LT@+I0Vf zd8@d%2!Xs__&mgL&&?05l!}+F<x$E<5&Q4r&8Z^>KW#ysT?maB1Fg+)v%dhLfQy0e zfx242(<N}S5<O_hIiYjNn~T{L*u}%6M<5>2tkVt`8Ui2RJ!J0LZiGyz8u=*~lFA^4 zhh8&=M#rWkGf^1H3M5@3aGAhG0?hznl4>;(iG$M`zQwtz3B1hl=QqqHvqLjO@!?qO z2VRs7DqoJLRC~o@gWQTcRF0p!@Wh;)SgEdC;p+Zme{U5w?VhA-#eSH0;UC;9DuiF! zobbpeTc{B#L!?n#PJnsH|8MQrYonw-e1&hbk!FR90j814mdr+GBJs%>i=XlC=&64Q zH)7nLQNZFQselC9$Q=Df{V`hV16?`>p!ZSh9&{W@2MLh2?&u@-2=2XiiM;{<(knL4 z_RjRi12KBt%qvuUG)B)bDq9*W#KS@*<-;+d(hplQ1TEMHE=2lam!KiP_9$y5sPCgo z8@Pu))8U~d*h-}3>M>-;t)+P#zY!XaK7emw7r-=HH(BMLc#AUl&QzmX_%CdU$_opT zxd@(=*$rNh3nT$9;&H)7y~QWR1Km(UkgSO&fik^O1G#j4`TDnQ-cB%>TYV^n4i?}Z zQS2n~O#0pbjmM)wD!bu%_@n56>EQ38-!DVFa1Q_}kdynD3Rg|el*zfy3QB1_nqv2> zydA333*BTzWzSOQD(g<M?sbbp>A@{2%OTZXwPANWu3xNw)F_|D^X0xHS0U({abR@x zh7^LMbdA6`fnfp?ftvtp#`eiENeW}$?vI+8GTEO-K+2#-NhU+Iw6l<LDBd&zO27r6 z<V1#0+D0*g!lV&U!kr<M&NF~Nn1B*B8YMj%y?|(7Oc&)dBDnyR5Hv~-W<WED=`#G) peuvZYgda?Hf3wL(@I6N@bsIl*EO1>ERi!j0+80~CA#&D6{}TjL|1JOk delta 1011 zcmZ`&K}Zx)7=CYe#@5E&Rd>dj*&TJ+)oi8GNHH`qq)kPNQkJ$f#MQ+JNquXP1gVE& zWg#XW)d&>}MJ#lxQ<qNBrJH$Z5`%^4KHzrh(*I`M^pHR7_x=BS@Bjbz{qy!=ui5R} z@p=y<upf7R%}k5$e2+x@hQ1Jk%dP+#Jd4mRck*NpMrhK5P%_HH$z-4f@Ip27SUd*1 zj*X(uUB5f|pNv?!!hsnssCx#XQK;NyH|a-6Kw*@?O^DP&lNcsGMjR1=$T)-R40-@E z8~}YQwT(}Mvw}>)yVh-_^d-~lU%Qrf8R}12)!n8Xq)VpOus)#o(*aYGA76RxD=cn? zJ2s_`gVw)`N>K~51bV*iGfvSeIf65^O`Zxe$!_@VQ~*5LyDL%Y7rDRsKCEUA0l<a) z)maaXD9yuR`{>>rl7UXp&MaBWgzp!83gWWhtKgGi2FC#$!5@_qp;Z>K0j;2IZ=Jr7 zo5<od&goa9HsB+)U2SNB7VW6XE*^7TJP*Shf|Qus8KzzPCVi!L^*&(b6sMdZ>X&nU zM*6D|H3L$1s2C8lgM@8PG1X<`z_F+BltzQcu%BKE%Hz<GDVf>#MiQ<uHYeN4nvd?r zlYV$jmAe5<qP(B_S4T!^>^uaX{t0SS3yrkqAR!Y60PTXLPd=~wCPX%b$hKcGYI4gP z{#H{~bWc$Z(U&2$LemF}p+@>CG}1l+Nn2cMZf=&Oz$Ix0^9*h<SYR*<u*Jpi&J#jt zTuUr_`C2_;As{1dQ-LqB$O>2Tn$c+?pgbG^DlC>5S#_ANF?b6B<(o^4tO}R21eA|j z2&fRV=>t@Q$ntQ!#BzZ0icN)d2_m;-RZ*>eRkH61e<?)R192{Uo4&7a!T0D^{WIwt S#*N15e0;s{H)6j1$^HVj!OepJ diff --git a/tp2/Pystan/config/constant_propagation.py b/tp2/Pystan/config/constant_propagation.py index 35561ab..32d28f8 100644 --- a/tp2/Pystan/config/constant_propagation.py +++ b/tp2/Pystan/config/constant_propagation.py @@ -100,15 +100,16 @@ class Constant_propagation(Transfer[state]): if s1 is None: return s2 elif s2 is None: return s1 else: + s=s1.copy() for var in s2: if not(var in s1): - s1[var]=s2[var] + s[var]=s2[var] elif s1[var] == abstract_value(None): - s1[var]=s2[var] + s[var]=s2[var] elif s2[var] == abstract_value(None): pass else: - s1[var]=abstract_value(None) + s[var]=abstract_value(None) return s1 @@ -124,29 +125,33 @@ class Constant_propagation(Transfer[state]): return included def tr_skip(self,s: state) -> state: - return s + return s.copy() def tr_set(self, s: state, v: str, e: ArithExpr) -> state: - s[v]=eval_aexp(s, e) - return s + s1 = s.copy() + s1[v]=eval_aexp(s, e) + return s1 def tr_test(self,s: state,c: BoolExpr) -> state: if eval_bexp(s, c) is False: - return {} + return None else: - return s + if s: + return s.copy() + else: + return s def tr_err(self,s: state,e: Expr) -> state: if isinstance(e,ArithExpr): if eval_aexp(s ,e) is not None: - return s - else: return None + else: + return s.copy() else: if isinstance(e,BoolExpr): if eval_bexp(s ,e) is not None: - return s - else: return None + else: + return s.copy() else: assert False -- GitLab