projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix weak external functions
[libfirm]
/
ir
/
stat
/
pattern.c
diff --git
a/ir/stat/pattern.c
b/ir/stat/pattern.c
index
00ab38f
..
47ff364
100644
(file)
--- a/
ir/stat/pattern.c
+++ b/
ir/stat/pattern.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-200
7
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-200
8
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-23,9
+23,7
@@
* @author Michael Beck
* @version $Id$
*/
* @author Michael Beck
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
#include <assert.h>
#include <stdlib.h>
#include <assert.h>
#include <stdlib.h>
@@
-41,6
+39,8
@@
#include "pattern_dmp.h"
#include "hashptr.h"
#include "pattern_dmp.h"
#include "hashptr.h"
+#ifdef FIRM_STATISTICS
+
/*
* just be make some things clear :-), the
* poor man "generics"
/*
* just be make some things clear :-), the
* poor man "generics"
@@
-174,7
+174,7
@@
static void init_buf(CODE_BUFFER *buf, BYTE *data, unsigned len) {
*
* The hash value for the buffer content is updated.
*/
*
* The hash value for the buffer content is updated.
*/
-static
INLINE
void put_byte(CODE_BUFFER *buf, BYTE byte) {
+static
inline
void put_byte(CODE_BUFFER *buf, BYTE byte) {
if (buf->next < buf->end) {
*buf->next++ = byte;
buf->hash = (buf->hash * 9) ^ byte;
if (buf->next < buf->end) {
*buf->next++ = byte;
buf->hash = (buf->hash * 9) ^ byte;
@@
-232,7
+232,7
@@
static unsigned buf_overrun(const CODE_BUFFER *buf) {
*
* @return the next byte from the code buffer
*/
*
* @return the next byte from the code buffer
*/
-static
INLINE
BYTE look_byte(CODE_BUFFER *buf) {
+static
inline
BYTE look_byte(CODE_BUFFER *buf) {
if (buf->next < buf->end)
return *buf->next;
return VLC_TAG_END;
if (buf->next < buf->end)
return *buf->next;
return VLC_TAG_END;
@@
-245,7
+245,7
@@
static INLINE BYTE look_byte(CODE_BUFFER *buf) {
*
* @return the next byte from the code buffer
*/
*
* @return the next byte from the code buffer
*/
-static
INLINE
BYTE get_byte(CODE_BUFFER *buf) {
+static
inline
BYTE get_byte(CODE_BUFFER *buf) {
if (buf->next < buf->end)
return *buf->next++;
return VLC_TAG_END;
if (buf->next < buf->end)
return *buf->next++;
return VLC_TAG_END;
@@
-418,8
+418,7
@@
static int _encode_node(ir_node *node, int max_depth, codec_env_t *env) {
ir_mode *mode = get_irn_mode(node);
if (mode)
ir_mode *mode = get_irn_mode(node);
if (mode)
- /* FIXME: not 64bit save */
- put_code(env->buf, (unsigned)mode);
+ put_code(env->buf, stat_find_mode_index(mode));
else
put_tag(env->buf, VLC_TAG_EMPTY);
} /* if */
else
put_tag(env->buf, VLC_TAG_EMPTY);
} /* if */
@@
-649,9
+648,7
@@
static pattern_entry_t *pattern_get_entry(CODE_BUFFER *buf, pset *set) {
unsigned len = buf_lenght(buf);
unsigned hash;
unsigned len = buf_lenght(buf);
unsigned hash;
- key = obstack_alloc(&status->obst, offsetof(pattern_entry_t, buf) + len);
- assert(key);
-
+ key = OALLOCF(&status->obst, pattern_entry_t, buf, len);
key->len = len;
memcpy(key->buf, buf_content(buf), len);
key->len = len;
memcpy(key->buf, buf_content(buf), len);
@@
-700,7
+697,7
@@
static void calc_nodes_pattern(ir_node *node, void *ctx) {
depth = encode_node(node, &buf, env->max_depth);
if (buf_overrun(&buf)) {
depth = encode_node(node, &buf, env->max_depth);
if (buf_overrun(&buf)) {
- fprintf(stderr, "Pattern store: buffer overrun at size %
d. Pattern ignored.\n",
sizeof(buffer));
+ fprintf(stderr, "Pattern store: buffer overrun at size %
u. Pattern ignored.\n", (unsigned)
sizeof(buffer));
} else
count_pattern(&buf, depth);
} /* calc_nodes_pattern */
} else
count_pattern(&buf, depth);
} /* calc_nodes_pattern */
@@
-801,7
+798,7
@@
static void pattern_output(const char *fname) {
/* creates a dumper */
dump = new_vcg_dumper(fname, 100);
/* creates a dumper */
dump = new_vcg_dumper(fname, 100);
- pattern_arr =
xmalloc(sizeof(*pattern_arr) *
count);
+ pattern_arr =
XMALLOCN(pattern_entry_t*,
count);
for (i = 0, entry = pset_first(status->pattern_hash);
entry && i < count;
entry = pset_next(status->pattern_hash), ++i) {
for (i = 0, entry = pset_first(status->pattern_hash);
entry && i < count;
entry = pset_next(status->pattern_hash), ++i) {
@@
-889,3
+886,5
@@
void stat_finish_pattern_history(const char *fname) {
status->enable = 0;
} /* stat_finish_pattern_history */
status->enable = 0;
} /* stat_finish_pattern_history */
+
+#endif /* FIRM_STATISTICS */