[llvm] r248027 - Limit the range of processors supported by ARM fast isel to v6 or

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 18 13:08:19 PDT 2015


Author: echristo
Date: Fri Sep 18 15:08:18 2015
New Revision: 248027

URL: http://llvm.org/viewvc/llvm-project?rev=248027&view=rev
Log:
Limit the range of processors supported by ARM fast isel to v6 or
later as that's all that is tested right now.

Fixes PR24858.

Modified:
    llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
    llvm/trunk/test/CodeGen/ARM/fast-isel-ext.ll
    llvm/trunk/test/CodeGen/ARM/fast-isel-pic.ll

Modified: llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp?rev=248027&r1=248026&r2=248027&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp Fri Sep 18 15:08:18 2015
@@ -298,6 +298,10 @@ bool ARMSubtarget::useMovt(const Machine
 }
 
 bool ARMSubtarget::useFastISel() const {
+  // Limit fast-isel to the targets that are or have been tested.
+  if (!hasV6Ops())
+    return false;
+
   // Thumb2 support on iOS; ARM support on iOS, Linux and NaCl.
   return TM.Options.EnableFastISel &&
          ((isTargetMachO() && !isThumb1Only()) ||

Modified: llvm/trunk/test/CodeGen/ARM/fast-isel-ext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fast-isel-ext.ll?rev=248027&r1=248026&r2=248027&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/fast-isel-ext.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/fast-isel-ext.ll Fri Sep 18 15:08:18 2015
@@ -1,9 +1,5 @@
 ; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv7-apple-ios -verify-machineinstrs | FileCheck %s --check-prefix=v7
 ; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv7-linux-gnueabi -verify-machineinstrs | FileCheck %s --check-prefix=v7
-; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv4t-apple-ios -verify-machineinstrs | FileCheck %s --check-prefix=prev6
-; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv4t-linux-gnueabi -verify-machineinstrs | FileCheck %s --check-prefix=prev6
-; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv5-apple-ios -verify-machineinstrs | FileCheck %s --check-prefix=prev6
-; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=armv5-linux-gnueabi -verify-machineinstrs | FileCheck %s --check-prefix=prev6
 ; RUN: llc < %s -O0 -fast-isel-abort=1 -mtriple=thumbv7-apple-ios -verify-machineinstrs | FileCheck %s --check-prefix=v7
 
 ; Can't test pre-ARMv6 Thumb because ARM FastISel currently only supports
@@ -19,8 +15,6 @@
 define i8 @zext_1_8(i1 %a) nounwind ssp {
 ; v7-LABEL: zext_1_8:
 ; v7: and r0, r0, #1
-; prev6-LABEL: zext_1_8:
-; prev6: and r0, r0, #1
   %r = zext i1 %a to i8
   ret i8 %r
 }
@@ -28,8 +22,6 @@ define i8 @zext_1_8(i1 %a) nounwind ssp
 define i16 @zext_1_16(i1 %a) nounwind ssp {
 ; v7-LABEL: zext_1_16:
 ; v7: and r0, r0, #1
-; prev6-LABEL: zext_1_16:
-; prev6: and r0, r0, #1
   %r = zext i1 %a to i16
   ret i16 %r
 }
@@ -37,8 +29,6 @@ define i16 @zext_1_16(i1 %a) nounwind ss
 define i32 @zext_1_32(i1 %a) nounwind ssp {
 ; v7-LABEL: zext_1_32:
 ; v7: and r0, r0, #1
-; prev6-LABEL: zext_1_32:
-; prev6: and r0, r0, #1
   %r = zext i1 %a to i32
   ret i32 %r
 }
@@ -46,8 +36,6 @@ define i32 @zext_1_32(i1 %a) nounwind ss
 define i16 @zext_8_16(i8 %a) nounwind ssp {
 ; v7-LABEL: zext_8_16:
 ; v7: and r0, r0, #255
-; prev6-LABEL: zext_8_16:
-; prev6: and r0, r0, #255
   %r = zext i8 %a to i16
   ret i16 %r
 }
@@ -55,8 +43,6 @@ define i16 @zext_8_16(i8 %a) nounwind ss
 define i32 @zext_8_32(i8 %a) nounwind ssp {
 ; v7-LABEL: zext_8_32:
 ; v7: and r0, r0, #255
-; prev6-LABEL: zext_8_32:
-; prev6: and r0, r0, #255
   %r = zext i8 %a to i32
   ret i32 %r
 }
@@ -64,9 +50,6 @@ define i32 @zext_8_32(i8 %a) nounwind ss
 define i32 @zext_16_32(i16 %a) nounwind ssp {
 ; v7-LABEL: zext_16_32:
 ; v7: uxth r0, r0
-; prev6-LABEL: zext_16_32:
-; prev6: lsl{{s?}} r0, r0, #16
-; prev6: lsr{{s?}} r0, r0, #16
   %r = zext i16 %a to i32
   ret i32 %r
 }
@@ -77,9 +60,6 @@ define i8 @sext_1_8(i1 %a) nounwind ssp
 ; v7-LABEL: sext_1_8:
 ; v7: lsl{{s?}} r0, r0, #31
 ; v7: asr{{s?}} r0, r0, #31
-; prev6-LABEL: sext_1_8:
-; prev6: lsl{{s?}} r0, r0, #31
-; prev6: asr{{s?}} r0, r0, #31
   %r = sext i1 %a to i8
   ret i8 %r
 }
@@ -88,9 +68,6 @@ define i16 @sext_1_16(i1 %a) nounwind ss
 ; v7-LABEL: sext_1_16:
 ; v7: lsl{{s?}} r0, r0, #31
 ; v7: asr{{s?}} r0, r0, #31
-; prev6-LABEL: sext_1_16:
-; prev6: lsl{{s?}} r0, r0, #31
-; prev6: asr{{s?}} r0, r0, #31
   %r = sext i1 %a to i16
   ret i16 %r
 }
