Make the TargetMachine::getSubtarget that takes a Function argument
authorEric Christopher <echristo@gmail.com>
Fri, 20 Feb 2015 07:32:59 +0000 (07:32 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 20 Feb 2015 07:32:59 +0000 (07:32 +0000)
take a reference to match the getSubtargetImpl that takes a Function
argument.

llvm-svn: 229994

llvm/include/llvm/Target/TargetMachine.h
llvm/lib/Target/ARM/ARMAsmPrinter.h
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp

index af1fcd6..cdf643d 100644 (file)
@@ -113,7 +113,7 @@ public:
   template<typename STC> const STC &getSubtarget() const {
     return *static_cast<const STC*>(getSubtargetImpl());
   }
-  template <typename STC> const STC &getSubtarget(const Function *) const {
+  template <typename STC> const STC &getSubtarget(const Function &) const {
     return *static_cast<const STC*>(getSubtargetImpl());
   }
 
index 2401d0c..50cb954 100644 (file)
@@ -108,7 +108,7 @@ public:
     Triple TT(TM.getTargetTriple());
     if (!TT.isOSBinFormatMachO())
       return 0;
-    const ARMSubtarget &STI = TM.getSubtarget<ARMSubtarget>(F);
+    const ARMSubtarget &STI = TM.getSubtarget<ARMSubtarget>(*F);
     return STI.isThumb() ? ARM::DW_ISA_ARM_thumb : ARM::DW_ISA_ARM_arm;
   }
 
index f92b405..2a46b18 100644 (file)
@@ -1249,7 +1249,7 @@ void PPCDarwinAsmPrinter::EmitStartOfAsmFile(Module &M) {
   // FIXME: How should we merge darwin directives?
   unsigned Directive = PPC::DIR_NONE;
   for (const Function &F : M) {
-    const PPCSubtarget &STI = TM.getSubtarget<PPCSubtarget>(&F);
+    const PPCSubtarget &STI = TM.getSubtarget<PPCSubtarget>(F);
     unsigned FDir = STI.getDarwinDirective();
     Directive = Directive > FDir ? FDir : STI.getDarwinDirective();
     if (STI.hasMFOCRF() && Directive < PPC::DIR_970)