Update of /cvsroot/monetdb/MonetDB5/src/optimizer
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv25100

Modified Files:
        opt_macro.mx opt_remap.mx 
Log Message:
Another case of multiplex inlining  covered. See inlineCst.mal


Index: opt_macro.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_macro.mx,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- opt_macro.mx        13 Jan 2008 15:18:35 -0000      1.34
+++ opt_macro.mx        19 Jan 2008 19:27:39 -0000      1.35
@@ -303,8 +303,8 @@
                if (q->barrier == RETURNsymbol || q->barrier == YIELDsymbol) {
                        for(n=0; n<q->retc; n++)
                                clrVarFixed(mb,getArg(ns[k],n)); /* for typing 
*/
-                       setModuleId(ns[k],NULL);
-                       setFunctionId(ns[k],NULL);
+                       setModuleId(ns[k],getModuleId(q));
+                       setFunctionId(ns[k],getFunctionId(q));
                        ns[k]->barrier = 0;
                        ns[k]->token = ASSIGNsymbol;
                }

Index: opt_remap.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_remap.mx,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- opt_remap.mx        19 Jan 2008 11:06:13 -0000      1.24
+++ opt_remap.mx        19 Jan 2008 19:27:39 -0000      1.25
@@ -157,6 +157,7 @@
        InstrPtr q,sig;
        char buf[1024];
        int i,j,k;
+       int refbat=0;
        bit *upgrade;
        Symbol s;
        s= findSymbol(  VALget(&getVar(mb, getArg(p, 1))->value),
@@ -198,10 +199,11 @@
                                goto terminateMX;
                        }
 #ifdef DEBUG_OPT_REMAP
-                       stream_printf(GDKout,"#Upgrade type %d\n",i);
+                       stream_printf(GDKout,"#Upgrade type %d %d\n",i, 
getArg(sig,i-2));
 #endif
                        setVarType(mq, i-2,newBatType(TYPE_oid, 
getArgType(mb,p,i)));
                        upgrade[getArg(sig,i-2)]= TRUE;
+                       refbat= getArg(sig,i-2);
                }
        }
 @-
@@ -254,7 +256,7 @@
                                setModuleId(q,algebraRef);
                                setFunctionId(q,projectRef);
                                q= pushArgument(mb,q, getArg(q,1));
-                               getArg(q,1)= getArg(q,0);
+                               getArg(q,1)= refbat;
                        }
                }
        }
@@ -279,6 +281,20 @@
                                                goto terminateMX;
                                        break;
                                }
+                               /* handle simple upgraded assignments as well */
+                               if ( q->token== ASSIGNsymbol &&
+                                        q->argc == 2  &&
+                                       !(isaBatType( getArgType(mq,q,1))) ){
+                                       setModuleId(q,algebraRef);
+                                       setFunctionId(q,projectRef);
+                                       q= pushArgument(mq,q, getArg(q,1));
+                                       getArg(q,1)= refbat;
+                               
+                                       
typeChecker(MCgetClient()->nspace,mq,q,TRUE);
+                                       if( q->typechk== TYPE_UNKNOWN)
+                                               goto terminateMX;
+                                       break;
+                               }
                }
        }
 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to