Add a similar templated cast for getSubtarget off of the MachineFunction
authorEric Christopher <echristo@gmail.com>
Fri, 30 Jan 2015 22:02:19 +0000 (22:02 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 30 Jan 2015 22:02:19 +0000 (22:02 +0000)
to save typing a lot of static_casts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227621 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/MachineFunction.h

index 4e9ff9ebb4fead3136df917bc799b1f8eeb6325d..5d037428942acc06649462784175e717ac701803 100644 (file)
@@ -176,6 +176,13 @@ public:
   const TargetSubtargetInfo &getSubtarget() const { return *STI; }
   void setSubtarget(const TargetSubtargetInfo *ST) { STI = ST; }
 
+  /// getSubtarget - This method returns a pointer to the specified type of
+  /// TargetSubtargetInfo.  In debug builds, it verifies that the object being
+  /// returned is of the correct type.
+  template<typename STC> const STC &getSubtarget() const {
+    return *static_cast<const STC *>(STI);
+  }
+
   /// getRegInfo - Return information about the registers currently in use.
   ///
   MachineRegisterInfo &getRegInfo() { return *RegInfo; }