[X86] Remove ProcModel and ProcFeatures tablegen classes. Move all feature lists...
authorCraig Topper <craig.topper@intel.com>
Mon, 11 Mar 2019 22:29:00 +0000 (22:29 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 11 Mar 2019 22:29:00 +0000 (22:29 +0000)
commita958d40e78367642257e6f624769b5fa9e0eab11
tree5886a260f4a5e3ac54eb68c599a4a4494acabc0e
parent607774c960dbaf32773e2ddae72190f6e48d9d60
[X86] Remove ProcModel and ProcFeatures tablegen classes. Move all feature lists into a ProcessorFeatures class.

ProcFeatures was a class that just concatenated two feature lists together and gave it a name. We used it to inherit features between CPUs.

ProcModel took a two CPU feature lists and concatenated them before deferring to ProcessorModel. This was to allow inherited features and specific features to be passed to each CPU.

Both of these allowed for only very rigid CPU inheritance rules.

With this patch we now store all of the lists we were using for inheritance in one object and do any list oncatenation we want there. Then we just pass whatever list we want from this class into the ProcessorModel class for each CPU.

Hopefully this gives us more flexibility to build up feature lists in whatever ways we think make sense. Perhaps untangling ISA flags and tuning flags.

I've only touched the CPUs that were directly affected by the removal of the ProcModel and ProcFeatures classes. We should move more of the feature lists into ProcessorFeatures.

llvm-svn: 355872
llvm/lib/Target/X86/X86.td