+
+/* Optimize the address expressions passed to call nodes.
+ * Alle SymConst-Operationen, die auf interne Methoden verweisen,
+ * werden durch Const-Operationen ersetzt.
+ * Sel Knoten deren entitaeten nicht ueberschrieben werden, werden
+ * durch Const ersetzt.
+ * Sel Knoten, fuer die keine Implementierung existiert, werden
+ * durch Bad ersetzt. */
+void opt_call_addrs(void) {
+ sel_methods_init();
+ sel_methods_dispose();
+#if 0
+ int i;
+ pmap * ldname_map = pmap_create();
+ assert(entities == NULL);
+ entities = eset_create();
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ entity * ent = get_irg_ent(get_irp_irg(i));
+ /* Nur extern sichtbare Methoden können überhaupt mit SymConst
+ * aufgerufen werden. */
+ if (get_entity_visibility(ent) != local) {
+ pmap_insert(ldname_map, (void *) get_entity_ld_ident(ent), ent);
+ }
+ }
+ all_irg_walk((irg_walk_func *) sel_methods_walker, NULL, ldname_map);
+ pmap_destroy(ldname_map);
+#endif
+}