Skip to content

Improve macro-op fusion: skip nop and add lui + addi #184

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 4, 2023

Conversation

qwe661234
Copy link
Collaborator

@qwe661234 qwe661234 commented Aug 4, 2023

  1. Refine origin fused instruction by skipping insturction nop and correctly updating value to register.
  2. Add new fused insturction lui + addi.

Benchmark dhrystone gains about 3% performance improvement base on this modification.

Close: #177

@jserv
Copy link
Contributor

jserv commented Aug 4, 2023

Are you ready to close #177 ?

1. Refine origin fused instruction by skipping insturction nop and
   correctly updating value to register.
2. Add new fused insturction lui + addi.

Benchmark dhrystone gains about 3% performance improvement base on this
modification.

Close: sysprog21#177
@qwe661234 qwe661234 force-pushed the instruction_fusion branch from f064d63 to bdac249 Compare August 4, 2023 07:19
@qwe661234
Copy link
Collaborator Author

Are you ready to close #177 ?

Yes, we cannot find do_nop in perf report after this modification.

@qwe661234 qwe661234 requested a review from jserv August 4, 2023 08:23
@jserv jserv changed the title Refine instruction fusion and add new one Improve macro-op fusion: skip nop and add lui + addi Aug 4, 2023
@jserv jserv merged commit 7129e37 into sysprog21:master Aug 4, 2023
@qwe661234 qwe661234 deleted the instruction_fusion branch August 5, 2023 05:51
vestata pushed a commit to vestata/rv32emu that referenced this pull request Jan 24, 2025
This commit refines the macro fused instruction by skipping the "nop"
instruction and ensuring proper value updates to the register.
Additionally, it introduces a new fused instruction, lui + addi.
As a result of these modifications, the Dhrystone benchmark experiences
approximately a 3% performance improvement.

Close sysprog21#177

Co-authored-by: Yen-Fu Chen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

do_nop is not negligible
2 participants