Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv23738/mil
Modified Files:
mil.c milgen.brg milprint.c
Log Message:
Implemented translation to a MIL function of the following new tijah functions.
- tijah:terms(element*) as string*
- tijah:terms(element*,node) as string*
- tijah:tf-all(string) as integer
- tijah:tf-all(string,node) as integer
- tijah:tf(element*,string) as integer
- tijah:tf(element*,string,node) as integer
- tijah:fb-terms(element*) as string*
- tijah:fb-terms(element*,node) as string*
The main MIL functions are still empty and Henning will fill te blanks.
Index: milprint.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -d -r1.98 -r1.99
--- milprint.c 5 Oct 2009 09:39:11 -0000 1.98
+++ milprint.c 4 Dec 2009 14:07:40 -0000 1.99
@@ -453,7 +453,10 @@
, [m_tj_query_handler] = "ALG_tj_query_handler"
, [m_tj_ftfun_handler] = "ALG_tj_ftfun_handler"
, [m_tj_add_fti_tape] = "ALG_tj_add_fti_tape"
- , [m_tj_docmgmt_tape ] = "ALG_tj_docmgmt_tape"
+ , [m_tj_terms ] = "ALG_tj_terms"
+ , [m_tj_tfall ] = "ALG_tj_tfall"
+ , [m_tj_tf ] = "ALG_tj_tf"
+ , [m_tj_fbterms ] = "ALG_tj_fbterms"
#endif
};
@@ -1470,7 +1473,32 @@
print_expression (n->child[5]);
milprintf (")");
break;
-
+ case m_tj_terms:
+ case m_tj_tfall:
+ case m_tj_fbterms:
+ milprintf ("%s (", ID[n->kind]);
+ print_expression (n->child[0]);
+ milprintf (", ");
+ print_expression (n->child[1]);
+ milprintf (", ");
+ print_expression (n->child[2]);
+ milprintf (", ");
+ print_expression (n->child[3]);
+ milprintf (")");
+ break;
+ case m_tj_tf:
+ milprintf ("%s (", ID[n->kind]);
+ print_expression (n->child[0]);
+ milprintf (", ");
+ print_expression (n->child[1]);
+ milprintf (", ");
+ print_expression (n->child[2]);
+ milprintf (", ");
+ print_expression (n->child[3]);
+ milprintf (", ");
+ print_expression (n->child[4]);
+ milprintf (")");
+ break;
#endif
default:
debug_output; /* Print MIL code so far when in debug mode. */
Index: mil.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/mil.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- mil.c 21 Oct 2009 10:03:51 -0000 1.84
+++ mil.c 4 Dec 2009 14:07:39 -0000 1.85
@@ -2140,6 +2140,30 @@
return wire6 (m_tj_docmgmt_tape, a, b, c, d, e, f);
}
+PFmil_t *
+PFmil_tj_terms (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, const
PFmil_t *d)
+{
+ return wire4 (m_tj_terms, a, b, c, d);
+}
+
+PFmil_t *
+PFmil_tj_tfall (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, const
PFmil_t *d)
+{
+ return wire4 (m_tj_tfall, a, b, c, d);
+}
+
+PFmil_t *
+PFmil_tj_tf (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, const
PFmil_t *d, const PFmil_t *e)
+{
+ return wire5 (m_tj_tf, a, b, c, d, e);
+}
+
+PFmil_t *
+PFmil_tj_fbterms (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, const
PFmil_t *d)
+{
+ return wire4 (m_tj_fbterms, a, b, c, d);
+}
+
#endif
/* vim:set shiftwidth=4 expandtab: */
Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.231
retrieving revision 1.232
diff -u -d -r1.231 -r1.232
--- milgen.brg 28 Nov 2009 19:58:14 -0000 1.231
+++ milgen.brg 4 Dec 2009 14:07:39 -0000 1.232
@@ -2046,7 +2046,8 @@
static void
pft_unpack_pfop(PFpa_op_t* dest, mvar_t *pack,
PFalg_col_t a_iter,
- PFalg_col_t a_item, PFalg_simple_type_t t_item,
+ PFalg_col_t a_item,
+ PFalg_simple_type_t t_item,
PFalg_col_t a_frag,
PFalg_col_t a_pos,
PFalg_col_t a_score
@@ -2064,6 +2065,7 @@
fetch (var (pack->name), lit_int (1))));
env_add (dest->env, a_item, t_item, v_item);
+
if ( a_frag ) {
mvar_t *v_frag = new_var (dest->refctr);
execute (
@@ -10469,7 +10471,10 @@
unpin(pfop_opt,1);
unpin(pfop_ign,1);
-
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,fc_item_a,fc_pos_a,fc_score_a);
+ if ( restype == aat_bln )
+
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,0,fc_pos_a,fc_score_a);
+ else
+
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,fc_item_a,fc_pos_a,fc_score_a);
unpin(tjqres,1);
} else if ( PFT_FUN_MANAGE(fcname) ) {
@@ -10543,6 +10548,128 @@
seqbase (new (type (mty_void), type(mty_oid) ),
lit_oid (0))));
env_add (p->env, fc_pos_a, aat_nat, p_pos);
+
+
+ } else if ( (strcmp(fcname,PFT_TERMS) == 0) ||
+ (strcmp(fcname,PFT_TERMS_O) == 0) ) {
+ mvar_t *pfop_terms;
+ mvar_t *pfop_term_opt;
+
+ pfop_terms = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TERMS_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_terms(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_terms->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_terms,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_str,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_TFALL) == 0) ||
+ (strcmp(fcname,PFT_TFALL_O) == 0) ) {
+ mvar_t *pfop_term;
+ mvar_t *pfop_term_opt;
+
+ pfop_term = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_str,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TFALL_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_tfall(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_term->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_term,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_int,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_TF) == 0) ||
+ (strcmp(fcname,PFT_TF_O) == 0) ) {
+ mvar_t *pfop_el;
+ mvar_t *pfop_str;
+ mvar_t *pfop_opt;
+
+ pfop_el = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+ pfop_str = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,1),aat_str,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TF_O) == 0 ) {
+ pfop_opt = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,2),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_tf(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_el->name),
+ var(pfop_str->name),
+ var(pfop_opt->name)
+ )
+ )
+ );
+ unpin(pfop_el,1);
+ unpin(pfop_str,1);
+ unpin(pfop_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_int,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_FBTERMS) == 0) ||
+ (strcmp(fcname,PFT_FBTERMS_O) == 0) ) {
+ mvar_t *pfop_terms;
+ mvar_t *pfop_term_opt;
+
+ pfop_terms = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_FBTERMS_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_fbterms(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_terms->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_terms,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_str,0,fc_pos_a,0);
+ unpin(tjsres,1);
} else if (strcmp(fcname,PFT_SCORE) == 0 ) {
mvar_t *pfop_id;
mvar_t *pfop_nodes;
------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing.
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins