Changeset: 0276d6b12a9b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0276d6b12a9b
Modified Files:
monetdb5/optimizer/opt_deadcode.c
Branch: default
Log Message:
Avoid append instructions to disappear
Calling this optimizer after a multiplex expansion
could lead to removal of append() instructions.
The test showing it div_zero.Bug-3742.
diffs (14 lines):
diff --git a/monetdb5/optimizer/opt_deadcode.c
b/monetdb5/optimizer/opt_deadcode.c
--- a/monetdb5/optimizer/opt_deadcode.c
+++ b/monetdb5/optimizer/opt_deadcode.c
@@ -63,7 +63,9 @@ OPTdeadcodeImplementation(Client cntxt,
}
if ( getModuleId(p) == batRef && isUpdateInstruction(p) &&
!p->barrier){
/* bat.append and friends are intermediates that need
not be retained
- * unless they are used */
+ * unless they are not used outside of an update */
+ if( varused[getArg(p,1)] > 1 )
+ varused[getArg(p,0)]++; // force keeping it
} else
if (hasSideEffects(mb, p, FALSE) || !isLinearFlow(p) ||
(p->retc == 1 && mb->unsafeProp) || p->barrier
/* ==side-effect */){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list