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