Define a runOnMachineFunction for the Hexagon AsmPrinter and
authorEric Christopher <echristo@gmail.com>
Tue, 3 Feb 2015 06:40:22 +0000 (06:40 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 3 Feb 2015 06:40:22 +0000 (06:40 +0000)
use it to initialize the subtarget.

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

lib/Target/Hexagon/HexagonAsmPrinter.cpp
lib/Target/Hexagon/HexagonAsmPrinter.h

index d0aef52dcea65d46b4a519b7dde665f888d02314..dd4bf1574d450a221d2e0399d0e1966d9709ff00 100644 (file)
@@ -63,9 +63,7 @@ static cl::opt<bool> AlignCalls(
 
 HexagonAsmPrinter::HexagonAsmPrinter(TargetMachine &TM,
                                      std::unique_ptr<MCStreamer> Streamer)
-    : AsmPrinter(TM, std::move(Streamer)) {
-  Subtarget = &TM.getSubtarget<HexagonSubtarget>();
-}
+    : AsmPrinter(TM, std::move(Streamer)), Subtarget(nullptr) {}
 
 void HexagonAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
                                     raw_ostream &O) {
index 66cc1ac167059d7ff392016c5f9aabe49d3be3e0..792fc8b7af3a55180f4d06da0715827cb54d7826 100644 (file)
@@ -28,6 +28,11 @@ namespace llvm {
     explicit HexagonAsmPrinter(TargetMachine &TM,
                                std::unique_ptr<MCStreamer> Streamer);
 
+    bool runOnMachineFunction(MachineFunction &Fn) override {
+      Subtarget = &Fn.getSubtarget<HexagonSubtarget>();
+      return AsmPrinter::runOnMachineFunction(Fn);
+    }
+
     const char *getPassName() const override {
       return "Hexagon Assembly Printer";
     }