X86: Don't read in dest regs if all bits are replaced.
Review Request #464 - Created Feb. 2, 2011 and submitted
| Information | |
|---|---|
| Gabe Black | |
| gem5 | |
| Reviewers | |
| Default | |
| ali, gblack, nate, stever | |
X86: Don't read in dest regs if all bits are replaced. In x86, 32 and 64 bit writes to registers in when registers appear to be 32 or 64 bits wide overwrite all bits of the destination register. This change removes false dependencies in these cases where the previous value of a register doesn't need to be read to write a new value. New versions of most microops are created that have a "Big" suffix which simply overwrite their destination, and the right version to use is selected during microop allocation based on the selected data size. This does not change the performance of the O3 CPU model significantly, I assume because there are other false dependencies from the condition code bits in the flags register.
Posted (Feb. 5, 2011, 2:54 a.m.)
The summary line caught my eye and I had no idea what it really meant until I read the rest of the message. After reading it, I understood what you were trying to say. Perhaps saying something like "don't read register for update when overwriting all bits" Perhaps that's not any better though.
-
src/arch/isa_parser.py (Diff revision 1) -
I don't think you want this.
