-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
jit: Implement register allocation #418
Conversation
Implement the register allocator with linear-scan register allocation. The "reg_table" is removed and integrated to the "host_reg" for convenience of accessing the vm register by the "reg_idx". The performance comparsion is shown below: * x86-64 | Metric | Original | w/ reg-alloc | SpeedUp | |-----------+----------------+----------------+---------| | dhrystone | 14060 DMIPS | 15225 DMIPS | +8.29% | | coremark | 3874 iters/s | 3828 iters/s | -1.19% | | aes | 0.0297 s | 0.0323 s | -8.75% | | nqueens | 2.16 s | 2.05 s | +5.09% | | stream | 29.6 s | 27.6 s | +6.76% |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enforce consistent naming scheme, in the form item_action
. E.g., prefer liveness_calc
instead of calc_liveness
.
Is it better to use |
Yes, to avoid unintended symbol conflicts, let's stick to the requested naming scheme across compilation units. |
Thank @vacantron for contributing! |
This commit implements the register allocator using linear-scan register allocation. The "reg_table" has been removed and integrated into the "host_reg" for easier access to the VM register by the "reg_idx". The performance comparison is shown below: (x86-64) | Metric | Original | w/ reg-alloc | SpeedUp | |-----------+----------------+----------------+---------| | dhrystone | 14060 DMIPS | 15225 DMIPS | +8.29% | | coremark | 3874 iters/s | 3828 iters/s | -1.19% | | aes | 0.0297 s | 0.0323 s | -8.75% | | nqueens | 2.16 s | 2.05 s | +5.09% | | stream | 29.6 s | 27.6 s | +6.76% |
Implement the register allocator with linear-scan register allocation. The
reg_table
is removed and integrated to thehost_reg
for convenience of accessing the vm register by thereg_idx
.The performance comparsion is shown below: