Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

branch_profile.h

Go to the documentation of this file.
00001 /*
00002         Copyright (C) 1997 CFU Corporation
00003 
00004         File: branch_profile.h
00005         Author: Matt Jennings from Chao-ying Fu's value_profile.h
00006         Date: March 17 1999
00007 
00008         ^..^
00009         (00)
00010 
00011          $__$
00012         <~00~>
00013          (oo)
00014           ||
00015 
00016         ```````
00017         C ^|^ D
00018          \ O /
00019 */
00020 
00021 #ifndef INCLUDED_BRANCH_PROFILE_H
00022 #define INCLUDED_BRANCH_PROFILE_H
00023 
00024 #include <lego.H>
00025 #include "node_table.h"
00026 
00027 class Branch_Profile
00028 {
00029 public:
00030         Branch_Profile() {}
00031 
00032         ~Branch_Profile()
00033         {
00034         }
00035 
00036         void doit(legoModule *module_ptr,int interested_opcode);
00037 
00038         void lego_write(legoModule *module_ptr,char *input_filename);
00039         void instrument_main(legoModule *module_ptr,legoProc *proc_ptr);
00040         void instrument(legoProc *proc_ptr,Node_Table *node_table,int interested_opcode);
00041         void instrument_from_table(legoProc *proc_ptr,Node_Table *node_table);
00042 
00043         void insert_branch_predictor(int index,legoProc *proc_ptr,legoRegion *region_ptr,legoOprd *address_oprd,legoOprd *save_p1_oprd,legoOprd *dest_p1_oprd,legoOprd *save_p2_oprd,legoOprd *dest_p2_oprd,legoOprd *predicate_oprd,legoOp *from_op_ptr,legoOprd *taken_oprd,char *probe_name,attrList *attr_list,legoOprd *dest_ret_oprd);
00044 
00045         void open_main_file(unsigned int max_entry);
00046         void open_header_file();
00047         void close_main_file();
00048         void close_header_file();
00049 
00050         attrs *write_attribute(legoProc *proc_ptr);
00051 
00052 private:
00053         #define BRANCH_MAIN_FILENAME    "BRaNCH_PRoFiLe.c"
00054         #define BRANCH_HEADER_FILENAME  "BRaNCH_PRoFiLe.h"
00055 
00056         FILE *_main_fp;
00057         FILE *_header_fp;
00058 };
00059 
00060 #endif //INCLUDED_BRANCH_PROFILE_H

Generated on Mon Jul 21 20:24:02 2003 for TINKER LEGO DOC by doxygen 1.3.2