[Patch / Refactor] Register tracking class - minor overhaul
Original Reporter info from Mantis: CuriousKit @CuriousKit
-
Reporter name: J. Gareth Moreton
Original Reporter info from Mantis: CuriousKit @CuriousKit
- Reporter name: J. Gareth Moreton
Description:
This patch redesigns some parts of TUsedRegs to make it more self-contained and removes some quirky behaviour where external methods accessed private fields. This also permits better extension of the class in the future. It also speeds up the use of TmpUsedRegs by removing the need to parse through a group of tai objects for every register type.
Steps to reproduce:
Apply patch and confirm correct compilation without any changes to generated code.
Additional information:
Timings on arm-linux (I can't test x86_64-win64 currently) suggest that the compiler runs very slightly faster, but it's not conclusive (pp3 stage of "make cycle" with -vs option):
Trunk
[29.691] 399115 lines compiled, 29.7 sec, 3914432 bytes code, 1122404 bytes data
[29.215] 399115 lines compiled, 29.2 sec, 3914432 bytes code, 1122404 bytes data
[29.492] 399115 lines compiled, 29.5 sec, 3914432 bytes code, 1122404 bytes data
Refactor
[29.152] 399138 lines compiled, 29.2 sec, 3914528 bytes code, 1122420 bytes data
[29.230] 399138 lines compiled, 29.2 sec, 3914528 bytes code, 1122420 bytes data
[29.164] 399138 lines compiled, 29.2 sec, 3914528 bytes code, 1122420 bytes data
Mantis conversion info:
- Mantis ID: 38956
- OS: Debian GNU/LInux (Raspberry Pi)
- OS Build: 10
- Build: r49132
- Platform: Cross-platform
- Version: 3.3.1