The current sched model does not have proper numbers for many128-bit instructions. This patch is the first one which tries to fix this issue.
Details
Diff Detail
Event Timeline
We're adding a lot of instregex exntries just to get around the poor quality of the sched classes in X86Schedule.td - better to fix them?
lib/Target/X86/X86ScheduleBtVer2.td | ||
---|---|---|
578 | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU | |
583 | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU | |
588 | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU? | |
596 | Remove ResourceCyles? Looks like the default. | |
598 | I wonder if we'd be better off introducing WriteVecLoad/WriteVecStore/WriteVecMove sched rw classes like the FIXME comment at line 140 suggests? | |
602 | Shouldn't stores (mr) have a JSAGU dependency? | |
604 | Should JLAGU be first for a load? | |
606 | Remove ResourceCyles? Looks like the default. | |
624 | Would we be better off introducing a WriteFCmp sched rw class to cover max/min and cmp? | |
674 | Don't include commented out lines. | |
680 | Don't include commented out lines. |
It seems I missed this comment: what do you mean here? I suppose it is what you wrote in PR17367. Am I right? If yes I could try to make the first steps in this direction but obviously the patch will increase in this case because:
- we're going to add the common classes;
- as result we'll be forced to fix several models simulteniously.
Is it OK?
lib/Target/X86/X86ScheduleBtVer2.td | ||
---|---|---|
558 | The MULPS versions don't seem to be necessary - they match the WriteFMul defaults - its just the MULPD versions we need. | |
586 | Please can you add the SSE4A MOVNTSDmr/MOVNTSSmr cases here? Note they don't have a V prefix. | |
595 | Are the moves doing anything at all? I didn't see any changes to the schedule tests. If not just remove this |
I removed WriteVecLoad as RKSimon required: it did not have any influence on cost numbers.
The MULPS versions don't seem to be necessary - they match the WriteFMul defaults - its just the MULPD versions we need.