Add TableGen info for Power8.
This is based on the Power7 version, with units added and named to match P8.
Details
Diff Detail
Event Timeline
lib/Target/PowerPC/PPCScheduleP8.td | ||
---|---|---|
360 | If your comments capture the entire picture, then this should be 6, not 8. I think that, the real question, however, is not the instructions in each dispatch group going in, but how many (non-branch) instructions can be issued per cycle to the various pipelines. On the P7, this is 8 (two of which are branches, so 6 regular instructions), even though we can have only 4 per dispatch group. That;s why I put 6 in this field for the P7. |
I've been discussing a few related details with Pat Haugen on the side. I'll make a few updates and repost early in the coming week.
Notably, I'm missing a pair of LU units in this diff.
The gist of the clarification I got from Pat regarding the instruction dispatching is.. P7 has a 6 instruction dispatch group, with 8 instructions per cycle. P8 has an 8 instruction dispatch group and can issue 10 instructions per cycle.
lib/Target/PowerPC/PPCScheduleP8.td | ||
---|---|---|
360 | I've been discussing a few related details with Pat Haugen on the side. I'll make a few updates and repost early in the coming week. Notably, I'm missing a pair of LU units in this diff. The gist of the clarification I got from Pat regarding the instruction dispatching is.. P7 has a 6 instruction dispatch group, with 8 instructions per cycle. P8 has an 8 instruction dispatch group and can issue 10 instructions per cycle. |
lib/Target/PowerPC/PPCScheduleP8.td | ||
---|---|---|
360 | Great, thanks! Updating the comment here with that info would be useful. |
Updated with P8_LU* units added, units renamed to match documentation, and comments added/sprinkled throughout.
A notable thanks to Pat Haugen who provided guidance on a few of these changes.
lib/Target/PowerPC/PPCScheduleP8.td | ||
---|---|---|
47 | contract to -> contrast to the | |
246 | Assuming the i in ops stands for internal, internal iops seems somewhat redundant. | |
252 | Having ,0> at the end of the last InstrStage does not look right. That optional last number means "how many cycles must we wait before moving on to the next dispatch stage". Putting it on the last stage does not mean anything. Does it belong on the stage before? (or is there really a 1 cycle delay between the when the iop is dispatched to the LU) | |
257 | Same here; ,0> in the last stage does not mean anything. | |
379 | is -> has an |
Thanks for the reviews.
Cosmetic updates as recommended by Hal.
Removed the erroneous trailing ",0>" bits. That was simply sloppy copy/paste adjustments on my part.
contract to -> contrast to the