<div dir="ltr">Salut,<div><br></div><div>Am vazut un mesaj pe lista de discutii unde era interzisa in mod special functia: <b>ConstantFoldInstruction.</b></div><div><br></div><div><br></div><div>Eu vreau sa folosesc functia <b>ConstantFoldCompareInstOperands[1]</b>. Din cate am vazut pe cod, nu aplica propagari de constante, ci doar compara constante. </div><div>Mai exact doresc sa o folosesc pentru instructiunile de tipul <b>ICMPINT </b>avand ambii operanzi <b>ConstantInt (verific toate conditiile inainte de apel)</b>, pentru a evalua rezultatul unei astfel de comparatii. Doresc sa folosesc aceasta functie intrucat sunt mai multe tipuri de comparatii (<, >, signed, unsigned) si nu cred ca scopul temei este sa verificam noi toate cazurile.</div><div>"<span style="white-space:pre-wrap">Daca modifica cod, nu aveti voie sa folositi" => Functia doar imi returneaza un Constant*  (operanzii sunt deja in forma finala), eu modific de mana codul (AST-ul) astfel incat sa scot instructiunea icmp si rezultatul ei sa poata fi folosit in locurile corespunzatoare.</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Este OK aceasta abordare sau trebuie sa scriu si logica din spatele </span><b>ConstantFoldCompareInstOperands?</b></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Multumesc,</span></div><div><span style="white-space:pre-wrap">Darius Neatu</span></div><div><span style="white-space:pre-wrap">341C3</span></div><div><br></div><div>[1] <a href="http://llvm.org/doxygen/ConstantFolding_8cpp_source.html">http://llvm.org/doxygen/ConstantFolding_8cpp_source.html</a></div><div><br></div></div>