History

Move some basic offset functions to header files for inlining ease Replace enum_pointer_field functions with custom implementations - GC now has custom implementation - other implementations use template<> version Fix misuse of shared_ptr<type_descriptor_t> in various built-in types Observed 5 - 8 % improvement in GC for compiler scenario.

arr committed 9 years ago

Commit cd2748b1 parent 3dd1c8210 files · +115 −160Browse files

Showing the changes to src/vm/list.cpp (1 of 10 files). Show all

Unified · Split

src/vm/list.cpp+1−1
@@ -26,11 +26,11 @@ std::shared_ptr<const type_descriptor_t> vm_list_t::type_desc() · 25 unmodified lines
26 26
27vm_list_t::vm_list_t(std::shared_ptr<const type_descriptor_t> td, vm_list_t *tail)27vm_list_t::vm_list_t(std::shared_ptr<const type_descriptor_t> td, vm_list_t *tail)
28 : vm_alloc_t(vm_list_t::type_desc())28 : vm_alloc_t(vm_list_t::type_desc())
29 , _element_type{ td }
30 , _is_alloc{ sizeof(_mem) < td->size_in_bytes }29 , _is_alloc{ sizeof(_mem) < td->size_in_bytes }
31 , _mem{}30 , _mem{}
32 , _tail{ nullptr }31 , _tail{ nullptr }
33{32{
33 _element_type = std::move(td);
34 assert(_element_type != nullptr);34 assert(_element_type != nullptr);
35 set_tail(tail);35 set_tail(tail);
36 36