[gold][patch] Small code refactoring
Ian Lance Taylor
iant@google.com
Fri Feb 13 15:23:00 GMT 2009
More information about the Binutils mailing list
Fri Feb 13 15:23:00 GMT 2009
- Previous message (by thread): [gold][patch] Small code refactoring
- Next message (by thread): [gold][patch] Small code refactoring
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Rafael Espindola <espindola@google.com> writes: > 2009/2/12 Rafael Espindola <espindola@google.com>: > 2009-02-12 Rafael Avila de Espindola <espindola@google.com> > > * archive.cc (Archive::get_elf_object_for_member): Update for > new make_elf_object signature. > * object.cc (make_elf_object): Rename to make_elf_object2. Make it > static. > (make_elf_object): New. > * object.h (make_elf_object): Update signature. > * readsyms.cc (Read_symbols::do_read_symbols): Update for > new make_elf_object signature. > * testsuite/binary_unittest.cc (Sized_binary_test): Update for > new make_elf_object signature. > * testsuite/object_unittest.cc (Sized_object_test): Update for > new make_elf_object signature. > + if (!o) > + gold_error(_("%s: member at %zu is not an ELF object"), > + this->name().c_str(), static_cast<size_t>(off)); Write "if (o == NULL)" rather than "if (!o)". Actually, I think you are taking slightly the wrong approach here. The two cases have different error handling behaviour--that's why they wound up being different. In the archive case, if it's not an ELF file, we fail immediately. In the readsyms case, we go on to check for a linker script. Also, your version calls get_view twice in the normal case. gold gets a surprising amount of its speed by carefully avoiding these sorts of micro-deoptimizations in the normal case. I spent a lot of time profiling to find them. One approach here would be to write a predicate is_elf_object which takes read_size and ehdr and returns whether it looks like ELF. Then if is_elf_object returns true, call make_elf_object. Thanks for looking at this. Ian
- Previous message (by thread): [gold][patch] Small code refactoring
- Next message (by thread): [gold][patch] Small code refactoring
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list