From 44a1d9918fb2ed8e0101fb33abd9536835b9d409 Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Wed, 30 Apr 2025 12:09:32 +0200 Subject: [PATCH] add brLLVM labelWhile --- a.out | Bin 0 -> 15848 bytes src/main/java/TP2/asd/toLLVM_Visitor.java | 2 ++ tests/fragment1/while1 | Bin 15848 -> 15848 bytes tests/fragment1/while2 | Bin 0 -> 15848 bytes tests/testsAdvanced/carre | Bin 0 -> 16080 bytes tests/testsAdvanced/diverge | Bin 0 -> 16000 bytes tests/testsAdvanced/divergeDifficile | Bin 0 -> 16016 bytes 7 files changed, 2 insertions(+) create mode 100755 a.out create mode 100755 tests/fragment1/while2 create mode 100755 tests/testsAdvanced/carre create mode 100755 tests/testsAdvanced/diverge create mode 100755 tests/testsAdvanced/divergeDifficile diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..f0013e8fe0e3b14280a5f1b9d9ee675723b89776 GIT binary patch literal 15848 zcmeHOYit}>6~4QP8>b-H?Ze%j zC3Y1RgImc~6e;BgPzj{)2Lvq=R7I)~5{`m`K^1EFfhsB?3sK=#JRFsWfso~#ne(m3 zqqTw}!LNI*o$uc7obTQ{XYS74@!b3Q{-J?*ET)h)siTTZ$wa^;#W2w&8G@ubthUi{ zm->LZkII{UF0dy9AZw7`jIYO9;WrVou8A{M@R5L4K=hE2bsMFnn!o~7avrSnO;QFA zoR$WF;4AGJ(qaT(6B-!Sacq<+4oBBxLgLaS2ptz$mk?b-binUPKY@rR$AmwJC7w|< z$i~U=k4i;#=S3IAKJf=~8=TI*?WOLey{AOC+3>4TQ9KaP3W)YTMmj&9V!s>UGM|z5 zHo6W9@fVcvs)L#INLS~-CtyVVuJ(g8micOi8HG3_6B@z1O7qcAFWc4vTcgss9p4&f@f!)bdH$ODaRg5 z=bTLX8CS8Hx#sv}1*=Klo)JVs^iFUCh{NBVw_I*&KzUVY)q6y`YH;UvlT58oGKd%)L5 z_$8^ZHYs+Iqr7k|Aov>cH9=Yo@!{+KMu-o39w^=n@jQNzmO?y_7oBtjbOdw+bOdw+ zbOdw+bOdw+szu*d`U!mY2rrclWL7xqma=kC9oG_Mfw6yWiypYis^(Z>x2w`#$2A_m<1$N~$CF_*8aN~|l<7(@zT&SH<$95dq*U{|1K4d+&dzJj~u8oTR zJ2{VVj{0$g37vEVbOdw+bOdw+bOdw+bOdw+bOdw+bOi1x0$9(8^@~`Wh&7#CQLC(P z+$QCWtb=?Qc3BU}FG4xt8E!{VR9G*`&xo90|LdJ{p37Hdkt5bFp67>AO2L{}r545h zzJOM9f)5Bb2{sA>uy%4;)<o7aa)|Rf4Uu=K2z0+*% z+$;1(H3dA!W3#$dj(Tx?V`RA~0WrjZ*AZ9q-$i^})u~Atf8wqT;jc#c4&gDL;Xg>3 zn0i zL3~4;?pl#?tIm!Vyf!mWE8CrswCy?Liio0D8XGf5)!Hg}+soRcybiudo~gV&p2?3m z89U|W3q{*0O{vj*b~597Zpv(}?!hbY)3#G6IMcS9^9s{ytl(r_J5|bNr%4hj+2rZ1 zbG_y?~Jlf44ppSGi0A0 z7&zNMY!CMwAL=JXbbmk++W_vi^xsW6o}>KJpjx;P>;s^}`b`0Ls+hMYoLq`G3=Ezo zuT(l`mx^vm(V5f19w`<@D?1culL5|%cOO*UQm}p>L#5lid%+JF?fEHAXFX?x&?^Ku zfm}LATNx&mnag{wIi4$-lZE`GTkxhs)JQ2!`%cm+p?Z!Fw(xlH-6x#lgfdgpIcg$6 zuMk*1=N5|Td~RLACR@SHI4n>mUrl9BW;}B|PZ`ghq9cz6a?1NbHQfoh{u3#Zq7+Dj zfexfmJ3A#Vn1m@bJIqJkKlWt3&tXAT`PF2N3fLG5fyA zGk%ah{M!%xVbKE(vV{}o1>ku5TUdWy^uT5~3gW&5nty-7di?$Y4LAx$^&cnxZ#0)c z|1n2Yik#fk)F;MXJiRxtq4UsQlH@S72RQuM(6kqd@)QQylEJ$~PT zcrJi{bo{;|`pVqH5KqCVKgz%#iXPVw^Bv#;sSW@g%8L)u?Icof!HUC{h&PlIiX!#$8QkFml%5N zM_V|^-b(EWpmKyB_#Ropddw@AMUVRgDu51nJEB)f@oWtc{S>y+f0X0YIM;>#V;+_e zJ=%dk_cffh5W$?dS4`0FuP{Ld`Y>Ybg1Z|m@S(sfaToo60Pa1Y&;S4c literal 0 HcmV?d00001 diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index 9a90f71..e02f95a 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -340,6 +340,8 @@ public class toLLVM_Visitor implements ProgramVisitor, String labelWhile = "while"+h.getNewIdLabel(); String labelDo = "do"+h.getNewIdLabel(); String labelDone = "done"+h.getNewIdLabel(); + + l.add(new BrLLVMImp(labelWhile)); l.add(new LabelLLVMImp(labelWhile)); InstrAndVal temp = instr.e().accept(this,h); //retourne les instructionz pour obtenir le résultat de l'expression ainsi que la variable contenant le résultat final diff --git a/tests/fragment1/while1 b/tests/fragment1/while1 index 3b5dc3f4454be3cadd6ebf863c1ac80bb857af29..43b8db4b75868743b5f98bc37c37fa6c77eebb11 100755 GIT binary patch delta 117 zcmaD+{i1pU2P0=BBLf&jZWd$=XA(K~WZ!EI1(n}T%bB;APb=j3vGkq7<{IWLyo@g= z>j+9P1J!PJ5!}KzNns76YnZq2PBs-3 z+3X{@g>Q0z0oP6~4QP8>b-H?Ze%j zC3Y1RgImc~6e;BgPzj{)2Lvq=R7I)~5{`m`K^1EFfhsB?3sK=#JRFsWfso~#ne(m3 zqqTw}!LNI*o$uc7obTQ{XYS74@!b3Q{-J?*ET)h)siTTZ$wa^;#W2w&8G@ubthUi{ zm->LZkII{UF0dy9AZw7`jIYO9;WrVou8A{M@R5L4K=hE2bsMFnn!o~7avrSnO;QFA zoR$WF;4AGJ(qaT(6B-!Sacq<+4oBBxLgLaS2ptz$mk?b-binUPKY@rR$AmwJC7w|< z$i~U=k4i;#=S3IAKJf=~8=TI*?WOLey{AOC+3>4TQ9KaP3W)YTMmj&9V!s>UGM|z5 zHo6W9@fVcvs)L#INLS~-CtyVVuJ(g8micOi8HG3_6B@z1O7qcAFWc4vTcgss9p4&f@f!)bdH$ODaRg5 z=bTLX8CS8Hx#sv}1*=Klo)JVs^iFUCh{NBVw_I*&KzUVY)q6y`YH;UvlT58oGKd%)L5 z_$8^ZHYs+Iqr7k|Aov>cH9=Yo@!{+KMu-o39w^=n@jQNzmO?y_7oBtjbOdw+bOdw+ zbOdw+bOdw+szu*d`U!mY2rrclWL7xqma=kC9oG_Mfw6yWiypYis^(Z>x2w`#$2A_m<1$N~$CF_*8aN~|l<7(@zT&SH<$95dq*U{|1K4d+&dzJj~u8oTR zJ2{VVj{0$g37vEVbOdw+bOdw+bOdw+bOdw+bOdw+bOi1x0$9(8^@~`Wh&7#CQLC(P z+$QCWtb=?Qc3BU}FG4xt8E!{VR9G*`&xo90|LdJ{p37Hdkt5bFp67>AO2L{}r545h zzJOM9f)5Bb2{sA>uy%4;)<o7aa)|Rf4Uu=K2z0+*% z+$;1(H3dA!W3#$dj(Tx?V`RA~0WrjZ*AZ9q-$i^})u~Atf8wqT;jc#c4&gDL;Xg>3 zn0i zL3~4;?pl#?tIm!Vyf!mWE8CrswCy?Liio0D8XGf5)!Hg}+soRcybiudo~gV&p2?3m z89U|W3q{*0O{vj*b~597Zpv(}?!hbY)3#G6IMcS9^9s{ytl(r_J5|bNr%4hj+2rZ1 zbG_y?~Jlf44ppSGi0A0 z7&zNMY!CMwAL=JXbbmk++W_vi^xsW6o}>KJpjx;P>;s^}`b`0Ls+hMYoLq`G3=Ezo zuT(l`mx^vm(V5f19w`<@D?1culL5|%cOO*UQm}p>L#5lid%+JF?fEHAXFX?x&?^Ku zfm}LATNx&mnag{wIi4$-lZE`GTkxhs)JQ2!`%cm+p?Z!Fw(xlH-6x#lgfdgpIcg$6 zuMk*1=N5|Td~RLACR@SHI4n>mUrl9BW;}B|PZ`ghq9cz6a?1NbHQfoh{u3#Zq7+Dj zfexfmJ3A#Vn1m@bJIqJkKlWt3&tXAT`PF2N3fLG5fyA zGk%ah{M!%xVbKE(vV{}o1>ku5TUdWy^uT5~3gW&5nty-7di?$Y4LAx$^&cnxZ#0)c z|1n2Yik#fk)F;MXJiRxtq4UsQlH@S72RQuM(6kqd@)QQylEJ$~PT zcrJi{bo{;|`pVqH5KqCVKgz%#iXPVw^Bv#;sSW@g%8L)u?Icof!HUC{h&PlIiX!#$8QkFml%5N zM_V|^-b(EWpmKyB_#Ropddw@AMUVRgDu51nJEB)f@oWtc{S>y+f0X0YIM;>#V;+_e zJ=%dk_cffh5W$?dS4`0FuP{Ld`Y>Ybg1Z|m@S(sfaToo60Pa1Y&;S4c literal 0 HcmV?d00001 diff --git a/tests/testsAdvanced/carre b/tests/testsAdvanced/carre new file mode 100755 index 0000000000000000000000000000000000000000..860eed46058e28c7427f786f3840c3f77ff020ec GIT binary patch literal 16080 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 literal 0 HcmV?d00001 diff --git a/tests/testsAdvanced/divergeDifficile b/tests/testsAdvanced/divergeDifficile new file mode 100755 index 0000000000000000000000000000000000000000..be8ec84245b2a12ab0f50c0a2515694e5cfa0f0f GIT binary patch literal 16016 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 TtOlO`*3$oEzwfpEWAy(7RQ%J# literal 0 HcmV?d00001