mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
25e059f264
Summary: A similar error message has been removed from the ARMTargetMachineBase constructor in r306939. With this patch, we generate an error message for the example below, compiled with -mcpu=cortex-m0, which does not have ARM execution mode. __attribute__((target("arm"))) int foo(int a, int b) { return a + b % a; } __attribute__((target("thumb"))) int bar(int a, int b) { return a + b % a; } By adding this error message to ARMBaseTargetMachine::getSubtargetImpl, we can deal with functions that set -thumb-mode in target-features. At the moment it seems like Clang does not have access to target-feature specific information, so adding the error message to the frontend will be harder. Reviewers: echristo, richard.barton.arm, t.p.northover, rengolin, efriedma Reviewed By: echristo, efriedma Subscribers: efriedma, aemerson, javed.absar, kristof.beyls Differential Revision: https://reviews.llvm.org/D35627 llvm-svn: 310486
22 lines
681 B
LLVM
22 lines
681 B
LLVM
; RUN: not llc -mtriple=armv7-windows-itanium -mcpu=cortex-a9 -o /dev/null %s 2>&1 \
|
|
; RUN: | FileCheck %s -check-prefixes=CHECK-OPTIONS,CHECK-FEATURE
|
|
|
|
; RUN: not llc -mtriple=thumb-unknown-linux -mcpu=cortex-m0 -o /dev/null %s 2>&1 \
|
|
; RUN: | FileCheck %s -check-prefix=CHECK-FEATURE
|
|
|
|
define void @foo() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
; CHECK-OPTIONS: Function 'foo' uses ARM instructions, but the target does not support ARM mode execution.
|
|
|
|
define void @no_thumb_mode_feature() #0 {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
; CHECK-FEATURE: Function 'no_thumb_mode_feature' uses ARM instructions, but the target does not support ARM mode execution.
|
|
|
|
attributes #0 = { "target-features"="-thumb-mode" }
|