<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">When faced with</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">VAR a := FIRST(INTEGER) + 1;</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">VAR b := LAST(INTEGER) + 1;</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">VAR c := LAST(INTEGER) + 1 - 1;</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">VAR d := (a > 0);</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">I would like backends to optimize initialization a,</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">not optimize initialization of b,</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">and probably not optimize initialization of c,</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">and hopefully optimize initialization of d, but that is more</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">difficult in the C backend.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">Fold constants when it is obviously safe.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">Do not fold constants when there is a chance of overflow -- even</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">at intermediate points of the expression.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">This is why I believe TIntN is useful.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">I bring this up because I'm about to add constant folding to M3C.m3.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">And to introduce use of TIntN.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">Which Tony has insisted is wrong, i.e. use in M3x86.m3.</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"><br></font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif">Thanks,</font></div><div style="font-family: Times; font-size: medium; "><font face="Calibri, sans-serif"> - Jay</font></div> </div></body>
</html>