changed type for callback
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Fri, 9 Feb 2007 19:06:32 +0000 (19:06 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Fri, 9 Feb 2007 19:06:32 +0000 (19:06 +0000)
ir/be/arm/bearch_arm.c
ir/be/bearch.h
ir/be/bemain.c
ir/be/firm/bearch_firm.c
ir/be/ia32/bearch_ia32.c
ir/be/mips/bearch_mips.c
ir/be/ppc32/bearch_ppc32.c

index 7240989..8bcb2b3 100644 (file)
@@ -1097,7 +1097,7 @@ static const be_machine_t *arm_get_machine(const void *self) {
 /**
  * Return irp irgs in the desired order.
  */
-static ir_graph **arm_get_irg_list(const void *self, ir_graph **irg_list) {
+static ir_graph **arm_get_irg_list(const void *self, ir_graph ***irg_list) {
        return NULL;
 }
 
index e017d8e..810d600 100644 (file)
@@ -746,7 +746,7 @@ struct _arch_isa_if_t {
         * @param irgs   A flexible array ARR_F of length 0 where the backend cann append the desired irgs.
         * @return A flexible array ARR_F containing all desired irgs in the desired order.
         */
-       ir_graph **(*get_backend_irg_list)(const void *self, ir_graph **irgs);
+       ir_graph **(*get_backend_irg_list)(const void *self, ir_graph ***irgs);
 };
 
 #define arch_isa_get_n_reg_class(isa)                  ((isa)->impl->get_n_reg_class(isa))
index 42dd4fe..a37208a 100644 (file)
@@ -409,8 +409,8 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
        be_dbg_types(env.db_handle);
 
        /* backend may provide an ordered list of irgs where code should be generated for */
-       irg_list = NEW_ARR_F(ir_graph *, 0);
-       backend_irg_list = arch_isa_get_backend_irg_list(isa, irg_list);
+       irg_list         = NEW_ARR_F(ir_graph *, 0);
+       backend_irg_list = arch_isa_get_backend_irg_list(isa, &irg_list);
 
        /* we might need 1 birg more for instrumentation constructor */
        num_birgs = backend_irg_list ? ARR_LEN(backend_irg_list) : get_irp_n_irgs();
@@ -421,11 +421,7 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                ir_graph *irg = backend_irg_list ? backend_irg_list[i] : get_irp_irg(i);
                initialize_birg(&birgs[i], irg, &env);
        }
-       /* TODO: DEL_ARR_F(irg_list) will break, if list was modified by Backend ?!?! */
-       if (backend_irg_list)
-               DEL_ARR_F(backend_irg_list);
-       else
-               DEL_ARR_F(irg_list);
+       DEL_ARR_F(irg_list);
 
        /*
                Get the filename for the profiling data.
index a9bde2c..0ee753d 100644 (file)
@@ -630,7 +630,7 @@ static const be_machine_t *firm_get_machine(const void *self) {
 /**
  * Return irp irgs in the desired order.
  */
-static ir_graph **firm_get_irg_list(const void *self, ir_graph **irg_list) {
+static ir_graph **firm_get_irg_list(const void *self, ir_graph ***irg_list) {
        return NULL;
 }
 
index 82a6ea7..9f2650f 100644 (file)
@@ -1892,7 +1892,7 @@ static const be_machine_t *ia32_get_machine(const void *self) {
 /**
  * Return irp irgs in the desired order.
  */
-static ir_graph **ia32_get_irg_list(const void *self, ir_graph **irg_list) {
+static ir_graph **ia32_get_irg_list(const void *self, ir_graph ***irg_list) {
        return NULL;
 }
 
index 7344cf4..ae5be16 100644 (file)
@@ -948,7 +948,7 @@ static const be_machine_t *mips_get_machine(const void *self) {
 /**
  * Return irp irgs in the desired order.
  */
-static ir_graph **mips_get_irg_list(const void *self, ir_graph **irg_list) {
+static ir_graph **mips_get_irg_list(const void *self, ir_graph ***irg_list) {
        return NULL;
 }
 
index 8d34e78..5ef844e 100644 (file)
@@ -887,7 +887,7 @@ static const be_machine_t *ppc32_get_machine(const void *self) {
 /**
  * Return irp irgs in the desired order.
  */
-static ir_graph **ppc32_get_irg_list(const void *self, ir_graph **irg_list) {
+static ir_graph **ppc32_get_irg_list(const void *self, ir_graph ***irg_list) {
        return NULL;
 }