X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fexecfreq.h;h=32b33dfa228bfe56c5c6277e24dc54a70fb272d7;hb=3ea053779e18f3a0a2fcead621f7d610de8531c1;hp=b9abc6d0ecba6ec1969d218671cb0d69594aa774;hpb=e2b4dc19ea7c56518acbaf92182691353d9faf1e;p=libfirm diff --git a/ir/ana/execfreq.h b/ir/ana/execfreq.h index b9abc6d0e..32b33dfa2 100644 --- a/ir/ana/execfreq.h +++ b/ir/ana/execfreq.h @@ -1,18 +1,43 @@ #ifndef EXECFREQ_H_ #define EXECFREQ_H_ +/* + * Project: libFIRM + * File name: ir/ana/execfreq.h + * Purpose: Compute an estimate of basic block executions. + * Author: Adam M. Szalkowski + * Modified by: + * Created: 28.05.2006 + * CVS-ID: $Id$ + * Copyright: (c) 2006 Universitaet Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ +#include "firm_types.h" -#include "irgraph_t.h" -#include "irnode_t.h" +struct _exec_freq_t; -typedef struct _freq_t { - const ir_node *irn; - double freq; -} freq_t; +#ifndef _EXECFREQ_TYPEDEF +#define _EXECFREQ_TYPEDEF +typedef struct _exec_freq_t exec_freq_t; +#endif -void compute_execfreq(ir_graph * irg, double loop_weight); +/** + * Create execfreq structure (to be used with set_execfreq) + */ +exec_freq_t *create_execfreq(ir_graph *irg); -void free_execfreq(); +/** + * Set execution frequency of a basic block + */ +void set_execfreq(exec_freq_t *ef, const ir_node *block, double freq); -double get_block_execfreq(const ir_node * irn); +/** + * Create execfreq structure and initialze with estimated frequencies + */ +exec_freq_t *compute_execfreq(ir_graph *irg, double loop_weight); -#endif +void free_execfreq(exec_freq_t *ef); + +double get_block_execfreq(const exec_freq_t *ef, const ir_node *block); +unsigned long get_block_execfreq_ulong(const exec_freq_t *ef, const ir_node *block); + +#endif /* EXECFREQ_H_ */