llvm.org GIT mirror llvm / 6660ed5
Don't run RAFast in the optimizing regalloc pipeline. The fast register allocator is not supposed to work in the optimizing pipeline. It doesn't make sense to compute live intervals, run full copy coalescing, and then run RAFast. Fast register allocation in the optimizing pipeline is better done by RABasic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158242 91177308-0d34-0410-b5e6-96231b3b80d8 Jakob Stoklund Olesen 7 years ago
23 changed file(s) with 24 addition(s) and 24 deletion(s). Raw diff Collapse all Expand all
None ; RUN: llc < %s -mtriple=arm-linux-gnueabi -regalloc=fast
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi -regalloc=fast -optimize-regalloc=0
11 ; PR1925
22
33 %struct.encode_aux_nearestmatch = type { i32*, i32*, i32*, i32*, i32, i32 }
None ; RUN: llc < %s -mtriple=arm-apple-darwin -regalloc=fast
0 ; RUN: llc < %s -mtriple=arm-apple-darwin -regalloc=fast -optimize-regalloc=0
11 ; PR1925
22
33 %"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }
None ; RUN: llc < %s -regalloc=fast -verify-machineinstrs
0 ; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs
11 target triple = "arm-pc-linux-gnu"
22
33 ; This test case would accidentally use the same physreg for two virtregs
None ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=fast | FileCheck %s -check-prefix=A8
1 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-m3 -regalloc=fast | FileCheck %s -check-prefix=M3
0 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=fast -optimize-regalloc=0 | FileCheck %s -check-prefix=A8
1 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-m3 -regalloc=fast -optimize-regalloc=0 | FileCheck %s -check-prefix=M3
22 ; rdar://6949835
33 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=basic | FileCheck %s -check-prefix=BASIC
44 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=greedy | FileCheck %s -check-prefix=GREEDY
None ; RUN: llc < %s -regalloc=fast
0 ; RUN: llc < %s -regalloc=fast -optimize-regalloc=0
11
22 %struct.CHESS_POSITION = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, [64 x i8], i8, i8, i8, i8, i8 }
33 @search = external global %struct.CHESS_POSITION ; <%struct.CHESS_POSITION*> [#uses=2]
0 ; Make sure EdgeBoundles handles the case when the function size is less then
11 ; the number of block IDs.
2 ; RUN: llc -regalloc=fast < %s
2 ; RUN: llc -regalloc=fast -optimize-regalloc=0 < %s
33
44 define void @foo() nounwind {
55 entry:
0 ; RUN: llc < %s | FileCheck %s
1 ; RUN: llc < %s -regalloc=fast | FileCheck %s
1 ; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 | FileCheck %s
22 ; The first argument of subfc must not be the same as any other register.
33
44 ; CHECK: subfc [[REG:r.]],
None ; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -relocation-model=pic
0 ; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -optimize-regalloc=0 -relocation-model=pic
11
22 %struct.NSError = type opaque
33 %struct.NSManagedObjectContext = type opaque
None ; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -relocation-model=pic
0 ; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -optimize-regalloc=0 -relocation-model=pic
11
22 %struct.NSError = type opaque
33 %struct.NSManagedObjectContext = type opaque
None ; RUN: llc < %s -mtriple=powerpc-apple-darwin -regalloc=fast
0 ; RUN: llc < %s -mtriple=powerpc-apple-darwin -regalloc=fast -optimize-regalloc=0
11
22 define i32 @bork(i64 %foo, i64 %bar) {
33 entry:
None ; RUN: llc < %s -march=x86 -mattr=+sse2 -regalloc=fast
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -regalloc=fast -optimize-regalloc=0
11
22 define void @SolveCubic(double %a, double %b, double %c, double %d, i32* %solutions, double* %x) {
33 entry:
None ; RUN: llc < %s -regalloc=fast -march=x86 -mattr=+mmx | grep esi
0 ; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -march=x86 -mattr=+mmx | grep esi
11 ; PR2082
22 ; Local register allocator was refusing to use ESI, EDI, and EBP so it ran out of
33 ; registers.
None ; RUN: llc < %s -mtriple=i386-apple-darwin -regalloc=fast
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -regalloc=fast -optimize-regalloc=0
11
22 @_ZTVN10Evaluation10GridOutputILi3EEE = external constant [5 x i32 (...)*] ; <[5 x i32 (...)*]*> [#uses=1]
33
0 ; RUN: llc < %s -march=x86 | FileCheck %s
1 ; RUN: llc < %s -march=x86 -regalloc=fast | FileCheck %s
1 ; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
22
33 ; %0 must not be put in EAX or EDX.
44 ; In the first asm, $0 and $2 must not be put in EAX.
None ; RUN: llc < %s -march=x86 -regalloc=fast | FileCheck %s
0 ; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
11 ; RUN: llc < %s -march=x86 -regalloc=basic | FileCheck %s
22 ; RUN: llc < %s -march=x86 -regalloc=greedy | FileCheck %s
33
None ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=fast -relocation-model=pic > %t2
0 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=fast -optimize-regalloc=0 -relocation-model=pic > %t2
11 ; RUN: grep {leaq.*TLSGD} %t2
22 ; RUN: grep {__tls_get_addr} %t2
33 ; PR4004
None ; RUN: llc -regalloc=fast %s -o %t
0 ; RUN: llc -regalloc=fast -optimize-regalloc=0 %s -o %t
11 ; PR7066
22
33 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
None ; RUN: llc -regalloc=fast -verify-machineinstrs < %s
0 ; RUN: llc -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs < %s
11 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
22 target triple = "x86_64-apple-darwin"
33
None ; RUN: llc -regalloc=fast < %s | FileCheck %s
0 ; RUN: llc -regalloc=fast -optimize-regalloc=0 < %s | FileCheck %s
11 ; PR7382
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
33 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: not llc -march x86 -regalloc=fast < %s 2> %t1
0 ; RUN: not llc -march x86 -regalloc=fast -optimize-regalloc=0 < %s 2> %t1
11 ; RUN: not llc -march x86 -regalloc=basic < %s 2> %t2
22 ; RUN: not llc -march x86 -regalloc=greedy < %s 2> %t3
33 ; RUN: FileCheck %s < %t1
None ; RUN: llc < %s -regalloc=fast -verify-machineinstrs -mtriple=x86_64-apple-darwin10
0 ; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
11 ;
22 ; PR12821
33
None ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast | FileCheck %s
0 ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
11 ; RUN: llc -O0 < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast | FileCheck %s
22 ; CHECKed instructions should be the same with or without -O0.
33
None ; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast | FileCheck %s
0 ; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast -optimize-regalloc=0 | FileCheck %s
11
22 ; We used to consider the early clobber in the second asm statement as
33 ; defining %0 before it was read. This caused us to omit the