SimEng
SimEng copied to clipboard
Use a pool allocator for AArch64 Instruction instances
aarch64::Instruction instances are currently generated using std::make_shared, which allocates heap space for the relevant instruction. This incurs a memory management overhead, both at construction and at destruction when the resources are freed (when the last shared pointer is deleted).
Replacing this with a pool allocator would reduce the overhead significantly and result in an estimated performance increase of 10-20%.