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.

llvm-svn: 51091
diff --git a/llvm/lib/Target/Alpha/Alpha.h b/llvm/lib/Target/Alpha/Alpha.h
index 40725af..77b404f 100644
--- a/llvm/lib/Target/Alpha/Alpha.h
+++ b/llvm/lib/Target/Alpha/Alpha.h
@@ -25,7 +25,7 @@
   class MachineCodeEmitter;
 
   FunctionPass *createAlphaSimpleInstructionSelector(TargetMachine &TM);
-  FunctionPass *createAlphaISelDag(TargetMachine &TM);
+  FunctionPass *createAlphaISelDag(AlphaTargetMachine &TM);
   FunctionPass *createAlphaCodePrinterPass(std::ostream &OS,
                                              TargetMachine &TM);
   FunctionPass *createAlphaPatternInstructionSelector(TargetMachine &TM);