git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@276
4a8a32a2-be11-0410-ad9d-
d568d2c75423
/* do some algebraic optimizations if possible */
algebraicOpts (ic);
/* do some algebraic optimizations if possible */
algebraicOpts (ic);
- if (POINTER_GET(ic)) fixUpTypes(ic);
while (constFold(ic,cseSet));
/* small klugde */
if (POINTER_GET(ic) && !IS_PTR(operandType(IC_LEFT(ic)))) {
setOperandType(IC_LEFT(ic),
aggrToPtr(operandType(IC_LEFT(ic)),FALSE));
while (constFold(ic,cseSet));
/* small klugde */
if (POINTER_GET(ic) && !IS_PTR(operandType(IC_LEFT(ic)))) {
setOperandType(IC_LEFT(ic),
aggrToPtr(operandType(IC_LEFT(ic)),FALSE));
}
if (POINTER_SET(ic) && !IS_PTR(operandType(IC_RESULT(ic)))) {
setOperandType(IC_RESULT(ic),
}
if (POINTER_SET(ic) && !IS_PTR(operandType(IC_RESULT(ic)))) {
setOperandType(IC_RESULT(ic),
IS_ITEMP(IC_RESULT(ic)) &&
! computeOnly) {
applyToSet (cseSet,findPrevIc,ic,&pdic);
IS_ITEMP(IC_RESULT(ic)) &&
! computeOnly) {
applyToSet (cseSet,findPrevIc,ic,&pdic);
+ if (pdic && checkType(operandType(IC_RESULT(pdic)),
+ operandType(IC_RESULT(ic))) != 1)
+ pdic = NULL;
}
/* if found then eliminate this and add to*/
}
/* if found then eliminate this and add to*/