Sha256: 1b1b9581ea6137663cfe40125980d9c76c473c9b12d874e3c5ab5d000b26ea37
Contents?: true
Size: 1.12 KB
Versions: 38
Compression:
Stored size: 1.12 KB
Contents
# Features - Large-input support (> 1M vregs, > 1M blocks) - Two operand impls: u64-based and u32-based. Always accept u64-based `Operand` publicly (do not expose this in interface). - Trait to generalize over them and support both internally (parameterize the whole allocator impl) - On data-structure init, choose one or the other based on max vreg index - Update halfmove keys: u128 rather than u64 - Support allocation of register pairs (or overlapping registers generally) - Rematerialization - Stack-location constraints that place operands in user-defined stack locations (distinct from SpillSlots) (e.g., stack args) # Performance - Investigate better register hinting - Investigate more principled cost functions and split locations, especially around loop nests - Investigate ways to improve bundle-merging; e.g., merge moves before other types of connections - Add limited inter-block redundant-move elimination: propagate across splits but not joins. - Optimize allocations (some reports of 5-7% of time spent in allocator) # Cleanup - Remove support for non-SSA code once no longer necessary
Version data entries
38 entries across 38 versions & 1 rubygems