Change target-specific classes to use more precise static types.
This eliminates the need for several awkward casts, including
the last dynamic_cast under lib/Target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51091 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PIC16/PIC16TargetMachine.h b/lib/Target/PIC16/PIC16TargetMachine.h
index 93ef0d1..b89addc 100644
--- a/lib/Target/PIC16/PIC16TargetMachine.h
+++ b/lib/Target/PIC16/PIC16TargetMachine.h
@@ -47,7 +47,7 @@
   { return &DataLayout; }
   virtual PIC16TargetLowering *getTargetLowering() const 
   { return const_cast<PIC16TargetLowering*>(&TLInfo); }
-  virtual const TargetRegisterInfo *getRegisterInfo() const 
+  virtual const PIC16RegisterInfo *getRegisterInfo() const 
   { return &InstrInfo.getRegisterInfo(); }
   
   virtual bool addInstSelector(PassManagerBase &PM, bool Fast);