summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2016-12-16 07:31:20 +0000
committerChandler Carruth <chandlerc@gmail.com>2016-12-16 07:31:20 +0000
commit05e80d31bddd62fc34a47f9aac275fb0ca896c0a (patch)
treea7af0018b9eccbf34ecf30fae7db3c83543a23a4 /llvm/test/CodeGen/PowerPC
parenta84a840a5618e17347a8694986e1d4ea98bb68b2 (diff)
downloadbcm5719-llvm-05e80d31bddd62fc34a47f9aac275fb0ca896c0a.tar.gz
bcm5719-llvm-05e80d31bddd62fc34a47f9aac275fb0ca896c0a.zip
Revert r289638: [PowerPC] Fix logic dealing with nop after calls (and tail-call eligibility)
This patch appears to result in trampolines in vtables being miscompiled when they in turn tail call a method. I've posted some preliminary details about the failure on the thread for this commit and talked to Hal. He was comfortable going ahead and reverting until we sort out what is wrong. llvm-svn: 289928
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc64-blnop.ll129
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll8
2 files changed, 4 insertions, 133 deletions
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-blnop.ll b/llvm/test/CodeGen/PowerPC/ppc64-blnop.ll
deleted file mode 100644
index 384edf30d12..00000000000
--- a/llvm/test/CodeGen/PowerPC/ppc64-blnop.ll
+++ /dev/null
@@ -1,129 +0,0 @@
-; RUN: llc < %s -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s
-; RUN: llc < %s -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s
-; RUN: llc < %s -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s
-; RUN: llc < %s -relocation-model=pic -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s
-; RUN: llc < %s -function-sections -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=CHECK-FS
-; RUN: llc < %s -relocation-model=pic -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s
-; RUN: llc < %s -function-sections -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=CHECK-FS
-
-%class.T = type { [2 x i8] }
-
-define void @e_callee(%class.T* %this, i8* %c) { ret void }
-define void @e_caller(%class.T* %this, i8* %c) {
- call void @e_callee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: e_caller:
-; CHECK: bl e_callee
-; CHECK-NOT: nop
-
-; CHECK-FS-LABEL: e_caller:
-; CHECK-FS: bl e_callee
-; CHECK-FS-NEXT: nop
-}
-
-define void @e_scallee(%class.T* %this, i8* %c) section "different" { ret void }
-define void @e_scaller(%class.T* %this, i8* %c) {
- call void @e_scallee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: e_scaller:
-; CHECK: bl e_scallee
-; CHECK-NEXT: nop
-}
-
-define void @e_s2callee(%class.T* %this, i8* %c) { ret void }
-define void @e_s2caller(%class.T* %this, i8* %c) section "different" {
- call void @e_s2callee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: e_s2caller:
-; CHECK: bl e_s2callee
-; CHECK-NEXT: nop
-}
-
-$cd1 = comdat any
-$cd2 = comdat any
-
-define void @e_ccallee(%class.T* %this, i8* %c) comdat($cd1) { ret void }
-define void @e_ccaller(%class.T* %this, i8* %c) comdat($cd2) {
- call void @e_ccallee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: e_ccaller:
-; CHECK: bl e_ccallee
-; CHECK-NEXT: nop
-}
-
-$cd = comdat any
-
-define void @e_c1callee(%class.T* %this, i8* %c) comdat($cd) { ret void }
-define void @e_c1caller(%class.T* %this, i8* %c) comdat($cd) {
- call void @e_c1callee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: e_c1caller:
-; CHECK: bl e_c1callee
-; CHECK-NEXT: nop
-}
-
-define weak_odr hidden void @wo_hcallee(%class.T* %this, i8* %c) { ret void }
-define void @wo_hcaller(%class.T* %this, i8* %c) {
- call void @wo_hcallee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: wo_hcaller:
-; CHECK: bl wo_hcallee
-; CHECK-NEXT: nop
-}
-
-define weak_odr protected void @wo_pcallee(%class.T* %this, i8* %c) { ret void }
-define void @wo_pcaller(%class.T* %this, i8* %c) {
- call void @wo_pcallee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: wo_pcaller:
-; CHECK: bl wo_pcallee
-; CHECK-NEXT: nop
-}
-
-define weak_odr void @wo_callee(%class.T* %this, i8* %c) { ret void }
-define void @wo_caller(%class.T* %this, i8* %c) {
- call void @wo_callee(%class.T* %this, i8* %c)
- ret void
-
-; CHECK-LABEL: wo_caller:
-; CHECK: bl wo_callee
-; CHECK-NEXT: nop
-}
-
-define weak protected void @w_pcallee(i8* %ptr) { ret void }
-define void @w_pcaller(i8* %ptr) {
- call void @w_pcallee(i8* %ptr)
- ret void
-
-; CHECK-LABEL: w_pcaller:
-; CHECK: bl w_pcallee
-; CHECK-NEXT: nop
-}
-
-define weak hidden void @w_hcallee(i8* %ptr) { ret void }
-define void @w_hcaller(i8* %ptr) {
- call void @w_hcallee(i8* %ptr)
- ret void
-
-; CHECK-LABEL: w_hcaller:
-; CHECK: bl w_hcallee
-; CHECK-NEXT: nop
-}
-
-define weak void @w_callee(i8* %ptr) { ret void }
-define void @w_caller(i8* %ptr) {
- call void @w_callee(i8* %ptr)
- ret void
-
-; CHECK-LABEL: w_caller:
-; CHECK: bl w_callee
-; CHECK-NEXT: nop
-}
-
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll b/llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll
index 59e54560147..418b7828f1d 100644
--- a/llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll
+++ b/llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll
@@ -142,7 +142,7 @@ define void @wo_hcaller(%class.T* %this, i8* %c) {
ret void
; CHECK-SCO-LABEL: wo_hcaller:
-; CHECK-SCO: bl wo_hcallee
+; CHECK-SCO: b wo_hcallee
}
define weak_odr protected void @wo_pcallee(%class.T* %this, i8* %c) { ret void }
@@ -151,7 +151,7 @@ define void @wo_pcaller(%class.T* %this, i8* %c) {
ret void
; CHECK-SCO-LABEL: wo_pcaller:
-; CHECK-SCO: bl wo_pcallee
+; CHECK-SCO: b wo_pcallee
}
define weak_odr void @wo_callee(%class.T* %this, i8* %c) { ret void }
@@ -169,7 +169,7 @@ define void @w_pcaller(i8* %ptr) {
ret void
; CHECK-SCO-LABEL: w_pcaller:
-; CHECK-SCO: bl w_pcallee
+; CHECK-SCO: b w_pcallee
}
define weak hidden void @w_hcallee(i8* %ptr) { ret void }
@@ -178,7 +178,7 @@ define void @w_hcaller(i8* %ptr) {
ret void
; CHECK-SCO-LABEL: w_hcaller:
-; CHECK-SCO: bl w_hcallee
+; CHECK-SCO: b w_hcallee
}
define weak void @w_callee(i8* %ptr) { ret void }
OpenPOWER on IntegriCloud