<html dir="ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style title="owaParaStyle"><!--P {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
--></style>
</head>
<body ocsi="x">
<div dir="ltr"><font color="#000000" size="2" face="Tahoma">Hi llvm-commits members</font></div>
<div dir="ltr"><font color="#000000" size="2" face="Tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">I think Fold() function on TargetFolder class is only called when creating constant expression.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">When return value 'Constant *CF' from ConstantFoldConstantExpression() function on Fold()</font></div>
<div dir="ltr"><font size="2" face="tahoma">is different from argument 'CE', argument 'CE' is old and redundant
</font><font size="2" face="tahoma">and this 'CE' increases </font></div>
<div dir="ltr"><font size="2" face="tahoma">use count of its operands.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">so I think redundant 'CE' has to be removed as follows:</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr">Index: include/llvm/Support/TargetFolder.h<br>
===================================================================<br>
--- include/llvm/Support/TargetFolder.h (revision 126080)<br>
+++ include/llvm/Support/TargetFolder.h (working copy)<br>
@@ -34,8 +34,11 @@<br>
   /// Fold - Fold the constant using target specific information.<br>
   Constant *Fold(Constant *C) const {<br>
     if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C))<br>
-      if (Constant *CF = ConstantFoldConstantExpression(CE, TD))<br>
+      if (Constant *CF = ConstantFoldConstantExpression(CE, TD)) {<br>
+        if (CF != CE)<br>
+          CE->destroyConstant();<br>
         return CF;<br>
+     }<br>
     return C;<br>
   }</div>
<p><font face="times new roman"></font> </p>
<div dir="ltr"><font size="2" face="Tahoma">Please review the attached patch.<br>
</font></div>
<div dir="ltr"><font size="2" face="Tahoma"></font> </div>
<div dir="ltr"><font size="2" face="Tahoma">Thank you,</font></div>
<div dir="ltr"><font size="2" face="Tahoma">Jin-Gu Kang</font></div>
<div dir="ltr"><br>
</div>
</body>
</html>