Changeset: 9fc10654e158 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9fc10654e158
Modified Files:
        monetdb5/modules/mal/mal_weld.c
        monetdb5/modules/mal/mal_weld.h
        monetdb5/modules/mal/mal_weld.mal
        monetdb5/modules/mal/mal_weld.mal.sh
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_weld.c
Branch: mal-weld
Log Message:

weld impl for batcalc.or


diffs (143 lines):

diff --git a/monetdb5/modules/mal/mal_weld.c b/monetdb5/modules/mal/mal_weld.c
--- a/monetdb5/modules/mal/mal_weld.c
+++ b/monetdb5/modules/mal/mal_weld.c
@@ -807,6 +807,13 @@ WeldBatcalcANDsignal(Client cntxt, MalBl
 }
 
 str
+WeldBatcalcORsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       (void) cntxt;
+       return WeldBatcalcBinary(mb, stk, pci, "|", "weld.batcalcadd");
+}
+
+str
 WeldBatcalcADDsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
diff --git a/monetdb5/modules/mal/mal_weld.h b/monetdb5/modules/mal/mal_weld.h
--- a/monetdb5/modules/mal/mal_weld.h
+++ b/monetdb5/modules/mal/mal_weld.h
@@ -32,6 +32,7 @@ mal_export str WeldAlgebraSelect2(Client
 mal_export str WeldAlgebraThetaselect1(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
 mal_export str WeldAlgebraThetaselect2(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
 mal_export str WeldBatcalcANDsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+mal_export str WeldBatcalcORsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 mal_export str WeldBatcalcADDsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 mal_export str WeldBatcalcSUBsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 mal_export str WeldBatcalcMULsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
diff --git a/monetdb5/modules/mal/mal_weld.mal 
b/monetdb5/modules/mal/mal_weld.mal
--- a/monetdb5/modules/mal/mal_weld.mal
+++ b/monetdb5/modules/mal/mal_weld.mal
@@ -2683,6 +2683,25 @@ pattern batcalcand(v:any_1, b:bat[:any_1
 address WeldBatcalcANDsignal
 comment "batcalcand with candidates list";
 
+pattern batcalcor(b1:bat[:any_1], b2:bat[:any_1], wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor";
+pattern batcalcor(b1:bat[:any_1], b2:bat[:any_1], s:bat[:oid], 
wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor with candidates list";
+pattern batcalcor(b:bat[:any_1], v:any_1, wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor";
+pattern batcalcor(b:bat[:any_1], v:any_1, s:bat[:oid], wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor with candidates list";
+pattern batcalcor(v:any_1, b:bat[:any_1], wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor";
+pattern batcalcor(v:any_1, b:bat[:any_1], s:bat[:oid], wstate:ptr):bat[:bit]
+address WeldBatcalcORsignal
+comment "batcalcor with candidates list";
+
 pattern language.pass(v:any_1, wstate:ptr):void
 address WeldLanguagePass
 comment "language.pass";
diff --git a/monetdb5/modules/mal/mal_weld.mal.sh 
b/monetdb5/modules/mal/mal_weld.mal.sh
--- a/monetdb5/modules/mal/mal_weld.mal.sh
+++ b/monetdb5/modules/mal/mal_weld.mal.sh
@@ -204,7 +204,7 @@ EOF
     done
 done
 
-for func in batcalclt:LT batcalcle:LE batcalceq:EQ batcalcgt:GT batcalcge:GE 
batcalcne:NE batcalcand:AND; do
+for func in batcalclt:LT batcalcle:LE batcalceq:EQ batcalcgt:GT batcalcge:GE 
batcalcne:NE batcalcand:AND batcalcor:OR; do
     name=${func#*:}
     op=${func%:*}
        cat <<EOF
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -196,6 +196,7 @@ str oidRef;
 str oltpRef;
 str openRef;
 str optimizerRef;
+str orRef;
 str pack2Ref;
 str packIncrementRef;
 str packRef;
@@ -319,6 +320,7 @@ str weldAlgebraProjectionRef;
 str weldAlgebraSelectRef;
 str weldAlgebraThetaselectRef;
 str weldBatcalcAndRef;
+str weldBatcalcOrRef;
 str weldBatcalcAddRef;
 str weldBatcalcSubRef;
 str weldBatcalcMulRef;
@@ -537,6 +539,7 @@ void optimizerInit(void)
        oltpRef = putName("oltp");
        oidRef = putName("oid");
        optimizerRef = putName("optimizer");
+       orRef = putName("or");
        openRef = putName("open");
        parametersRef = putName("parameters");
        packRef = putName("pack");
@@ -649,6 +652,7 @@ void optimizerInit(void)
        weldAlgebraSelectRef = putName("algebraselect");
        weldAlgebraThetaselectRef = putName("algebrathetaselect");
        weldBatcalcAndRef = putName("batcalcand");
+       weldBatcalcOrRef = putName("batcalcor");
        weldBatcalcAddRef = putName("batcalcadd");
        weldBatcalcSubRef = putName("batcalcsub");
        weldBatcalcMulRef = putName("batcalcmul");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -196,6 +196,7 @@ mal_export  str oidRef;
 mal_export  str oltpRef;
 mal_export  str openRef;
 mal_export  str optimizerRef;
+mal_export  str orRef;
 mal_export  str pack2Ref;
 mal_export  str packIncrementRef;
 mal_export  str packRef;
@@ -327,6 +328,7 @@ mal_export  str weldAlgebraProjectionRef
 mal_export  str weldAlgebraSelectRef;
 mal_export  str weldAlgebraThetaselectRef;
 mal_export  str weldBatcalcAndRef;
+mal_export  str weldBatcalcOrRef;
 mal_export  str weldBatcalcAddRef;
 mal_export  str weldBatcalcSubRef;
 mal_export  str weldBatcalcMulRef;
diff --git a/monetdb5/optimizer/opt_weld.c b/monetdb5/optimizer/opt_weld.c
--- a/monetdb5/optimizer/opt_weld.c
+++ b/monetdb5/optimizer/opt_weld.c
@@ -18,7 +18,7 @@
 #include "mal_instruction.h"
 #include "opt_weld.h"
 
-#define NUM_WELD_INSTR 35
+#define NUM_WELD_INSTR 36
 #define UNMARKED 0
 #define TEMP_MARK 1
 #define PERM_MARK 2
@@ -58,6 +58,7 @@ static void initWeldInstrs(void) {
        addWeldInstr(algebraRef, selectRef, weldAlgebraSelectRef);              
         /* algebra.select */
        addWeldInstr(algebraRef, thetaselectRef, weldAlgebraThetaselectRef); /* 
algebra.thetaselect */
        addWeldInstr(batcalcRef, andRef, weldBatcalcAndRef);                    
         /* batcalc.and */
+       addWeldInstr(batcalcRef, orRef, weldBatcalcOrRef);                      
                 /* batcalc.or */
        addWeldInstr(batcalcRef, plusRef, weldBatcalcAddRef);                   
         /* batcalc.+ */
        addWeldInstr(batcalcRef, minusRef, weldBatcalcSubRef);                  
         /* batcalc.- */
        addWeldInstr(batcalcRef, mulRef, weldBatcalcMulRef);                    
         /* batcalc.* */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to