[X86] Use regular expressions more aggressively to reduce the number of scheduler...
authorCraig Topper <craig.topper@intel.com>
Tue, 12 Dec 2017 08:17:04 +0000 (08:17 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 12 Dec 2017 08:17:04 +0000 (08:17 +0000)
commitc8e64ab539ce316b790134cad55d46602a510021
tree84b80dd03899ff719d38fc9c0884641c74b2fe44
parent66cf383761f40ef1f622ea6224d4497a65a32668
[X86] Use regular expressions more aggressively to reduce the number of scheduler entries needed for FMA3 instructions.

When the scheduler tables are generated by tablegen, the instructions are divided up into groups based on their default scheduling information and how they are referenced by groups for each processor. For any set of instructions that are matched by a specific InstRW line, that group of instructions is guaranteed to not be in a group with any other instructions. So in general, the more InstRW class definitions are created, the more groups we end up with in the generated files. Particularly if a lot of the InstRW lines only match to single instructions, which is true of a large number of the Intel scheduler models.

This change alone reduces the number of instructions groups from ~6000 to ~5500. And there's lots more we could do.

llvm-svn: 320461
llvm/lib/Target/X86/X86SchedBroadwell.td
llvm/lib/Target/X86/X86SchedHaswell.td
llvm/lib/Target/X86/X86SchedSkylakeClient.td
llvm/lib/Target/X86/X86SchedSkylakeServer.td