From 466a0ec9985e540107ba6e92ba2f6a268ce04154 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 17 Apr 2000 15:41:59 +0000 Subject: [PATCH] Update. * elf/dl-reloc.c (_dl_relocat_object): Add more __builtin_expect. * elf/dl-lookup.c: Add more __builtin_expect. * elf/dl-init.c (_dl_init): Add more __builtin_expect. * elf/dl-fini.c (_dl_fini): Add more __builtin_expect. * elf/dl-deps.c (_dl_map_object_deps): Add more __builtin_expect. * elf/dl-close.c (_dl_close): Add more __builtin_expect. * elf/rtld.c (_dl_start_final): Add more __builtin_expect. --- ChangeLog | 8 ++++++++ elf/dl-close.c | 2 +- elf/dl-deps.c | 6 +++--- elf/dl-fini.c | 2 +- elf/dl-init.c | 4 ++-- elf/dl-lookup.c | 22 +++++++++++----------- elf/dl-reloc.c | 2 +- elf/rtld.c | 2 +- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 95dd041..a0d2e3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2000-04-17 Ulrich Drepper + * elf/dl-reloc.c (_dl_relocat_object): Add more __builtin_expect. + * elf/dl-lookup.c: Add more __builtin_expect. + * elf/dl-init.c (_dl_init): Add more __builtin_expect. + * elf/dl-fini.c (_dl_fini): Add more __builtin_expect. + * elf/dl-deps.c (_dl_map_object_deps): Add more __builtin_expect. + * elf/dl-close.c (_dl_close): Add more __builtin_expect. + * elf/rtld.c (_dl_start_final): Add more __builtin_expect. + * elf/dl-lookup.c (add_dependency): Correct __builtin_expect use. 2000-04-15 Ulrich Drepper diff --git a/elf/dl-close.c b/elf/dl-close.c index a58e8f8..d6f0000 100644 --- a/elf/dl-close.c +++ b/elf/dl-close.c @@ -80,7 +80,7 @@ _dl_close (void *_map) && imap->l_init_called) { /* When debugging print a message first. */ - if (_dl_debug_impcalls) + if (__builtin_expect (_dl_debug_impcalls, 0)) _dl_debug_message (1, "\ncalling fini: ", imap->l_name, "\n\n", NULL); diff --git a/elf/dl-deps.c b/elf/dl-deps.c index 899692e..d59f536 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -119,7 +119,7 @@ struct list else \ { \ /* This is for DT_AUXILIARY. */ \ - if (_dl_debug_libs) \ + if (__builtin_expect (_dl_debug_libs, 0)) \ _dl_debug_message (1, "cannot load auxiliary `", __str, \ "' because of empty dynamic string" \ " token substitution\n", NULL); \ @@ -280,7 +280,7 @@ _dl_map_object_deps (struct link_map *map, args.name = name; /* Say that we are about to load an auxiliary library. */ - if (_dl_debug_libs) + if (__builtin_expect (_dl_debug_libs, 0)) _dl_debug_message (1, "load auxiliary object=", name, " requested by file=", l->l_name[0] @@ -302,7 +302,7 @@ _dl_map_object_deps (struct link_map *map, else { /* Say that we are about to load an auxiliary library. */ - if (_dl_debug_libs) + if (__builtin_expect (_dl_debug_libs, 0)) _dl_debug_message (1, "load filtered object=", name, " requested by file=", l->l_name[0] diff --git a/elf/dl-fini.c b/elf/dl-fini.c index a285c77..f218689 100644 --- a/elf/dl-fini.c +++ b/elf/dl-fini.c @@ -141,7 +141,7 @@ _dl_fini (void) continue; /* When debugging print a message first. */ - if (_dl_debug_impcalls) + if (__builtin_expect (_dl_debug_impcalls, 0)) _dl_debug_message (1, "\ncalling fini: ", l->l_name[0] ? l->l_name : _dl_argv[0], "\n\n", NULL); diff --git a/elf/dl-init.c b/elf/dl-init.c index b455f5d..dfef83d 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -43,7 +43,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env) ElfW(Addr) *addrs; unsigned int cnt; - if (_dl_debug_impcalls) + if (__builtin_expect (_dl_debug_impcalls, 0)) _dl_debug_message (1, "\ncalling preinit: ", main_map->l_name[0] ? main_map->l_name : _dl_argv[0], "\n\n", NULL); @@ -94,7 +94,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env) continue; /* Print a debug message if wanted. */ - if (_dl_debug_impcalls) + if (__builtin_expect (_dl_debug_impcalls, 0)) _dl_debug_message (1, "\ncalling init: ", l->l_name[0] ? l->l_name : _dl_argv[0], "\n\n", NULL); diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 16e00b0..dc4564f 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -128,7 +128,7 @@ add_dependency (struct link_map *undef_map, struct link_map *map) if (runp != NULL) { /* The object is still available. Add the reference now. */ - if (act >= undef_map->l_reldepsmax) + if (__builtin_expect (act >= undef_map->l_reldepsmax, 0)) { /* Allocate more memory for the dependency list. Since this can never happen during the startup phase we can @@ -152,7 +152,7 @@ add_dependency (struct link_map *undef_map, struct link_map *map) This means this increment can never be reverted and the object will never be unloaded. This is semantically the correct behaviour. */ - if (act < undef_map->l_reldepsmax) + if (__builtin_expect (act < undef_map->l_reldepsmax, 1)) undef_map->l_reldeps[undef_map->l_reldepsact++] = map; /* And increment the counter in the referenced object. */ @@ -205,7 +205,7 @@ _dl_lookup_symbol (const char *undef_name, struct link_map *undef_map, in the global scope which was dynamically loaded. In this case we have to prevent the latter from being unloaded unless the UNDEF_MAP object is also unloaded. */ - if (current_value.m->l_global + if (__builtin_expect (current_value.m->l_global, 0) && (__builtin_expect (current_value.m->l_type, lt_library) == lt_loaded) && undef_map != current_value.m @@ -219,7 +219,7 @@ _dl_lookup_symbol (const char *undef_name, struct link_map *undef_map, break; } - if (current_value.s == NULL) + if (__builtin_expect (current_value.s == NULL, 0)) { if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) /* We could find no value for a strong reference. */ @@ -298,7 +298,7 @@ _dl_lookup_symbol_skip (const char *undef_name, in the global scope which was dynamically loaded. In this case we have to prevent the latter from being unloaded unless the UNDEF_MAP object is also unloaded. */ - if (current_value.m->l_global + if (__builtin_expect (current_value.m->l_global, 0) && (__builtin_expect (current_value.m->l_type, lt_library) == lt_loaded) && undef_map != current_value.m @@ -312,7 +312,7 @@ _dl_lookup_symbol_skip (const char *undef_name, break; } - if (current_value.s == NULL) + if (__builtin_expect (current_value.s == NULL, 0)) { *ref = NULL; return 0; @@ -364,7 +364,7 @@ _dl_lookup_versioned_symbol (const char *undef_name, in the global scope which was dynamically loaded. In this case we have to prevent the latter from being unloaded unless the UNDEF_MAP object is also unloaded. */ - if (current_value.m->l_global + if (__builtin_expect (current_value.m->l_global, 0) && (__builtin_expect (current_value.m->l_type, lt_library) == lt_loaded) && undef_map != current_value.m @@ -379,7 +379,7 @@ _dl_lookup_versioned_symbol (const char *undef_name, break; } - if (res < 0) + if (__builtin_expect (res, 0) < 0) { /* Oh, oh. The file named in the relocation entry does not contain the needed symbol. */ @@ -398,7 +398,7 @@ _dl_lookup_versioned_symbol (const char *undef_name, } } - if (current_value.s == NULL) + if (__builtin_expect (current_value.s == NULL, 0)) { if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) /* We could find no value for a strong reference. */ @@ -458,7 +458,7 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name, in the global scope which was dynamically loaded. In this case we have to prevent the latter from being unloaded unless the UNDEF_MAP object is also unloaded. */ - if (current_value.m->l_global + if (__builtin_expect (current_value.m->l_global, 0) && (__builtin_expect (current_value.m->l_type, lt_library) == lt_loaded) && undef_map != current_value.m @@ -494,7 +494,7 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name, break; } - if (current_value.s == NULL) + if (__builtin_expect (current_value.s == NULL, 0)) { if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) { diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c index fa8e31b..61bb6bc 100644 --- a/elf/dl-reloc.c +++ b/elf/dl-reloc.c @@ -38,7 +38,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], if (!consider_profiling && l->l_info[DT_BIND_NOW]) lazy = 0; - if (_dl_debug_reloc) + if (__builtin_expect (_dl_debug_reloc, 0)) _dl_debug_message (1, "\nrelocation processing: ", l->l_name[0] ? l->l_name : _dl_argv[0], lazy ? " (lazy)\n" : "\n", NULL); diff --git a/elf/rtld.c b/elf/rtld.c index 7e96034..46732ba 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -251,7 +251,7 @@ _dl_start_final (void *arg, struct link_map *bootstrap_map_p, HP_TIMING_DIFF (rtld_total_time, start_time, end_time); } - if (_dl_debug_statistics) + if (__builtin_expect (_dl_debug_statistics, 0)) print_statistics (); return *start_addr; -- 2.7.4