AC_SUBST([enable_profile_libfirm])
-dnl set heap analyses support
-dnl -------------------------
-AC_ARG_ENABLE([heapanalysis],
-[AS_HELP_STRING([--enable-heapanalysis], [Compile with heap analysis.])],
-[enable_heapanalysis=$enableval], [enable_heapanalysis="no"])
-
-if test "$enable_heapanalysis" = "yes"; then
- FIRMCONFIG_DO_HEAPANALYSIS="#define DO_HEAPANALYSIS"
-fi
-AC_SUBST([FIRMCONFIG_DO_HEAPANALYSIS])
-AC_SUBST([enable_heapanalysis])
-
dnl enable Firm hooks
dnl -------------
AC_ARG_ENABLE([hooks],
-/* Define to 1 for heap analysis support */
-@FIRMCONFIG_DO_HEAPANALYSIS@
-
/* define to 1 to enable debugging stuff. */
@FIRMCONFIG_DEBUG_libfirm@
#include "eset.h"
#include "pset.h"
-#if DO_HEAPANALYSIS
-extern void dump_irn_chi_term(FILE *FL, ir_node *n);
-extern void dump_irn_state(FILE *FL, ir_node *n);
-extern int get_opt_dump_abstvals(void);
-typedef unsigned long SeqNo;
-extern SeqNo get_Block_seqno(ir_node *n);
-#endif
-
/** Dump only irgs with names that start with this prefix. */
static ident *dump_file_filter_id = NULL;
if(dump_node_edge_hook)
dump_node_edge_hook(F, n);
-#if DO_HEAPANALYSIS
- dump_irn_chi_term(F, n);
- dump_irn_state(F, n);
-#endif
}
/** dump the edge to the block this node belongs to */
PRINT_NODEID(block);
fprintf(F, "\" label: \"");
dump_node_label(F, block);
-#if DO_HEAPANALYSIS
- if (get_opt_dump_abstvals())
- fprintf(F, " seqno: %d", (int)get_Block_seqno(block));
-#endif
/* colorize blocks */
if (! get_Block_matured(block))
/* Close the vcg information for the block */
fprintf(F, "}\n");
dump_const_node_local(F, block);
-#if DO_HEAPANALYSIS
- dump_irn_chi_term(F, block);
-#endif
fprintf(F, "\n");
}
node->attr.except.pin_state = state;
}
-#ifdef DO_HEAPANALYSIS
-/* Access the abstract interpretation information of a node.
- Returns NULL if no such information is available. */
-struct abstval *get_irn_abst_value(ir_node *n) {
- return n->av;
-}
-/* Set the abstract interpretation information of a node. */
-void set_irn_abst_value(ir_node *n, struct abstval *os) {
- n->av = os;
-}
-struct section *firm_get_irn_section(ir_node *n) {
- return n->sec;
-}
-void firm_set_irn_section(ir_node *n, struct section *s) {
- n->sec = s;
-}
-#else
-/* Dummies needed for firmjni. */
-struct abstval *get_irn_abst_value(ir_node *n) {
- (void) n;
- return NULL;
-}
-void set_irn_abst_value(ir_node *n, struct abstval *os) {
- (void) n;
- (void) os;
-}
-struct section *firm_get_irn_section(ir_node *n) {
- (void) n;
- return NULL;
-}
-void firm_set_irn_section(ir_node *n, struct section *s) {
- (void) n;
- (void) s;
-}
-#endif /* DO_HEAPANALYSIS */
-
-
/* Outputs a unique number for this node */
long get_irn_node_nr(const ir_node *node) {
assert(node);
#endif
/* ------- For analyses -------- */
ir_loop *loop; /**< the loop the node is in. Access routines in irloop.h */
-#ifdef DO_HEAPANALYSIS
- struct abstval *av; /**< Heapanalysis: The abstract value of this node. */
- struct section *sec; /**< Heapanalysis: The section of this node. */
-#endif
struct ir_node **deps; /**< Additional dependencies induced by state. */
irn_edges_info_t edge_info; /**< Everlasting out edges. */
/* ------- Opcode depending fields -------- */