Added PBQP mapping with random costs.
authorSebastian Buchwald <Sebastian.Buchwald@kit.edu>
Mon, 22 Sep 2008 23:41:20 +0000 (23:41 +0000)
committerSebastian Buchwald <Sebastian.Buchwald@kit.edu>
Mon, 22 Sep 2008 23:41:20 +0000 (23:41 +0000)
Of course this beats the default transformer on Queens due the magical seed of 42.

[r22185]

ir/be/ia32/bearch_ia32.c
ir/be/ia32/bearch_ia32_t.h
ir/be/ia32/ia32_common_transform.c

index 381b91c..93fd330 100644 (file)
@@ -971,6 +971,7 @@ static void ia32_prepare_graph(void *self) {
 
 #ifdef FIRM_GRGEN_BE
                case TRANSFORMER_PBQP:
+               case TRANSFORMER_RAND:
                        // disable CSE, because of two-step node-construction
                        set_opt_cse(0);
 
@@ -2327,6 +2328,7 @@ static const lc_opt_enum_int_items_t transformer_items[] = {
        { "default", TRANSFORMER_DEFAULT },
 #ifdef FIRM_GRGEN_BE
        { "pbqp",    TRANSFORMER_PBQP    },
+       { "random",  TRANSFORMER_RAND    },
 #endif
        { NULL,      0                   }
 };
index 54f42dd..c331660 100644 (file)
@@ -118,7 +118,8 @@ struct ia32_intrinsic_env_t {
 typedef enum transformer_t {
        TRANSFORMER_DEFAULT,
 #ifdef FIRM_GRGEN_BE
-       TRANSFORMER_PBQP
+       TRANSFORMER_PBQP,
+       TRANSFORMER_RAND
 #endif
 } transformer_t;
 
index 5241adb..9e51116 100644 (file)
@@ -484,6 +484,7 @@ ir_node *gen_ASM(ir_node *node)
 
 #ifdef FIRM_GRGEN_BE
        case TRANSFORMER_PBQP:
+       case TRANSFORMER_RAND:
                new_block = get_nodes_block(node);
                break;
 #endif
@@ -613,6 +614,7 @@ ir_node *gen_ASM(ir_node *node)
 
 #ifdef FIRM_GRGEN_BE
                        case TRANSFORMER_PBQP:
+                       case TRANSFORMER_RAND:
                                input = get_irn_n(node, i);
                                break;
 #endif
@@ -693,6 +695,7 @@ ir_node *gen_CopyB(ir_node *node) {
 
 #ifdef FIRM_GRGEN_BE
                case TRANSFORMER_PBQP:
+               case TRANSFORMER_RAND:
                        block    = get_nodes_block(node);
                        new_src  = get_CopyB_src(node);
                        new_dst  = get_CopyB_dst(node);
@@ -739,6 +742,7 @@ ir_node *gen_Proj_tls(ir_node *node) {
 
 #ifdef FIRM_GRGEN_BE
                case TRANSFORMER_PBQP:
+               case TRANSFORMER_RAND:
                        block = get_nodes_block(node);
                        break;
 #endif