fixed sel entity collector
[libfirm] / ir / be / beschedrss.c
index f8b107e..ed637e9 100644 (file)
@@ -190,7 +190,7 @@ static lc_opt_enum_int_var_t dump_var = {
 };
 
 static const lc_opt_table_entry_t rss_option_table[] = {
-       LC_OPT_ENT_ENUM_MASK("dump", "dump phases (none, cbc, pkg, kill, dvg, maxac, all)", &dump_var),
+       LC_OPT_ENT_ENUM_MASK("dump", "dump phases", &dump_var),
        { NULL }
 };
 #endif /* WITH_LIBCORE */
@@ -1625,10 +1625,16 @@ static serialization_t *compute_best_admissible_serialization(rss_t *rss, nodese
        In this case there is no serialization which could
        reduce the registerpressure
 */
-#define IS_UNSERIALIZABLE_NODE(rss_node)           \
-       ((plist_count(rss_node->pkiller_list) == 1) && \
-       is_Sink(rss_node->killer)                   && \
-       (rss_node->kill_count                 == 0))
+#define IS_UNSERIALIZABLE_NODE(rss_node)                  \
+       (                                                     \
+               (                                                 \
+                       (plist_count(rss_node->pkiller_list) == 1) && \
+                       is_Sink(rss_node->killer)                  && \
+                       (rss_node->kill_count                == 0)    \
+               )                            ||                   \
+               be_is_Barrier(rss_node->irn) ||                   \
+               be_is_Keep(rss_node->irn)                         \
+       )
 
        /* for all u in sat_vals */
        for (i = 0; i < n; ++i) {
@@ -1689,7 +1695,7 @@ static serialization_t *compute_best_admissible_serialization(rss_t *rss, nodese
                                ir_node *vv_irn  = plist_element_get_value(el);
                                int     add_edge;
 
-                               if (is_Sink(vv_irn))
+                               if (is_Sink(vv_irn) || is_cfop(vv_irn))
                                        continue;
 
                                if (is_pkiller)