@@ -99,9 +76,6 @@ define i32 @sext_1_32(i1 %a) nounwind ss
 ; v7-LABEL: sext_1_32:
 ; v7: lsl{{s?}} r0, r0, #31
 ; v7: asr{{s?}} r0, r0, #31
-; prev6-LABEL: sext_1_32:
-; prev6: lsl{{s?}} r0, r0, #31
-; prev6: asr{{s?}} r0, r0, #31
   %r = sext i1 %a to i32
   ret i32 %r
 }
@@ -109,9 +83,6 @@ define i32 @sext_1_32(i1 %a) nounwind ss
 define i16 @sext_8_16(i8 %a) nounwind ssp {
 ; v7-LABEL: sext_8_16:
 ; v7: sxtb r0, r0
-; prev6-LABEL: sext_8_16:
-; prev6: lsl{{s?}} r0, r0, #24
-; prev6: asr{{s?}} r0, r0, #24
   %r = sext i8 %a to i16
   ret i16 %r
 }
@@ -119,9 +90,6 @@ define i16 @sext_8_16(i8 %a) nounwind ss
 define i32 @sext_8_32(i8 %a) nounwind ssp {
 ; v7-LABEL: sext_8_32:
 ; v7: sxtb r0, r0
-; prev6-LABEL: sext_8_32:
-; prev6: lsl{{s?}} r0, r0, #24
-; prev6: asr{{s?}} r0, r0, #24
   %r = sext i8 %a to i32
   ret i32 %r
 }
@@ -129,9 +97,6 @@ define i32 @sext_8_32(i8 %a) nounwind ss
 define i32 @sext_16_32(i16 %a) nounwind ssp {
 ; v7-LABEL: sext_16_32:
 ; v7: sxth r0, r0
-; prev6-LABEL: sext_16_32:
-; prev6: lsl{{s?}} r0, r0, #16
-; prev6: asr{{s?}} r0, r0, #16
   %r = sext i16 %a to i32
   ret i32 %r
 }

Modified: llvm/trunk/test/CodeGen/ARM/fast-isel-pic.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fast-isel-pic.ll?rev=248027&r1=248026&r2=248027&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/fast-isel-pic.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/fast-isel-pic.ll Fri Sep 18 15:08:18 2015
@@ -1,5 +1,4 @@
 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -relocation-model=pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
-; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -relocation-model=pic -mtriple=arm-apple-ios | FileCheck %s --check-prefix=ARM
 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -relocation-model=pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARMv7
 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -relocation-model=pic -mtriple=thumbv7-none-linux-gnueabi | FileCheck %s --check-prefix=THUMB-ELF
 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -relocation-model=pic -mtriple=armv7-none-linux-gnueabi | FileCheck %s --check-prefix=ARMv7-ELF




More information about the llvm-commits mailing list