Changeset: 5ddb9e5f5cc7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5ddb9e5f5cc7
Modified Files:
        sql/backends/monet5/sql_gencode.c
Branch: default
Log Message:

do not inline functions which need multiplex inside (ie first explode)


diffs (27 lines):

diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -3077,7 +3077,7 @@ backend_create_sql_func(backend *be, sql
        Client c = be->client;
        Symbol backup = NULL;
        stmt *s;
-       int i, retseen = 0, sideeffects = 0, vararg = (f->varres || f->vararg);
+       int i, retseen = 0, sideeffects = 0, vararg = (f->varres || f->vararg), 
no_inline = 0;
        sql_allocator *sa, *osa = m->sa;
 
        /* nothing to do for internal and ready (not recompiling) functions */
@@ -3175,11 +3175,12 @@ backend_create_sql_func(backend *be, sql
                InstrPtr p = getInstrPtr(curBlk, i);
                if (getFunctionId(p) == bindRef || getFunctionId(p) == 
bindidxRef)
                        continue;
-               sideeffects = sideeffects || hasSideEffects(p, FALSE) || 
(getModuleId(p) != sqlRef && isUpdateInstruction(p));
+               sideeffects = sideeffects || hasSideEffects(p, FALSE) || 
(getModuleId(p) != sqlRef && isUpdateInstruction(p)); 
+               no_inline |= (getModuleId(p) == malRef && getFunctionId(p) == 
multiplexRef);
                if (p->token == RETURNsymbol || p->token == YIELDsymbol || 
p->barrier == RETURNsymbol || p->barrier == YIELDsymbol)
                        retseen++;
        }
-       if (i == curBlk->stop && retseen == 1 && f->type != F_UNION)
+       if (i == curBlk->stop && retseen == 1 && f->type != F_UNION && 
!no_inline)
                curBlk->inlineProp =1;
        if (sideeffects)
                curBlk->unsafeProp = 1;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to