mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
083354fdfb
Summary: Instead of instantiating the MipsFastISel class and checking if the target is supported in the overriden methods, we should perform that check before creating the class. This allows us to enable FastISel *only* for targets that truly support it, ie. MIPS32 to MIPS32R5. Reviewers: sdardis Subscribers: ehostunreach, llvm-commits Differential Revision: https://reviews.llvm.org/D24824 llvm-svn: 284475
56 lines
2.6 KiB
LLVM
56 lines
2.6 KiB
LLVM
; Targets where we should not enable FastISel.
|
|
; RUN: llc -march=mips -mcpu=mips2 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips3 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips4 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
|
|
; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
|
|
; RUN: llc -march=mips -mattr=mips16 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
|
|
; RUN: llc -march=mips -mcpu=mips32r2 -mattr=+micromips -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips32r3 -mattr=+micromips -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips32r5 -mattr=+micromips -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
|
|
; RUN: llc -march=mips -mcpu=mips64 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips64r2 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips64r3 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips64r5 -O0 -relocation-model=pic -target-abi n64 \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s
|
|
|
|
; Valid targets for FastISel.
|
|
; RUN: llc -march=mips -mcpu=mips32r0 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s -check-prefix=FISEL
|
|
; RUN: llc -march=mips -mcpu=mips32r2 -O0 -relocation-model=pic \
|
|
; RUN: -fast-isel-verbose <%s 2>&1 | FileCheck %s -check-prefix=FISEL
|
|
|
|
; The CHECK prefix is being used by those targets that do not support FastISel.
|
|
; By checking that we don't emit the "FastISel missed terminator..." message,
|
|
; we ensure that we do not generate code through FastISel.
|
|
|
|
; CHECK-NOT: FastISel missed terminator: ret i64 0
|
|
|
|
; The above CHECK will only be valid as long as we *do* emit the missed
|
|
; terminator message for targets that support FastISel. If we add support
|
|
; for i64 return values in the future, then the following FISEL check-prefix
|
|
; will fail and we will have to come up with a new test.
|
|
|
|
; FISEL: FastISel missed terminator: ret i64 0
|
|
|
|
define i64 @foo() {
|
|
entry:
|
|
ret i64 0
|
|
}
|