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

Reply via email to