+Wed Oct 17 00:21:31 CEST 2001 Jan Hubicka <jh@suse.cz>
+
+ * cfg.c (free_edge): Break out from ....
+ (remove_edge): ... here.
+ (clear_edges): Use free_edge.
+
+ * att.h (ASM_QUAD): Add comment.
+ * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
+
Wed Oct 17 00:01:02 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.c (split_ti): New function.
};
void debug_flow_info PARAMS ((void));
+static void free_edge PARAMS ((edge));
\f
/* Called once at intialization time. */
}
}
\f
+/* Helper function for remove_edge and clear_edges. Frees edge structure
+ without actually unlinking it from the pred/succ lists. */
+
+static void
+free_edge (e)
+ edge e;
+{
+ n_edges--;
+ memset (e, 0, sizeof (*e));
+ e->succ_next = first_deleted_edge;
+ first_deleted_edge = e;
+}
+
/* Free the memory associated with the edge structures. */
void
clear_edges ()
{
int i;
+ edge e;
for (i = 0; i < n_basic_blocks; ++i)
{
basic_block bb = BASIC_BLOCK (i);
+ edge e = bb->succ;
- while (bb->succ)
- remove_edge (bb->succ);
+ while (e)
+ {
+ edge next = e->succ_next;
+
+ free_edge (e);
+ e = next;
+ }
+ bb->succ = NULL;
+ bb->pred = NULL;
}
- while (ENTRY_BLOCK_PTR->succ)
- remove_edge (ENTRY_BLOCK_PTR->succ);
+ e = ENTRY_BLOCK_PTR->succ;
+ while (e)
+ {
+ edge next = e->succ_next;
+
+ free_edge (e);
+ e = next;
+ }
+ EXIT_BLOCK_PTR->pred = NULL;
+ ENTRY_BLOCK_PTR->succ = NULL;
if (n_edges)
abort ();
else
dest->pred = e->pred_next;
- n_edges--;
- memset (e, 0, sizeof (*e));
- e->succ_next = first_deleted_edge;
- first_deleted_edge = e;
+ free_edge (e);
}
/* Redirect an edge's successor from one block to another. */
#define ASM_SHORT "\t.value\t"
#define ASM_LONG "\t.long\t"
-#define ASM_QUAD "\t.quad\t"
+#define ASM_QUAD "\t.quad\t" /* Should not be used for 32bit compilation. */
/* How to output an ASCII string constant. */
#define ASM_BYTE_OP "\t.byte\t"
#define ASM_SHORT "\t.word\t"
#define ASM_LONG "\t.long\t"
+#define ASM_QUAD "\t.quad\t" /* Should not be used for 32bit compilation. */
/* Output at beginning of assembler file.
??? I am skeptical of this -- RMS. */
#define ASM_BYTE_OP "\t.byte\t"
#define ASM_SHORT "\t.value\t"
#define ASM_LONG "\t.long\t"
+#define ASM_QUAD "\t.quad\t" /* Should not be used for 32bit compilation. */
+
/* How to output an ASCII string constant. */