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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list