예제 #1
0
파일: cg_main.c 프로젝트: MShudrak/flayer
static void cg_post_clo_init(void)
{
   HChar* qual = NULL;
   cache_t I1c, D1c, L2c; 
   Int filename_szB;

   /* Get working directory */
   tl_assert( VG_(getcwd)(base_dir, VKI_PATH_MAX) );

   /* Do we have a --log-file-qualifier= to consider? */
   if (VG_(clo_log_file_qualifier)) {
      qual = VG_(getenv)(VG_(clo_log_file_qualifier));
   }

   /* Block is big enough for 
        dir name ++ cachegrind_out_file_basename
                 ++ ".<pid>" 
                 ++ the log file qualifier, if in use */
   filename_szB 
      = VG_(strlen)(base_dir) 
        + 1  /* "/" */
        + VG_(strlen)(cachegrind_out_file_basename)
        + 11  /* "." <pid>, assuming sizeof(pid) <= 4 */
        + (qual  ? (10 + VG_(strlen)(qual))  : 0)
        + 1; /* to guarantee checkable zero at the end */

   tl_assert(filename_szB > 0);
   cachegrind_out_file 
      = VG_(calloc)( sizeof(Char), filename_szB );

   if (qual) {
      VG_(sprintf)(cachegrind_out_file, "%s/%s.%d.lfq.%s",
                   base_dir, cachegrind_out_file_basename, 
                   VG_(getpid)(), qual);
   } else {
      VG_(sprintf)(cachegrind_out_file, "%s/%s.%d",
                   base_dir, cachegrind_out_file_basename, 
                   VG_(getpid)());
   }

   tl_assert( cachegrind_out_file[filename_szB-1] == 0 );

   CC_table = VG_(OSet_Create)(offsetof(LineCC, loc),
                               cmp_CodeLoc_LineCC,
                               VG_(malloc), VG_(free));
   instrInfoTable = VG_(OSet_Create)(/*keyOff*/0,
                                     NULL,
                                     VG_(malloc), VG_(free));
   stringTable    = VG_(OSet_Create)(/*keyOff*/0,
                                     stringCmp,
                                     VG_(malloc), VG_(free));

   configure_caches(&I1c, &D1c, &L2c);

   cachesim_I1_initcache(I1c);
   cachesim_D1_initcache(D1c);
   cachesim_L2_initcache(L2c);
}
예제 #2
0
static void cg_post_clo_init(void)
{
   cache_t I1c, D1c, L2c; 

   configure_caches(&I1c, &D1c, &L2c);

   cachesim_I1_initcache(I1c);
   cachesim_D1_initcache(D1c);
   cachesim_L2_initcache(L2c);
}
예제 #3
0
static void cg_post_clo_init(void)
{
   cache_t I1c, D1c, L2c; 

   configure_caches(&I1c, &D1c, &L2c);

   cachesim_I1_initcache(I1c);
   cachesim_D1_initcache(D1c);
   cachesim_L2_initcache(L2c);

   VG_(register_profile_event)(VgpGetLineCC,     "get-lineCC");
   VG_(register_profile_event)(VgpCacheSimulate, "cache-simulate");
   VG_(register_profile_event)(VgpCacheResults,  "cache-results");
}