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
- Repository
- rL LLVM
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 ↗ | (On Diff #122990) | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU |
583 ↗ | (On Diff #122990) | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU |
588 ↗ | (On Diff #122990) | Shouldn't stores (mr) have a JSAGU dependency not a JLAGU? |
596 ↗ | (On Diff #122990) | Remove ResourceCyles? Looks like the default. |
598 ↗ | (On Diff #122990) | I wonder if we'd be better off introducing WriteVecLoad/WriteVecStore/WriteVecMove sched rw classes like the FIXME comment at line 140 suggests? |
602 ↗ | (On Diff #122990) | Shouldn't stores (mr) have a JSAGU dependency? |
604 ↗ | (On Diff #122990) | Should JLAGU be first for a load? |
606 ↗ | (On Diff #122990) | Remove ResourceCyles? Looks like the default. |
624 ↗ | (On Diff #122990) | Would we be better off introducing a WriteFCmp sched rw class to cover max/min and cmp? |
674 ↗ | (On Diff #122990) | Don't include commented out lines. |
680 ↗ | (On Diff #122990) | 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 | ||
---|---|---|
582 ↗ | (On Diff #124360) | The MULPS versions don't seem to be necessary - they match the WriteFMul defaults - its just the MULPD versions we need. |
610 ↗ | (On Diff #124360) | Please can you add the SSE4A MOVNTSDmr/MOVNTSSmr cases here? Note they don't have a V prefix. |
619 ↗ | (On Diff #124360) | 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.