godot/core
Hein-Pieter van Braam 4240e3d668 Optimizations for trivial types
Relying on various compiler primitives we can reduce the work done
in our memory allocators and CowData. For types with trivial ctors or
dtors we can skip looping over all elements when creating, resizing,
and destroying lists of objects.

These primitives are supported by clang, msvc, and GCC. However, once
we've moved to C++11 we can rely on several std:: primitives that do
the same thing and are standardized.

In my testing the extra conditionals introduced here get removed from
the generated program entirely as the results for these primitives is
known at compile time.
2019-01-03 08:47:34 +01:00
..
bind Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
io Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
math Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
os Optimizations for trivial types 2019-01-03 08:47:34 +01:00
allocators.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
array.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
array.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
class_db.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
class_db.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
color_names.inc Make core/ includes absolute, remove subfolders from include path 2018-09-12 09:52:22 +02:00
color.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
color.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
command_queue_mt.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
command_queue_mt.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
compressed_translation.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
compressed_translation.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
core_builders.py Allow system certs file to be used by Editor. 2018-09-15 14:45:54 +02:00
core_string_names.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
core_string_names.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
cowdata.h Optimizations for trivial types 2019-01-03 08:47:34 +01:00
dictionary.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
dictionary.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
dvector.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
dvector.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
engine.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
engine.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
error_list.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
error_macros.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
error_macros.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
func_ref.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
func_ref.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
global_constants.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
global_constants.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
hash_map.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
hashfuncs.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
image.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
image.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
input_map.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
input_map.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
int_types.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
list.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
make_binders.py fix windows build using python 3.7 2018-07-28 18:13:48 +02:00
map.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
message_queue.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
message_queue.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
method_bind.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
method_bind.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
method_ptrcall.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
node_path.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
node_path.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
oa_hash_map.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
object.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
object.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ordered_hash_map.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
packed_data_container.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
packed_data_container.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
pair.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
path_remap.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
path_remap.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
pool_allocator.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
pool_allocator.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
print_string.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
print_string.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
project_settings.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
project_settings.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ref_ptr.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ref_ptr.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
reference.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
reference.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
register_core_types.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
register_core_types.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
resource.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
resource.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
rid.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
rid.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ring_buffer.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
safe_refcount.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
safe_refcount.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_debugger_local.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_debugger_local.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_debugger_remote.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_debugger_remote.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_language.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
script_language.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
SCsub Core: Drop unused global_defaults logic 2018-12-20 11:02:49 +01:00
self_list.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
set.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
simple_type.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
sort.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
string_buffer.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
string_builder.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
string_builder.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
string_db.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
string_db.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
translation.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
translation.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
type_info.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
typedefs.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ucaps.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
undo_redo.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
undo_redo.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ustring.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
ustring.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant_call.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant_construct_string.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant_op.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant_parser.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant_parser.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant.cpp Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
variant.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
vector.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
version.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
vmap.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
vset.h Update copyright statements to 2019 2019-01-01 12:58:10 +01:00