gcc/libstdc++-v3/libsupc++
Jason Merrill 873d395c29 libstdc++: small dynamic_cast optimization
This change speeds up the simple benchmark below by about 40%.

struct A { virtual ~A() {} };
struct B: A { } b;
A* ap = &b;
void *sink;
int main()
{
  for (long i = 0; i < 4000000000L; ++i)
    sink = dynamic_cast<B*>(ap);
}

libstdc++-v3/ChangeLog:

	* libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
	call in simple success case.
2022-09-07 10:11:54 -04:00
..
array_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
atexit_arm.cc Update copyright years. 2022-01-03 10:42:10 +01:00
atexit_thread.cc Update copyright years. 2022-01-03 10:42:10 +01:00
atomic_lockfree_defines.h Update copyright years. 2022-01-03 10:42:10 +01:00
bad_alloc.cc Update copyright years. 2022-01-03 10:42:10 +01:00
bad_array_length.cc Update copyright years. 2022-01-03 10:42:10 +01:00
bad_array_new.cc Update copyright years. 2022-01-03 10:42:10 +01:00
bad_cast.cc Update copyright years. 2022-01-03 10:42:10 +01:00
bad_typeid.cc Update copyright years. 2022-01-03 10:42:10 +01:00
class_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
compare libstdc++: Do not use #include inside push visibility scope [PR99871] 2022-05-06 14:43:39 +01:00
cxxabi_forced.h Update copyright years. 2022-01-03 10:42:10 +01:00
cxxabi_init_exception.h Update copyright years. 2022-01-03 10:42:10 +01:00
cxxabi.h Update copyright years. 2022-01-03 10:42:10 +01:00
del_op.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opa.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opant.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opnt.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_ops.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opsa.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opv.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opva.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opvant.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opvnt.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opvs.cc Update copyright years. 2022-01-03 10:42:10 +01:00
del_opvsa.cc Update copyright years. 2022-01-03 10:42:10 +01:00
dyncast.cc libstdc++: small dynamic_cast optimization 2022-09-07 10:11:54 -04:00
eh_alloc.cc Fix bug in emergency cxa pool free 2022-08-17 10:40:01 +02:00
eh_arm.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_atomics.h Update copyright years. 2022-01-03 10:42:10 +01:00
eh_aux_runtime.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_call.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_catch.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_exception.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_globals.cc libstdc++: eh_globals: gthreads: reset _S_init before deleting key 2022-06-21 23:11:02 -03:00
eh_personality.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_ptr.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_term_handler.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_term_handler.h Update copyright years. 2022-01-03 10:42:10 +01:00
eh_terminate.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_throw.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_tm.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_type.cc Update copyright years. 2022-01-03 10:42:10 +01:00
eh_unex_handler.cc Update copyright years. 2022-01-03 10:42:10 +01:00
enum_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
exception libstdc++: Do not use #include inside push visibility scope [PR99871] 2022-05-06 14:43:39 +01:00
exception_defines.h Update copyright years. 2022-01-03 10:42:10 +01:00
exception_ptr.h libstdc++: Allow std::swap to find overload for std::exception_ptr 2022-05-13 20:40:04 +01:00
exception.h libstdc++: Do not use #include inside push visibility scope [PR99871] 2022-05-06 14:43:39 +01:00
function_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
fundamental_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
guard_error.cc Update copyright years. 2022-01-03 10:42:10 +01:00
guard.cc Update copyright years. 2022-01-03 10:42:10 +01:00
hash_bytes.cc Update copyright years. 2022-01-03 10:42:10 +01:00
hash_bytes.h Update copyright years. 2022-01-03 10:42:10 +01:00
initializer_list libstdc++: Do not use #include inside push visibility scope [PR99871] 2022-05-06 14:43:39 +01:00
Makefile.am libstdc++: Fix and simplify freestanding configuration [PR103866] 2022-01-10 12:18:14 +00:00
Makefile.in libstdc++: Define <stacktrace> header for C++23 2022-01-17 12:13:02 +00:00
nested_exception.cc Update copyright years. 2022-01-03 10:42:10 +01:00
nested_exception.h libstdc++: Make std::rethrow_if_nested work without RTTI 2022-05-13 20:39:59 +01:00
new libstdc++: Ensure all feature test macros have type long [PR87193] 2022-01-21 16:07:34 +00:00
new_handler.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_op.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opa.cc libstdc++: Add comment about memalign requirements 2022-03-31 16:18:00 +01:00
new_opant.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opnt.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opv.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opva.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opvant.cc Update copyright years. 2022-01-03 10:42:10 +01:00
new_opvnt.cc Update copyright years. 2022-01-03 10:42:10 +01:00
pbase_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
pmem_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
pointer_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
pure.cc Update copyright years. 2022-01-03 10:42:10 +01:00
si_class_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
tinfo2.cc Update copyright years. 2022-01-03 10:42:10 +01:00
tinfo.cc libstdc++: Implement P1328 "Making std::type_info::operator== constexpr" 2022-01-05 14:43:01 +00:00
tinfo.h Update copyright years. 2022-01-03 10:42:10 +01:00
typeinfo libstdc++: Remove whitespace before preprocessor directives 2022-05-12 18:04:01 +01:00
unwind-cxx.h Update copyright years. 2022-01-03 10:42:10 +01:00
vec.cc Update copyright years. 2022-01-03 10:42:10 +01:00
vmi_class_type_info.cc Update copyright years. 2022-01-03 10:42:10 +01:00
vterminate.cc Update copyright years. 2022-01-03 10:42:10 +01:00
vtv_stubs.cc Update copyright years. 2022-01-03 10:42:10 +01:00