ladybird/Userland/Libraries/LibJS/Heap
Aliaksandr Kalenik e79d4f3462 LibJS: Early reject pointers outside of allocated blocks range in GC
This change adds a check to discard pointers that are lower than the
minimum address of all allocated blocks or higher than the maximum
address of all blocks. By doing this we avoid executing plenty of set()
operations on the HashMap in the add_possible_value().

With this change gather_conservative_roots() run 10x times faster in
Speedometer React-Redux-TodoMVC test.
2023-09-30 08:07:12 +02:00
..
BlockAllocator.cpp
BlockAllocator.h
Cell.cpp LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
Cell.h AK+LibJS: Introduce JS::HeapFunction 2023-08-19 05:03:17 +02:00
CellAllocator.cpp
CellAllocator.h
DeferGC.h LibJS: Make GC deferral friendship based 2023-09-25 13:19:25 +02:00
GCPtr.h LibJS+LibWeb: Mark NonnullGCPtr::ptr() as returns_nonnull 2023-08-07 22:20:03 -04:00
Handle.cpp LibJS: Add source location for Handle nodes in GC graph dumper output 2023-09-24 14:55:32 +02:00
Handle.h LibJS: Add source location for Handle nodes in GC graph dumper output 2023-09-24 14:55:32 +02:00
Heap.cpp LibJS: Early reject pointers outside of allocated blocks range in GC 2023-09-30 08:07:12 +02:00
Heap.h LibJS: Early reject pointers outside of allocated blocks range in GC 2023-09-30 08:07:12 +02:00
HeapBlock.cpp LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
HeapBlock.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
HeapFunction.h LibJS: Declare HeapFunction::function() with [[nodiscard]] 2023-09-26 19:42:59 +02:00
HeapRoot.h LibJS: Add source location for Handle nodes in GC graph dumper output 2023-09-24 14:55:32 +02:00
Internals.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
MarkedVector.cpp
MarkedVector.h LibJS: Add source location for Handle nodes in GC graph dumper output 2023-09-24 14:55:32 +02:00