Change the return value of "getEnd()" from a MachineInstr* to a MachineBasicBlock...
authorJames Molloy <james.molloy@arm.com>
Tue, 26 Aug 2014 13:41:31 +0000 (13:41 +0000)
committerJames Molloy <james.molloy@arm.com>
Tue, 26 Aug 2014 13:41:31 +0000 (13:41 +0000)
It seems on Darwin the illegal round-trip ::iterator -> MachineInstr* -> ::iterator breaks execution horribly when the iterator is not a real MachineInstr, like ::end().

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

lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp

index dc8cb32d199e0c3008496f60cc0b828e859900af..caf4ca3e3dbcbdfef7bad73e1617ec35382080e5 100644 (file)
@@ -234,7 +234,7 @@ public:
   MachineInstr *getKill() const { return KillInst; }
   /// Return an instruction that can be used as an iterator for the end
   /// of the chain. This is the maximum of KillInst (if set) and LastInst.
   MachineInstr *getKill() const { return KillInst; }
   /// Return an instruction that can be used as an iterator for the end
   /// of the chain. This is the maximum of KillInst (if set) and LastInst.
-  MachineInstr *getEnd() const {
+  MachineBasicBlock::iterator getEnd() const {
     return ++MachineBasicBlock::iterator(KillInst ? KillInst : LastInst);
   }
 
     return ++MachineBasicBlock::iterator(KillInst ? KillInst : LastInst);
   }