static void dcache_info (char *exp, int tty) { splay_tree_node n; int i, refcount; if (exp) { char *linestart; i = strtol (exp, &linestart, 10); if (linestart == exp || i < 0) { printf_filtered (_("Usage: info dcache [linenumber]\n")); return; } dcache_print_line (i); return; } printf_filtered (_("Dcache %u lines of %u bytes each.\n"), dcache_size, last_cache ? (unsigned) last_cache->line_size : dcache_line_size); if (!last_cache || ptid_equal (last_cache->ptid, null_ptid)) { printf_filtered (_("No data cache available.\n")); return; } printf_filtered (_("Contains data for %s\n"), target_pid_to_str (last_cache->ptid)); refcount = 0; n = splay_tree_min (last_cache->tree); i = 0; while (n) { struct dcache_block *db = (struct dcache_block *) n->value; printf_filtered (_("Line %d: address %s [%d hits]\n"), i, paddress (target_gdbarch, db->addr), db->refs); i++; refcount += db->refs; n = splay_tree_successor (last_cache->tree, n->key); } printf_filtered (_("Cache state: %d active lines, %d hits\n"), i, refcount); }
static void dcache_print_line (int index) { splay_tree_node n; struct dcache_block *db; int i, j; if (!last_cache) { printf_filtered (_("No data cache available.\n")); return; } n = splay_tree_min (last_cache->tree); for (i = index; i > 0; --i) { if (!n) break; n = splay_tree_successor (last_cache->tree, n->key); } if (!n) { printf_filtered (_("No such cache line exists.\n")); return; } db = (struct dcache_block *) n->value; printf_filtered (_("Line %d: address %s [%d hits]\n"), index, paddress (target_gdbarch, db->addr), db->refs); for (j = 0; j < LINE_SIZE; j++) { printf_filtered ("%02x ", db->data[j]); /* Print a newline every 16 bytes (48 characters) */ if ((j % 16 == 15) && (j != LINE_SIZE - 1)) printf_filtered ("\n"); } printf_filtered ("\n"); }
struct ipa_dfs_info *info = (struct ipa_dfs_info *) node->aux; if (!info) info = XCNEW (struct ipa_dfs_info); info->new_node = true; info->on_stack = false; info->next_cycle = NULL; node->aux = info; splay_tree_insert (env.nodes_marked_new, (splay_tree_key)node->uid, (splay_tree_value)node); } else node->aux = NULL; } result = splay_tree_min (env.nodes_marked_new); while (result) { node = (struct cgraph_node *)result->value; searchc (&env, node, ignore_edge); result = splay_tree_min (env.nodes_marked_new); } splay_tree_delete (env.nodes_marked_new); free (env.stack); return env.order_pos; } /* Deallocate all ipa_dfs_info structures pointed to by the aux pointer of call graph nodes. */
interval_tree_node interval_tree_min(interval_tree tree) { CHECK_MUTEX_LOCKED(tree->mutex); return splay_tree_min(tree->splay); }