Incoming API Changes

Hi All,

Just wanted to give some warning (especially now that 3.5 has
branched) that some of the TargetMachine/TargetSubtargetInfo changes
that I've been talking about are incoming here soon. I'll be
submitting them as I get them done, but there's a lot of mechanical
changes so it takes a bit - even using sed/refactoring tools. :slight_smile:

Here's the current plan:

a) Removing TargetMachine->TargetSubtargetInfo scaffold
- Now that all of the in-tree backends have been rewritten to support
this I'm going to go ahead and remove the TargetMachine forwards so
that I can...

b) Have getSubtarget/getSubtargetImpl take a Function/MachineFunction
  - Next on the list, this will enable us to deal with using
subtargets based on Function/MachineFunction attributes (target-cpu,
target-features) - also caching of interfaces

c) Continue cleaning up uses etc. This will involve removing
resetSubtargetFeatures shortly after b and the mips instruction
selection pass. Also things like caching the subtarget rather than the
target in places that it seems to make sense (SelectionDAG for
example).

If there are any problems yell as soon as you see them and I'll
happily work with everyone to get it fixed.

Thanks!

-eric

Nice! This is been a long road to get to this point. Thanks for seeing it through.

-Jim