OSDN Git Service

CodeGen: Add MachineInstr::getMF(). NFC
authorJustin Bogner <mail@justinbogner.com>
Tue, 10 Oct 2017 23:34:01 +0000 (23:34 +0000)
committerJustin Bogner <mail@justinbogner.com>
Tue, 10 Oct 2017 23:34:01 +0000 (23:34 +0000)
Similarly to how Instruction has getFunction, this adds a less verbose
way to write MI->getParent()->getParent(). I'll follow up shortly with
a change that changes a bunch of the uses.

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

include/llvm/CodeGen/MachineInstr.h
lib/CodeGen/MachineInstr.cpp

index f4aa893..7523825 100644 (file)
@@ -139,6 +139,17 @@ public:
   const MachineBasicBlock* getParent() const { return Parent; }
   MachineBasicBlock* getParent() { return Parent; }
 
+  /// Return the function that contains the basic block that this instruction
+  /// belongs to.
+  ///
+  /// Note: this is undefined behaviour if the instruction does not have a
+  /// parent.
+  const MachineFunction *getMF() const;
+  MachineFunction *getMF() {
+    return const_cast<MachineFunction *>(
+        static_cast<const MachineInstr *>(this)->getMF());
+  }
+
   /// Return the asm printer flags bitvector.
   uint8_t getAsmPrinterFlags() const { return AsmPrinterFlags; }
 
index 66de991..fadade2 100644 (file)
@@ -1154,6 +1154,10 @@ bool MachineInstr::isIdenticalTo(const MachineInstr &Other,
   return true;
 }
 
+const MachineFunction *MachineInstr::getMF() const {
+  return getParent()->getParent();
+}
+
 MachineInstr *MachineInstr::removeFromParent() {
   assert(getParent() && "Not embedded in a basic block!");
   return getParent()->remove(this);