Пример #1
0
void save_line(Cacheline l)
{
  int cl_bytes_used=0;
  int sum_accesses=0;
  int max_accesses=0;
  int i;
  SectionNode* nextSection;
  for(i=0;i<LINESIZE;++i)
  {
    if(l.accesses[i]>0)
      cl_bytes_used++;
    sum_accesses+=l.accesses[i];
    if(l.accesses[i]>max_accesses)
      max_accesses=l.accesses[i];
  } 
  if(max_accesses==0)
	return;
  int cl_homogenity=((float)(sum_accesses)/(float)(LINESIZE))/(float)max_accesses*100.0f;
  if(sum_accesses>0)
  {
	nextSection=l.sections.first;
	while(nextSection!=NULL)
	{
		nextSection->section->bytes_used[cl_bytes_used]++;
    	nextSection->section->homogenity[cl_homogenity]++;
		nextSection->section->misses++;
		nextSection=nextSection->next;	
	}
	freeSectionList(&l.sections,TRUE);   
  }
}
Пример #2
0
void Fini( void )
{
    freeSectionList( &Sections );
    freeLabelList( 0 );
    ORLFileScan( ObjFileHnd, NULL, &SectionFini );
    if( Options & PRINT_PUBLICS ) {
        freePublics();
    }
    FreeHashTables();
    FreeServicesUsed();
    CloseFiles();
    MemPrtList();
    MemClose();
    MsgFini();
}