+2012-07-13 Steven Bosscher <steven@gcc.gnu.org>
+
+ * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
+ ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
+ ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
+ ATTRIBUTE_MALLOC.
+ * alloc-pool.h (pool_alloc): Likewise.
+
+ * final.c (final): Do not loop to find max_uid.
+
2012-07-13 Steven Bosscher <steven@gcc.gnu.org>
* emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
final (rtx first, FILE *file, int optimize_p)
{
rtx insn, next;
- int max_uid = 0;
int seen = 0;
/* Used for -dA dump. */
last_ignored_compare = 0;
+#ifdef HAVE_cc0
for (insn = first; insn; insn = NEXT_INSN (insn))
{
- if (INSN_UID (insn) > max_uid) /* Find largest UID. */
- max_uid = INSN_UID (insn);
-#ifdef HAVE_cc0
/* If CC tracking across branches is enabled, record the insn which
jumps to each branch only reached from one place. */
if (optimize_p && JUMP_P (insn))
LABEL_REFS (lab) = insn;
}
}
-#endif
}
+#endif
init_recog ();
/* Allocation. */
/* The internal primitive. */
-extern void *ggc_internal_alloc_stat (size_t MEM_STAT_DECL);
+extern void *ggc_internal_alloc_stat (size_t MEM_STAT_DECL)
+ ATTRIBUTE_MALLOC;
extern size_t ggc_round_alloc_size (size_t requested_size);
#define ggc_internal_alloc(s) ggc_internal_alloc_stat (s MEM_STAT_INFO)
/* Allocate an object of the specified type and size. */
-extern void *ggc_alloc_typed_stat (enum gt_types_enum, size_t MEM_STAT_DECL);
+extern void *ggc_alloc_typed_stat (enum gt_types_enum, size_t MEM_STAT_DECL)
+ ATTRIBUTE_MALLOC;
#define ggc_alloc_typed(s, z) ggc_alloc_typed_stat (s, z MEM_STAT_INFO)
/* Allocates cleared memory. */
-extern void *ggc_internal_cleared_alloc_stat (size_t MEM_STAT_DECL);
+extern void *ggc_internal_cleared_alloc_stat (size_t MEM_STAT_DECL)
+ ATTRIBUTE_MALLOC;
/* Resize a block. */
extern void *ggc_realloc_stat (void *, size_t MEM_STAT_DECL);
#define ggc_alloc_cleared_atomic(S) \
(ggc_internal_cleared_alloc_stat ((S) MEM_STAT_INFO))
-extern void * ggc_cleared_alloc_htab_ignore_args (size_t, size_t);
+extern void *ggc_cleared_alloc_htab_ignore_args (size_t, size_t)
+ ATTRIBUTE_MALLOC;
-extern void * ggc_cleared_alloc_ptr_array_two_args (size_t, size_t);
+extern void *ggc_cleared_alloc_ptr_array_two_args (size_t, size_t)
+ ATTRIBUTE_MALLOC;
#define htab_create_ggc(SIZE, HASH, EQ, DEL) \
htab_create_typed_alloc (SIZE, HASH, EQ, DEL, \
splay_tree_new_typed_alloc (COMPARE, NULL, NULL, &ALLOC_TREE, &ALLOC_NODE, \
&ggc_splay_dont_free, NULL)
-extern void *ggc_splay_alloc (enum gt_types_enum, int, void *);
+extern void *ggc_splay_alloc (enum gt_types_enum, int, void *)
+ ATTRIBUTE_MALLOC;
extern void ggc_splay_dont_free (void *, void *);
/* Allocate an object into the specified allocation zone. */
extern void *ggc_internal_alloc_zone_stat (size_t,
- struct alloc_zone * MEM_STAT_DECL);
+ struct alloc_zone * MEM_STAT_DECL)
+ ATTRIBUTE_MALLOC;
extern void *ggc_internal_cleared_alloc_zone_stat (size_t,
- struct alloc_zone * MEM_STAT_DECL);
+ struct alloc_zone * MEM_STAT_DECL)
+ ATTRIBUTE_MALLOC;
static inline void *
ggc_internal_zone_alloc_stat (struct alloc_zone * z, size_t s MEM_STAT_DECL)