X86: Break flags in to read and write sets
Review Request #1161 - Created April 21, 2012 and discarded
| Information | |
|---|---|
| Nilay Vaish | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 8963:eb9b72c1c919 --------------------------- X86: Break flags in to read and write sets Currently, each instruction specifies the flags it is going to read, write as a single set. This patch introduces separate read and write sets. This is required for reducing the RAW dependencies. If no flag bit needs to be read (empty read set), and all the flag bits are being written, then there is no need to read the flagbits register. The dependencies will be reduced further when the ccflagbits register is split into multiple registers.
Issue Summary
2
2
0
0
| Description | From | Last Updated | Status |
|---|---|---|---|
| Why did you make a copy of this class? | Gabe Black | April 21, 2012, 1:18 p.m. | Open |
| Could use some comments here on what this class is (same for RegOp3 and RegOp4). I realize that's not in ... | Steve Reinhardt | April 22, 2012, 11:09 a.m. | Open |
Posted (April 21, 2012, 1:18 p.m.)
It shouldn't be necessary to specify two different sets of flags. The microops already either read the flags, or write the flags with an implicit read to support partial updating, but they don't ever do both (please tell me if I'm forgetting one that does). In either of those cases, we can automatically figure out what goes in a read set or a write set. If it's a microop that reads flags (conditional, in other words) then the flags are all reads. If it's a microop that writes flags (an add, subtract, etc.) then it writes, and reads anything that isn't completely covered by writes.
-
src/arch/x86/isa/microops/regop.isa (Diff revision 1) -
Why did you make a copy of this class?
Review request changed
Updated (April 22, 2012, 1:32 a.m.)
Description: |
|
||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+124 -78) |
Posted (April 22, 2012, 11:09 a.m.)
-
src/arch/x86/isa/microops/regop.isa (Diff revision 2) -
Could use some comments here on what this class is (same for RegOp3 and RegOp4). I realize that's not in keeping with the style of this file ;-). Also, totally outside the scope of this patch, but as a longer-term goal it would be nice to take these really big hunks of python and just put them in .py files and import them indirectly... Conversely, it would be nice if the microcode files that are .py files but which each exist solely to define a single really long string constant were redone as .isa files or something similar. Sorry for the big tangent, but this just reminded me of those thoughts.
