mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
[MachineOutliner] Change B instruction for tail calls to TCRETURNdi
First off, this is more correct than having the B. Second off, this was making a bot upset. This fixes that. Update the test to include -verify-machineinstrs as well to prevent stuff like this slipping by non debug/assert builds in the future. llvm-svn: 330459
This commit is contained in:
parent
ae6e38e5af
commit
c755676edc
@ -5325,8 +5325,9 @@ MachineBasicBlock::iterator AArch64InstrInfo::insertOutlinedCall(
|
||||
// Are we tail calling?
|
||||
if (MInfo.CallConstructionID == MachineOutlinerTailCall) {
|
||||
// If yes, then we can just branch to the label.
|
||||
It = MBB.insert(It, BuildMI(MF, DebugLoc(), get(AArch64::B))
|
||||
.addGlobalAddress(M.getNamedValue(MF.getName())));
|
||||
It = MBB.insert(It, BuildMI(MF, DebugLoc(), get(AArch64::TCRETURNdi))
|
||||
.addGlobalAddress(M.getNamedValue(MF.getName()))
|
||||
.addImm(0));
|
||||
return It;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llc -enable-machine-outliner -mtriple=aarch64-apple-darwin < %s | FileCheck %s
|
||||
; RUN: llc -enable-machine-outliner -enable-linkonceodr-outlining -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=ODR
|
||||
; RUN: llc -verify-machineinstrs -enable-machine-outliner -mtriple=aarch64-apple-darwin < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -enable-machine-outliner -enable-linkonceodr-outlining -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=ODR
|
||||
|
||||
define linkonce_odr void @fish() #0 {
|
||||
; CHECK-LABEL: _fish:
|
||||
|
Loading…
Reference in New Issue
Block a user