]> rtime.felk.cvut.cz Git - ulut.git/commitdiff
SDCC 3.0 can build uLUt but its GCSE optimization goes mad for gavl_balance_one.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Fri, 5 Nov 2010 13:13:18 +0000 (14:13 +0100)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Fri, 5 Nov 2010 13:13:18 +0000 (14:13 +0100)
The common expression elimination optimization
leads to allocation of whole internal memory
when enabled for gavl_balance_one function.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
ulut/ul_gavlprim.c

index fb6352de440c55fb1be992d061ee6956cbc771ab..8880be36479fd8f400e5d0058e3c4d6ef2e6b96e 100644 (file)
@@ -77,6 +77,10 @@ gavl_prev_node(const gavl_node_t *node)
   }
 }
 
+#ifdef SDCC
+#pragma save
+#pragma nogcse
+#endif /*SDCC*/
 /**
  * gavl_balance_one - Balance One Node to Enhance Balance Factor
  * @subtree:   pointer to pointer to node for which balance is enhanced
@@ -213,6 +217,9 @@ gavl_balance_one(gavl_node_t **subtree)
   /*printf("#%d",ret);*/
   return(ret);
 }
+#ifdef SDCC
+#pragma restore
+#endif /*SDCC*/
 
 /**
  * gavl_insert_primitive_at - Low Lewel Routine to Insert Node into Tree