From 0e07ee89d57a00a60eb989b8fe6ffcff5f54c68d Mon Sep 17 00:00:00 2001 From: Sebastian Buchwald Date: Mon, 22 Sep 2008 23:41:20 +0000 Subject: [PATCH] Added PBQP mapping with random costs. Of course this beats the default transformer on Queens due the magical seed of 42. [r22185] --- ir/be/ia32/bearch_ia32.c | 2 ++ ir/be/ia32/bearch_ia32_t.h | 3 ++- ir/be/ia32/ia32_common_transform.c | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index 381b91c06..93fd33013 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -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 } }; diff --git a/ir/be/ia32/bearch_ia32_t.h b/ir/be/ia32/bearch_ia32_t.h index 54f42dddf..c331660f5 100644 --- a/ir/be/ia32/bearch_ia32_t.h +++ b/ir/be/ia32/bearch_ia32_t.h @@ -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; diff --git a/ir/be/ia32/ia32_common_transform.c b/ir/be/ia32/ia32_common_transform.c index 5241adb5e..9e5111691 100644 --- a/ir/be/ia32/ia32_common_transform.c +++ b/ir/be/ia32/ia32_common_transform.c @@ -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 -- 2.20.1