From b341fac05a890272024dcc5c7e47d10b22d62b92 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Sat, 10 Nov 2012 02:09:05 +0000 Subject: Disable the Thumb no-return call optimization: mov lr, pc b.w _foo The "mov" instruction doesn't set bit zero to one, it's putting incorrect value in lr. It messes up backtraces. rdar://12663632 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167657 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/ARM/call-noret-minsize.ll | 7 ------- test/CodeGen/ARM/call-noret.ll | 8 -------- 2 files changed, 15 deletions(-) (limited to 'test') diff --git a/test/CodeGen/ARM/call-noret-minsize.ll b/test/CodeGen/ARM/call-noret-minsize.ll index 35490ac69b..df3c19eca6 100644 --- a/test/CodeGen/ARM/call-noret-minsize.ll +++ b/test/CodeGen/ARM/call-noret-minsize.ll @@ -1,6 +1,5 @@ ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=ARM ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=swift | FileCheck %s -check-prefix=SWIFT -; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=T2 ; rdar://12348580 define void @t1() noreturn minsize nounwind ssp { @@ -10,9 +9,6 @@ entry: ; SWIFT: t1: ; SWIFT: bl _bar - -; T2: t1: -; T2: blx _bar tail call void @bar() noreturn nounwind unreachable } @@ -24,9 +20,6 @@ entry: ; SWIFT: t2: ; SWIFT: bl _t1 - -; T2: t2: -; T2: bl _t1 tail call void @t1() noreturn nounwind unreachable } diff --git a/test/CodeGen/ARM/call-noret.ll b/test/CodeGen/ARM/call-noret.ll index d294f2cf1a..27062dca38 100644 --- a/test/CodeGen/ARM/call-noret.ll +++ b/test/CodeGen/ARM/call-noret.ll @@ -1,6 +1,5 @@ ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=ARM ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=swift | FileCheck %s -check-prefix=SWIFT -; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=T2 ; rdar://8979299 define void @t1() noreturn nounwind ssp { @@ -12,9 +11,6 @@ entry: ; SWIFT: t1: ; SWIFT: mov lr, pc ; SWIFT: b _bar - -; T2: t1: -; T2: blx _bar tail call void @bar() noreturn nounwind unreachable } @@ -28,10 +24,6 @@ entry: ; SWIFT: t2: ; SWIFT: mov lr, pc ; SWIFT: b _t1 - -; T2: t2: -; T2: mov lr, pc -; T2: b.w _t1 tail call void @t1() noreturn nounwind unreachable } -- cgit v1.2.3