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

Reply via email to