Files
llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option-fastisel.ll
T
Petr Pavlu 7885d2ca5a [GlobalISel] Fix choice of instruction selector for AArch64 at -O0 with -global-isel=0
Commit rL347861 introduced an unintentional change in the behaviour when
compiling for AArch64 at -O0 with -global-isel=0. Previously, explicitly
disabling GlobalISel resulted in using FastISel but an updated condition
in the commit changed it to using SelectionDAG. The patch fixes this
condition and slightly better organizes the code that chooses the
instruction selector.

Fixes PR40131.

Differential Revision: https://reviews.llvm.org/D56266


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350626 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-08 14:19:06 +00:00

36 lines
1.3 KiB
LLVM

; REQUIRES: asserts
; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
; RUN: -verify-machineinstrs=0 -O0 -global-isel=false -debug-only=isel \
; RUN: | FileCheck %s --check-prefixes=DISABLED,FASTISEL
; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
; RUN: -verify-machineinstrs=0 -O1 -global-isel=false -debug-only=isel \
; RUN: | FileCheck %s --check-prefixes=DISABLED,NOFASTISEL
; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
; RUN: -verify-machineinstrs=0 -O0 -fast-isel=false -global-isel=false \
; RUN: -debug-only=isel \
; RUN: | FileCheck %s --check-prefixes=DISABLED,NOFASTISEL
; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
; RUN: -verify-machineinstrs=0 -O1 -fast-isel=false -global-isel=false \
; RUN: -debug-only=isel \
; RUN: | FileCheck %s --check-prefixes=DISABLED,NOFASTISEL
; Check that the right instruction selector is chosen when using
; -global-isel=false. FastISel should be used at -O0 (unless -fast-isel=false is
; also present) and SelectionDAG otherwise.
; DISABLED-NOT: IRTranslator
; DISABLED: AArch64 Instruction Selection
; DISABLED: Expand ISel Pseudo-instructions
; FASTISEL: Enabling fast-isel
; NOFASTISEL-NOT: Enabling fast-isel
define void @empty() {
ret void
}