Delay in program start w/HASHED_DICTIONARY usage

Xavier Oswald xoswald at gmail.com
Fri Jul 31 13:37:15 UTC 2009


On 09:23 Fri 31 Jul     , Jeremy @ Cowgar wrote:
> Hello Xavier,
> 
>   Um,   wow.   That's   quite   some  C  code!  I  saw  references  to
>   HASHED_DICTIONARY  in  main, but what it's doing, I don't know. Here
>   is the main function:

Ok, so it's a compiler bug or maybe Benoit's work around this is not finished..
It's an exeperimental version ;)

> int main(int argc,char **argv)
> {
>   __POINTER__EB ptr__BD,__tmp__HD,__tmp__VSJ,__tmp__XSJ,__tmp__0SJ;
>   __POINTER__EB __tmp__QLJ,__tmp__SFB,__tmp__HGB,__tmp__01,result__D5;
>   __POINTER__EB __tmp__0MJ,__tmp__P5,__tmp__T5,__tmp__RDC,__tmp__0DB;
>   __POINTER__EB __tmp__WEB,__tmp__0PF,siz__2OF,__tmp__1PF;
>   __INTEGER__M typ_id__FD,Self__EMC;
>   __UINTEGER_32__AE __tmp__YSJ,__tmp__LE,__tmp__TEB,idx__NUD;
>   __MEMORY__3D *result__MUD,*__tmp__JWD,*Self__ZOF,*prev__RWF,*next__SWF;
>   __MEMORY__3D *__tmp__NQF;
>   void **Result__M1;
>   arg_count  = argc;
>   arg_vector = argv;
> #ifdef _PTHREAD_H
>   pthread_key_create(&current_thread, NULL);
>   pthread_attr_init(&thread_attr);
>   /*pthread_attr_setdetachstate(&thread_attr,PTHREAD_CREATE_DETACHED);*/
> #endif
>   ;
>   clone_allocation_size__TD=((__POINTER__EB )(NULL));
>   nb_page__IVB= 0;
>   MEMORY__3D__->size_and_id__CE= 0;
>   capacity_max__DXD=((__POINTER__EB )(NULL));
>   begin_memory__AMB=((__POINTER__EB )(NULL));
>   MEMORY__3D__->previous_linear__5D=((__POINTER__EB )(NULL));
>   ptr__BD=((__POINTER__EB )(NULL));
>   typ_id__FD= 0;
>   __tmp__HD=((__POINTER__EB )sizeof(__HASHED_DICTIONARYoABSTRACT_STRINGxABSTRACT_STRINGo__SB));
>   if ((__tmp__HD !=  0)) {
>     typ_id__FD=__HASHED_DICTIONARYoABSTRACT_STRINGxABSTRACT_STRINGo__SB__;
>     clone_allocation_size__TD=(void *)((unsigned long)clone_allocation_size__TD - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__HD));
>     if ((typ_id__FD == (__INTEGER__M)(-  1))) {
>       (&__string_1)->storage__3B="Memory: Size bound.";
>       __tmp__VSJ=(void *)((unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))) - (unsigned long)((__POINTER__EB ) 1));
>       __tmp__XSJ=(void *)((unsigned long)(void *)((unsigned long)__tmp__HD - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__VSJ)) & (unsigned long)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__VSJ) - (unsigned long)((__POINTER__EB ) 1)));
>       (&__string_2)->storage__3B="Memory: Alignment.";
>       __tmp__YSJ=((__UINTEGER_32__AE )((__INTEGER__M )(void *)((unsigned long)__tmp__XSJ / (unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))))));
>       (&__string_3)->storage__3B="Memory: Bound table_size.";
>       __tmp__0SJ=micro_alloc__table__lab__FKB(__tmp__XSJ,((__POINTER__EB )(&(table_size[(__tmp__YSJ)-1]))),((__UINTEGER_32__AE )((__INTEGER__M )__tmp__XSJ)));
>       ptr__BD=__tmp__0SJ;
>     } else /* FALSE */ {
>       __tmp__LE=((__UINTEGER_32__AE )typ_id__FD);
>       __tmp__QLJ=(void *)((unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))) - (unsigned long)((__POINTER__EB ) 1));
>       __tmp__SFB=(void *)((unsigned long)(void *)((unsigned long)__tmp__HD - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__QLJ)) & (unsigned long)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__QLJ) - (unsigned long)((__POINTER__EB ) 1)));
>       __tmp__HGB=micro_alloc__table__lab__FKB(__tmp__SFB,((__POINTER__EB )(&(table_type[(__tmp__LE)]))),(__UINTEGER_32__AE)(__tmp__LE |  1));
>       ptr__BD=__tmp__HGB;
>     };
>     *(((__HASHED_DICTIONARYoABSTRACT_STRINGxABSTRACT_STRINGo__SB *)ptr__BD)) = *(HASHED_DICTIONARYoABSTRACT_STRINGxABSTRACT_STRINGo__SB__);
>   };
>   __tmp__01=((__POINTER__EB )(__INTEGER__M)( 193 * ((__INTEGER__M )(sizeof(void *)))));
>   result__D5=((__POINTER__EB )(NULL));
>   __tmp__0MJ=(void *)((unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))) - (unsigned long)((__POINTER__EB ) 1));
>   __tmp__P5=(void *)((unsigned long)(void *)((unsigned long)__tmp__01 - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__0MJ)) & (unsigned long)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__0MJ) - (unsigned long)((__POINTER__EB ) 1)));
>   __tmp__T5=(void *)((unsigned long)__tmp__P5 - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *))))));
>   if ((__tmp__T5 <= ((__POINTER__EB )(MINIMUM_SIZE)))) {
>     __tmp__RDC=(void *)((unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))) - (unsigned long)((__POINTER__EB ) 1));
>     __tmp__0DB=(void *)((unsigned long)(void *)((unsigned long)__tmp__T5 - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__RDC)) & (unsigned long)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__RDC) - (unsigned long)((__POINTER__EB ) 1)));
>     __tmp__TEB=((__UINTEGER_32__AE )((__INTEGER__M )(void *)((unsigned long)__tmp__0DB / (unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *)))))));
>     __tmp__WEB=micro_alloc__table__lab__FKB(__tmp__0DB,((__POINTER__EB )(&(table_size[(__tmp__TEB)-1]))),((__UINTEGER_32__AE )((__INTEGER__M )__tmp__0DB)));
>     ((__POINTER__EB *)__tmp__WEB)[ 0]=((__POINTER__EB ) 3);
>     result__D5=(void *)((unsigned long)__tmp__WEB - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB )((__INTEGER__M )(sizeof(void *))))));
>   } else /* FALSE */ {
>     result__MUD=first_free__LVD;
>     while ((((void *)result__MUD != (void *)NULL) && (((__POINTER__EB )(__UINTEGER_32__AE)(((__MEMORY__3D *)result__MUD)->size_and_id__CE &  4294967292LU)) < __tmp__P5))) {
>       result__MUD=result__MUD->next_free__DE;
>     };
>     if (((void *)result__MUD == (void *)NULL)) {
>       __tmp__JWD=new_page__1WD();
>       result__MUD=__tmp__JWD;
>     };
>     idx__NUD=(__UINTEGER_32__AE)(((__UINTEGER_32__AE )((unsigned int)((void *)((unsigned long)((__POINTER__EB )((__MEMORY__3D *)result__MUD)) - (unsigned long)begin_memory__AMB)))) >>  26);
>     Self__ZOF=((__MEMORY__3D *)result__MUD);
>     prev__RWF=Self__ZOF->previous_free__EE;
>     next__SWF=Self__ZOF->next_free__DE;
>     if (((void *)prev__RWF == (void *)NULL)) {
>       first_free__LVD=next__SWF;
>     } else /* FALSE */ {
>       ((__MEMORY__3D *)prev__RWF)->next_free__DE=next__SWF;
>     };
>     if (((void *)next__SWF != (void *)NULL)) {
>       ((__MEMORY__3D *)next__SWF)->previous_free__EE=prev__RWF;
>     };
>     __tmp__0PF=((__POINTER__EB )Self__ZOF->size_and_id__CE);
>     siz__2OF=__tmp__0PF;
>     __tmp__1PF=(void *)((unsigned long)__tmp__0PF - (unsigned long)__tmp__P5);
>     if ((__tmp__1PF > (void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB )(MINIMUM_SIZE)) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB ) 2))) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB ) 8))))) {
>       siz__2OF=__tmp__P5;
>       __tmp__NQF=((__MEMORY__3D *)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB )Self__ZOF) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB ) 8))) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)__tmp__P5)));
>       __tmp__NQF->previous_linear__5D=(void *)((unsigned long)((__POINTER__EB )Self__ZOF) - (unsigned long)begin_memory__AMB);
>       __tmp__NQF->size_and_id__CE=(__UINTEGER_32__AE)(((__UINTEGER_32__AE )((unsigned int)(__tmp__1PF))) -  8);
>       __tmp__NQF->next_free__DE=first_free__LVD;
>       __tmp__NQF->previous_free__EE=NULL;
>       if (((void *)first_free__LVD != (void *)NULL)) {
>         ((__MEMORY__3D *)first_free__LVD)->previous_free__EE=__tmp__NQF;
>       };
>       first_free__LVD=__tmp__NQF;
>       if (((__UINTEGER_32__AE)(__tmp__NQF->size_and_id__CE &  2) !=  0)) {
>         last_block[(idx__NUD)] = (__tmp__NQF);
>       } else /* FALSE */ {
>         ((__MEMORY__3D *)(void *)((unsigned long)(void *)((unsigned long)((__POINTER__EB )__tmp__NQF) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB ) 8))) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB )(__UINTEGER_32__AE)(__tmp__NQF->size_and_id__CE &  4294967292LU)))))->previous_linear__5D=(void *)((unsigned long)((__POINTER__EB )__tmp__NQF) - (unsigned long)begin_memory__AMB);
>       };
>     };
>     Self__ZOF->size_and_id__CE=(__UINTEGER_32__AE)(((__UINTEGER_32__AE )((unsigned int)(siz__2OF))) |  1);
>     result__D5=(void *)((unsigned long)((__POINTER__EB )((__MEMORY__3D *)result__MUD)) - (unsigned long)(void *)((unsigned long)((__POINTER__EB ) 0) - (unsigned long)((__POINTER__EB ) 8)));
>   };
>   Result__M1=((void **)result__D5);
>   Self__EMC= 192;
>   while ((Self__EMC >=  0)) {
>     Result__M1[Self__EMC]=NULL;
>     Self__EMC=(__INTEGER__M)(Self__EMC -  1);
>   };
>   puts(("Hello, World!"));
>   return(0);
> }
> 
> 
> Jeremy
> mailto:jeremy at cowgar.com
> 
> ============
> Friday, July 31, 2009, 9:16:10 AM, you wrote:
> 
> > On 09:14 Fri 31 Jul     , Jeremy @ Cowgar wrote:
> >> Hello Xavier,
> >> 
> >>   Further,  why a 1-2 second delay just to create a hashed dictionary?
> >>   Even  if  it were not dead code, there shouldn't be such a noticeable
> >>   delay.
> 
> > Right !
> 
> > Can you have a look at the produced C code if there is something linked to the
> > this dictionnary ... ? Looking in the main() is enough..
> 
> 
> _______________________________________________
> Lisaac-devel mailing list
> Lisaac-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/lisaac-devel

-- 
  ,''`.  ** Xavier Oswald <xoswald at debian.org>                            
 : :' :  ** Research Engineer                                           
 `. `'   ** GNU/LINUX Debian Developer (http://debian.org)              
   `-    ** Isaac Project Developer (http://isaacproject.u-strasbg.fr/) 



More information about the Lisaac-devel mailing list