summaryrefslogtreecommitdiff
path: root/optimize.c
diff options
context:
space:
mode:
Diffstat (limited to 'optimize.c')
-rw-r--r--optimize.c30
1 files changed, 7 insertions, 23 deletions
diff --git a/optimize.c b/optimize.c
index 619f19b..ccb11d7 100644
--- a/optimize.c
+++ b/optimize.c
@@ -57,10 +57,6 @@ nop_node (node_t *node, int index)
{
g_assert (node);
-#if 0
- g_print ("nopping %p (type %d)\n", node, node->common.type);
-#endif
-
if (index == 0)
{
label_node_t *label = NULL;
@@ -90,8 +86,7 @@ nop_node (node_t *node, int index)
}
static gboolean
-node_is (node_t *node,
- node_type_t type)
+node_is (node_t *node, node_type_t type)
{
if (node && node->common.type == type)
return TRUE;
@@ -104,11 +99,17 @@ change_source_node (node_t *source,
label_node_t *new_target)
{
if (source->common.type == NODE_GOTO)
+ {
source->goto_.label = new_target;
+ }
else if (source->common.type == NODE_IF)
+ {
source->if_.taken = new_target;
+ }
else if (source->common.type == NODE_DYN_LABEL)
+ {
source->dyn_label.label = new_target;
+ }
else
{
g_print ("unexpected type: %d (node: %p)\n",
@@ -438,27 +439,10 @@ optimize (ast_t *ast)
do
{
-#if 0
- real_dump_graph (*entry);
-#endif
-
changed = FALSE;
*node = peephole (*node, &changed);
-
-#if 0
- real_dump_graph (*entry);
-
- g_print ("-=-=-=- nops \n");
-#endif
-
*node = remove_nops (*node, &changed);
-
-#if 0
- real_dump_graph (*entry);
-
- g_print ("---------------done----------------------------------\n");
-#endif
}
while (changed);
}