OberonCore https://forum.oberoncore.ru/ |
|
E16: WITH не опт-т недостижимый код аналогично IF (эксперим) https://forum.oberoncore.ru/viewtopic.php?f=116&t=6161 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Понедельник, 13 Ноябрь, 2017 16:30 ] |
Заголовок сообщения: | E16: WITH не опт-т недостижимый код аналогично IF (эксперим) |
Код: MODULE Mod; (* W1 *) Предлагаемая поправка DevCPP.StatSeq:IMPORT Stores, Views, Models; PROCEDURE Do*; VAR int: INTEGER; s: Stores.Store; BEGIN WITH s: Views.View DO int := 1 | s: Stores.Store DO int := 2 | s: Models.Model DO int := 3 ELSE int := 4 END END Do; END Mod. Код: ELSIF sym = with THEN … e := sym = else; pos := DevCPM.startpos; IF e THEN DevCPS.Get(sym); StatSeq(s) ELSE s := NIL END ; DevCPB.Construct(Nwith, x, s); CheckSym(end); >>>> DevCPB.OptIf(x); <<<< IF e THEN x.subcl := 1 END Подробности: Код: StdCoder.Decode ..,, ..9Z0...3QwdONl9RhOO9vRbf9b8R7fJHPNGomCrlAyIhgs,CbKBhZ
xi2,CoruKu4qouqm8rtuGfa4.hOO9vRb1Y66wb8RTfQ9vQRtIdvPZHWKqtCa.E.U5UM532.5Qw dONlnayKmKKqCLLCJuGqayKm6F9vQ5nsH3.bnayKmKa2,Cor.kay4.qorGqmQCU2,CJuyKtQC9 8P9PP7ONbXmb.2.ombk5E5T0,6.,U,wnYU00.bnUGLu8ro8quGrmCLWKqt.2.YX,.,EBU.U,2. I3l6w1.0E65.Izzzzz9,6.Vzzzzz0,0Enzzzzj0.V54.Iyzzzz1Ixzzzz9,6.xzzzzz4.oQ... lzzzzzC.IT6,6.hzzzzz4.IR...Nzzzzzy.ITc,EzV,.p58.oTM.EvV2U.YRM.EyzzzzjC.Fzz zzz4.2Sc9EzVSW,IkmL,2U.EQE.EBU.6g6.I3.0E6,V.,666.UegiJYe6r.3Qwd0ZORNPNZvQR tIdHdKLq6F9vQ59.XDJ.QiiIepZhZ7F6.Zz.E.Mms,si6.,k,,UnpZHldGrwmqmGomCb.AS.c9 Ajg,0EtX.0.U6Um,,U00.umUG5.E.Y.2..ESE.8.2.2YXK96.BD03kDz41.16.Q.,BX2Ylq3,e MvG0E0.2.4.8E,9T3U.ELU.EBU.U,U.IZ.2wAC.6.V22.2c9g33xeJF,9D2.2l1k1ErC.0E.CM tL.2.0G,s10UMI.0U.UkH.0E,9T3U.ELU.EBU.U,.JFA.0E6,,.vxq3k0XL,IklbcZpi1xhhhh VphYhgmRiiQ87fJ.0ksHomO5.oZK,6.Zz.E.66,U.U4.,k8ECU.2.uxq4U34j0...RtIgciZgK BhZ,0ks,.oZ3phYp8.,cwU...36.6.zj.7GvC2VPONPNZf95uPP1GJoaqtqkayIWKJaKIEqorG qRaEIeGESpM0GJam4akYqIcyIdGJECJuy4mGEOpoKanZZUgdjZgZlRqk20JdyoVKIWKJdKIEGo remRqk2aEf4IdakouKueHEaIbGpWSoW8pR0mteHECJuy4umdwBin4aEVKoXaIbqk2akfaIeWIE CLR0Gfaqmc9EEGobqk2ak2aKrGLEenS0mMqk2aEy0mteXH,b1667uHP..8n4ak2m5gdjZAoZB, ,7FTO1.kNqk2akWmodKo4ak2a.UogV7AV3pd2hV7gcC767uPrN19eH7mayaiIU0CyIhACoruKu 8rrmKqKKtCLLCZYRcoJigZcZRiX3Ulb8l1.c95uPR9R.70,kVkk.Um,..Unp3.6F6.ZD,6.636 .M00.,..1cUi.2.44S.a30E.QEP.0.E2kTE.0.3o5U...7,,M.,.,.,tc2.0En,.1.,6.IEJ.0 ..I16.M.EJ.6.VQ.E..M.c.0.,zZPFF,E.El8.D.Fe.0.,sUK.0E.cP1UDUaB.0U.U2W.IEU.E LU.EBU.U,.J,U.2GE.kS7.E,9T66.,.,,,.B.0UJUK1,.x4.Z.0..I.6.z5h1Et.6J..Q5EN0G Jam4..Qig.CLKUZtQr,..Ef.e1.UH,u0TXv..j0C5h0u022k2EEkMkWm2M0.81KIbg,6670kac 9IyIU.UIU.U76.0E..k.86E.MMs,MK6.,k,h,6..F.z,,6.IET.0..Y22U,2.2.2YXG.6.B5.A .2U.E,J,6..EBU.U,.J,U.2m,.,.U,.,.emu.8z3U.Er0.D.n00U102.U6UzU.2.8cD.,..G00 k.U.UU.0E.OC.M.6.,.kS,E6E.EE0.,.B.0UJUL.,.e0.L.0.L2D.X1,6.C6E..W.S30E.cU., ..m10E,U.UUQIE.OC.M.s..X3.GU..0.1.3E.6EL.U.U.UuK.UUK.6.5o0E.0.BS.w,or,E.2. YE2U0e0E.c9E.c4E.k.Ue2..,6YU.Ux0UEE.0.000.O.2.f.RN.6.,US1UG.,..8.2Uz1.85.d 0.Uv.HOA,d8H,.UnZ3ktm0gA...cJ.p,.kd.R,Q5.MGB86b96HuI,dJHPNo366d8G9eHPM0a.0 041KIaAd43Yn,b8RTXn,2YI3d3,.I4g6.MHT9Nc9UUYe6h6M0.C1K290H.EOUCN1EEG2UBFL.2 .Y02.A,,U..U,IEU.kkk1kgE.0U1O1E..W.y10E.cUy.2..676.16.6.66532Ua1.4.0E.cUe. 2..c4E.k.Ue.E.0t.U..k.E,2.0C.0.0.GK,s,cG3U.6.5o0E.0.VP.w,2h,E.2.YE2U002.uG .E.c4E.k.Ue.E.076.Mj.622U.UU6.0.O.2.f.lC.2.cr.c2E..U0.,sz.Um,Ee..sCUm2YeA3 ..CLK.b99kmQiv...cJ.p,..EL.r,.a2UK,R,00U7UUUlU3Z7k2.I4gcCN1EEG2UBFL.2.Y02. A,,E.0..4E,,0.11DE.A92U.sUq.2.U6UzU.2.8cD.,..G00k.0.0.0mF,,ct.U,U.2.8c8.,. .e,2.A.c8.2UEC.6..A.6.EJK5U9.,UiV5UN,,k,,0.E2kTE.0.3o5U...7,,M.E.EE.,6.B5. A.2U..Mj.626.66,U.U4.,k8k9U..J,U9.,U9W5UlV.2.526..F.j0,6.IEU...t,,c.E.EEC8 6.B5.A.Q.Ul0.7E..,U,U06.2c9kW5Nb0E,9T.E.E,W.D.Fz,0U.2U1O,6.,UCw.y.Ok16.,6. so5.3I3U.kHE.0.p.0.4.IZ..6.V2I,,k.8c8U.2.C12.e,2.AU.Ue6s.,6YUOU,.,c8f1k3U. ktk1kmU.sUq.2.U6U9V.2.8cD.,..0H.0U.A.6.66530E.OC.M.s.AzJ6Ejv40wtO04kL4.3cU U.2.u02.e,2.yT.E.eG..0E.076.MTrS.mLT5U0CyHZiYZddphfRiiYddphfZcZRCQ.6.o66.Y 32.4EGEWKKvGomCqrGqm8LLCJoyqvCprKLtCqm0prCLISmayKmSGK4nN4nIIU1U02U.ky.cwl. ,.h.0.F.,.k.m5,s.3gwJ.0.l,,.p.0UkG.0.J,U.2GE2k.428.gD..,.B00.N,,U,Y2Y6.... .f7AHF,C.8.gD..,.h.0.F.,.k.W,,6,3gwJ.0.300.p.0.4E.6.J,U.Yr0.F.1M1s.F.eW.c. 6.v1.E.EXU.EKE.M.7,70....EPWnII..gD..,.N,,.F.,.k.4.GE20.C0.v1.E.EXU.EKE.M. 7,70....EQGnII..gD..,..2,2..1MQszjeAN76HOAN76HeAPsMTPPVXdphb3YWgdjZgW2YU2Y poaU2YU2aBIUEJeDR6.iXU2YU2YKBcG32R9Rp,.qmM8n40GE00sQp767dF58AX7AV7AVtC,N9X dBPcFZ7AV7AV7AXdC,76,76,7IfuIF86,76,NF38IHM0fNBPcFZ7A6AZdC,76,FEqobOJE00,N FYZ3ReEBV72b0hc1hV4JakUkYau2YU22,7I.,NF7OGHM0ftBPcFZ,0nOeHE00,7I.,NFbOGHM0 fdBPcFUkoau2YUEE4IWGIE0GE0W37INN9dN0H6CbtEddF5O1BeAEMaHR0GE66V066VN0HcB18A VN1BeAV,VdEp76,VUg7UUgc,3fgQf3JcEZZhAaqgf7AVsIcoga43a7IUyobyIUBocm.VNFp76, VUg7UUg6kUWJKqGOqp2aEQ6ABuEP.MAXdC,762Y1hdEFEsK9OEAaqgfgYY4RckQak2al2a7A,X tBlNAVNAV7AQa4RcBo6kMWHR0GE66JeH986,760GGOIN0HMcA1O0H6AB8Cf7A58AV7AV7AqEX. XNFp76,VUg7UUQ9308nimmMak2CoPGnOOIO0nM0HM6AaE,u1.Iap.0GZqIc0WUEG.CnMMFn7Aj 7AV7A0XB.Ia,JbU220ma.0mh.ENak2CoP.Z7AV7A0X7..Q4UUYd3BcU2YU669uIQf3J62bRBV7 6FhNBB8CHc.x,.Yau2YUEE0pb0JE0WUMFa2Ko4OIN.fdC,762YE,0W3Z6cFPcFZ,oau2YUEE03 66KIVA,f7FPcFZ,wau2YU22,dI98JHM05uAPcUZD36.636.M00U.2..AU0u06.,UVV5UNV.2.5 o4U..2,wb.E.0.326..EGE.4E.E.EEC86.B5.A.2U.E,J,6..EBU.U,.JFA.0E65.2..4.8U.E klW,,.,.vv0w.Qg9U.2U1O,0U.2.aM32UDU,K,0U.U7j.,E,,0.D,,6.I16.M.6.J,U.2GE,k. 8c8U.2.CX.E.c4E.k.0.eWU12UE0i,,M.E.emu6mk3E.0.b1D.910U1O1E..W.i20E.cUy.2.. 6A0U.A.6.66532Ua1.4.CE.AT,.QCM.TN..6.,Ui.,UO.,Uz5.2Ue2.U.2UE00.qrh3..6.6G6 .c9E.AUaU2,..Uj,UnIanoadc.5.3E.2Ux,.6.c3E.606..4Ey2.5cU.,UsU.UO.,EM7.,Ue.E .0760M.103.q5.U.U6V.Ui.,k.O0G2.....KHPaW0.3.,MT..0.O,2.W.0.U,21YU002.822.e ,2.AU.E.e0.,6j2.W.4k4k,W.I3,E,E.q5.U.U6V.Ui.,k.O0G2.....OnQaW0.E.q5.U.UUU. U6U..M.l.760M.P.9cUZj0E.s76.,UO.,.16.2Ue.G.0769c,3gwJ.0.R,0.p.0.z50EJ.E6,, .v1.E.EYE.ELU.M.B,70....Un2aoA3Bs.0U42.0ky..2.I2,U.E2E..gU3X4.v1.E.EYE.ELU .M.EW.....ENOnIoU1.6.v1.E.EFU.E2E..gUT3..v1.E.EYE.ELU.M.EW.....EOKnIoU1.6. v1.E.EKE.E2E..AU,U2.C08.gD..,.F0,.R,0U,o2Y6.....oalA33.U.gD..,..2,2..1MQ,U zzelgVXxhhNON1g7Ul24,760n4...o8cP.cIENq..b1MA2akQ5oaB.2alI52YU2eJ,0mW.f,EM 8HRUUg7UUg6mmWM0Ic3,EMG10WU28UUgc2,j,EMK166V0669uIEP.2aq.0mU.,lW2egg3HUn.P .6An,2YE,2YkA,h,.0HV.,NH.,NF1WP,PNAhNLcEdNB..6A9WUEEq2EEK2MEg3v024.Aal.0mV UUkhA641EMC1A,4101sAB0Ul2500,dGR02YYUkEN4o2242424Vl4.4nW662YB,2YPdEENqZl.K 14XkEMA,.Umg4EEeoaEE67.ftEHM09OCbdAV7AVFMg,UmAcu.,NH.,tK.cA.cAEMA,.UnA4EEe 222G0kO.ZdBV7AVFMg,Uno4EEq2EEK2iZ0,h,MB..kQeHE00,NH.,NFU,lK.24.sEp76,VUQ66 6Q91Wl.cBV7AX7AH..cBBuEPcFUoQ4EEeIb.,77.fNBHM0V,.Vl4.GnQeHEEEq2EEiZ0,ZVnAV 7Qcr.CHM0HM24H..MBVdC,762Y8h722G0U1,VtB01Vl4.KnOeHEEEq2EEi3.Gn2akVS16BV7AV 7AA,.UpQcu2YUEEm2EEKodsK82W1Y6..U4JbU220Gcy2229mYkW.oakIbU220Gc.,lWG2o6.4H R0GE66V0229eEaUpY6.8HR0GE66ZW7kN.2.Y02.A,,E.0..4E,R,2U.kkk1kg2.,6.CcB.,.60 sD,U.2.86E..UYU.AU.U.UUQIE.OC.M.6.,U0e0E..UO.,.1.eWM.2UEC.6..A.6.EJK5F4.,. s,MKE.QEU..2,w52U.E,x,6..EGE.4.2.22U.oQ.k.E.0.zj47gD7AB7A67uP,tD7AE7AC7AD7 QB7AE7gD7gA7A6jOAN76jeAN76.,NH7gC7gA7AC7gA7AA7wC7QB7QD7gE7QD7wG7QC7A9,tE7w F7AC7gE7wG7gA7AAyI01mTGMUo518V38V58VR8V,dD7wD7gE7AC7ADWH0TH01H0PI0XH0vI01m YOIE4I01GTGMVGsMGMUGMMGsUGsZGMNkSGMQGsOGMSGMEqH0LH0HH0vH0VscB7AC7ADuH0DH0v H01GRGMTG6V7VRN1P637wC7wH7A6HeF8I01H0fH01H0z2x7Vz,EQ.kbGcmYk9ZkzYkyYkvYkxY kDZkpYk0Zk,ZkDZkUw5EXGsOGMOQc24c2mQGMEGomOrV0JVumb0LuaInmGEGH0jH0lfaIeWYI2 oUgb2GVoZUIW24YsYk0dD7wAKH01mf4HEuH09YvYksYk5ZkkYkpYk0NEETI6,tJZ,UigVBwX24 c2ia2a4rFMGsNGMMGsOY5V7VTWzcDyX.7A8H0fH01XUYcZVEpZHZiVZiHhglJbBAV7AV3Z7HWn Bjh3Yx2YrBho3hUYe6,AVa2oBAV7AV7ggUIbx2YnBjhVZZhnhgv2Ykxhn3YugbUYcZpCqILCLu 4KtGLsyqtin4ak2ak2a2996d8G2Y2hAQeiwcZZicQithhdQbUQeoBgoVcQid2Y3ZdHhcUQiUIb xcHH8H,NFR8F,tCPM0Hk2GomO53mVyKrCLu8ruCKuWGbSroGLomGEWLK0mtamR0mVWqmCqpCpw qKIKKrGqIiHEGomO5w768lP8rN1HU7A7.2jiQipJgXZhUIbxMA,NFR8FPc.Hc.Hc.Pc.36FOLW .YcZRA2YBxBPM13M03M0q..cQ.00.Hk4Ikmb02.Y02.A,,U..U,IEU.kkk1kgE.0U102.U6UzU .2.8Mt,,..G00k.0.0.000E.2Ua1.4.0E.cUe.2..c4E.k.Ue2..,6Y1.0..v11... --- end of encoding --- |
Автор: | Илья Ермаков [ Понедельник, 13 Ноябрь, 2017 18:09 ] |
Заголовок сообщения: | Re: WITH не оптимизирует недостижимый код аналогично IF |
Стоит включить в сборку? |
Автор: | Trurl [ Понедельник, 13 Ноябрь, 2017 22:58 ] |
Заголовок сообщения: | Re: WITH не оптимизирует недостижимый код аналогично IF |
А зачем это нужно? На такой код скорее предупреждение выдавать надою |
Автор: | Евгений Темиргалеев [ Вторник, 14 Ноябрь, 2017 22:16 ] |
Заголовок сообщения: | Re: WITH не оптимизирует недостижимый код аналогично IF |
А для IF в аналогичном случае тоже выдавать предупреждение? Интересно, как у Вирта в Обероне-7 этот случай отрабатывается? Код: PROCEDURE Change (V: Viewer; X, Y: INTEGER; Keys: SET);
VAR ... V1: Viewers.Viewer; ... BEGIN (*Keys # {}*) ... IF V1.state > 1 THEN CASE V1 OF Viewer: IF V1.H < V1.menuH + 2 THEN dY := 0 ELSIF V1.H < V1.menuH + 2 + dY THEN dY := V1.H - V1.menuH - 2 END | Viewers.Viewer: IF V1.H < 1 + dY THEN dY := V1.H - 1 END END |
Автор: | Trurl [ Среда, 15 Ноябрь, 2017 20:11 ] |
Заголовок сообщения: | Re: WITH не оптимизирует недостижимый код аналогично IF |
Для IF это может иметь смысл, а для WITH - разве только с целью запутать читателя. |
Автор: | Евгений Темиргалеев [ Четверг, 30 Ноябрь, 2017 20:29 ] |
Заголовок сообщения: | Re: E16: WITH не оптимизирует недостижимый код аналогично IF |
Вставка оказалась ошибочной. Нужно учитывать пустой WITH и "появление" ветки ELSE после оптимизации. Код: DevCPB.Construct(Nwith, x, s); CheckSym(end); Поставил рубильник, чтобы включать, когда надо для экспериментов.
IF e THEN x.subcl := 1 END; IF (1 IN DevCPM.extOpts) & (x.left # NIL) THEN s := x.right; DevCPB.OptIf(x); IF (x.class = Nwith) & (s # x.right) THEN x.subcl := 1 END END |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |