Don't run RAFast in the optimizing regalloc pipeline.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 8 Jun 2012 23:15:12 +0000 (23:15 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 8 Jun 2012 23:15:12 +0000 (23:15 +0000)
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

23 files changed:
test/CodeGen/ARM/2008-02-04-LocalRegAllocBug.ll
test/CodeGen/ARM/2008-02-29-RegAllocLocal.ll
test/CodeGen/ARM/2010-05-17-FastAllocCrash.ll
test/CodeGen/ARM/ldrd.ll
test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll
test/CodeGen/Generic/edge-bundles-blockIDs.ll
test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll
test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert.ll
test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert2.ll
test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll
test/CodeGen/X86/2008-01-16-FPStackifierAssert.ll
test/CodeGen/X86/2008-02-22-LocalRegAllocBug.ll
test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll
test/CodeGen/X86/2008-09-17-inline-asm-1.ll
test/CodeGen/X86/2008-09-18-inline-asm-2.ll
test/CodeGen/X86/2009-04-24.ll
test/CodeGen/X86/2010-05-06-LocalInlineAsmClobber.ll
test/CodeGen/X86/2010-05-12-FastAllocKills.ll
test/CodeGen/X86/2010-06-15-FastAllocEarlyCLobber.ll
test/CodeGen/X86/inline-asm-error.ll
test/CodeGen/X86/liveness-local-regalloc.ll
test/CodeGen/X86/phys-reg-local-regalloc.ll
test/CodeGen/X86/pr11415.ll

index fd2f4620bceb7e13dabfbd0f1486b6a1087c8b5d..3754db01fdd1025c13f306f058a704f2de300ea2 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=arm-linux-gnueabi -regalloc=fast
+; RUN: llc < %s -mtriple=arm-linux-gnueabi -regalloc=fast -optimize-regalloc=0
 ; PR1925
 
        %struct.encode_aux_nearestmatch = type { i32*, i32*, i32*, i32*, i32, i32 }
index 44da8e7905f5b3b5d8ce0d2c2826967e464c3b02..5fbed0da5ce8223ed69f59b23f034e6826d76ae6 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=arm-apple-darwin -regalloc=fast
+; RUN: llc < %s -mtriple=arm-apple-darwin -regalloc=fast -optimize-regalloc=0
 ; PR1925
 
        %"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }
index 813bf3c360d369d56e41d5d748faea050fe22bdc..7d4cc6e3a75a4951e9c2bb6c3d505a43d57e2734 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -regalloc=fast -verify-machineinstrs
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs
 target triple = "arm-pc-linux-gnu"
 
 ; This test case would accidentally use the same physreg for two virtregs
index 226519b38aaad30c57f53b6b4ebfcb09aad76ea2..73b546d021d542620dc6781c7cba80f678e6cfcb 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=fast | FileCheck %s -check-prefix=A8
-; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-m3 -regalloc=fast | FileCheck %s -check-prefix=M3
+; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=fast -optimize-regalloc=0 | FileCheck %s -check-prefix=A8
+; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-m3 -regalloc=fast -optimize-regalloc=0 | FileCheck %s -check-prefix=M3
 ; rdar://6949835
 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=basic | FileCheck %s -check-prefix=BASIC
 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -regalloc=greedy | FileCheck %s -check-prefix=GREEDY
index 928edc4f47867dda4750e1b4abc919cda9303035..2dc5c162cd9662ffed0e13d2d5c2fbf436b5cf0f 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -regalloc=fast
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0
        
 %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 }
 @search = external global %struct.CHESS_POSITION               ; <%struct.CHESS_POSITION*> [#uses=2]
index b4ae415b50130cbfc16e67de98e8b7dd40b7a29f..d86c75838e53745bbe23c9b0b41f9a92d462f943 100644 (file)
@@ -1,6 +1,6 @@
 ; Make sure EdgeBoundles handles the case when the function size is less then 
 ; the number of block IDs.
-; RUN: llc -regalloc=fast < %s
+; RUN: llc -regalloc=fast -optimize-regalloc=0 < %s
 
 define void @foo() nounwind {
 entry:
index 3489477e4ce43b76430afc73e9fba5d7703d299a..53231b4f435e4ea454f5326658a81704bf1fc053 100644 (file)
@@ -1,5 +1,5 @@
 ; RUN: llc < %s | FileCheck %s
-; RUN: llc < %s -regalloc=fast | FileCheck %s
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 | FileCheck %s
 ; The first argument of subfc must not be the same as any other register.
 
 ; CHECK: subfc [[REG:r.]],
index 556a4a1c4023f4af9c0aaa8f733f9c973ad68258..a60d11c85c55fb3a4a5a304e0cdaf2bb101b8cf2 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -relocation-model=pic
+; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -optimize-regalloc=0 -relocation-model=pic
 
        %struct.NSError = type opaque
        %struct.NSManagedObjectContext = type opaque
index b3b9280467480851cb620d99186f14795d6753a9..3d1a328ec3c11d67d6e941f34a32c4bbcbf15a78 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -relocation-model=pic
+; RUN: llc < %s -mtriple=powerpc64-apple-darwin9 -regalloc=fast -optimize-regalloc=0 -relocation-model=pic
 
        %struct.NSError = type opaque
        %struct.NSManagedObjectContext = type opaque
index e03bd9e2792c2f02db2b6a0337df864239be3a1f..e28a3e04cf1b0d5a30251f18df09d8543cbac8bc 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=powerpc-apple-darwin -regalloc=fast
+; RUN: llc < %s -mtriple=powerpc-apple-darwin -regalloc=fast -optimize-regalloc=0
 
 define i32 @bork(i64 %foo, i64 %bar) {
 entry:
index 0091397ca6b0c26d010f9b734a0b117d77617dd8..9584b718fea06db22623f4a137fc5b9e9f52fc93 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 -regalloc=fast
+; RUN: llc < %s -march=x86 -mattr=+sse2 -regalloc=fast -optimize-regalloc=0
 
 define void @SolveCubic(double %a, double %b, double %c, double %d, i32* %solutions, double* %x) {
 entry:
index da029079c6ffe049a9113b3006aa116b25f88d2e..9185a3671184868990d7cce8f7a4aa83a652b76e 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -regalloc=fast -march=x86 -mattr=+mmx | grep esi
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -march=x86 -mattr=+mmx | grep esi
 ; PR2082
 ; Local register allocator was refusing to use ESI, EDI, and EBP so it ran out of
 ; registers.
index c068f8ac632cd0653a2486929d756de4cc57e4b2..4e73b5aa1cdb66729b4009135d086f27e3d51159 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -regalloc=fast
+; RUN: llc < %s -mtriple=i386-apple-darwin -regalloc=fast -optimize-regalloc=0
 
 @_ZTVN10Evaluation10GridOutputILi3EEE = external constant [5 x i32 (...)*]             ; <[5 x i32 (...)*]*> [#uses=1]
 
index 86e50c98bfdbfd7a7fdcaebf8eb5c77f6e804a8a..4b2774b64b7b5a9d036cf17f256981846c703c45 100644 (file)
@@ -1,5 +1,5 @@
 ; RUN: llc < %s -march=x86 | FileCheck %s
-; RUN: llc < %s -march=x86 -regalloc=fast | FileCheck %s
+; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
 
 ; %0 must not be put in EAX or EDX.
 ; In the first asm, $0 and $2 must not be put in EAX.
index 6867ae7980871c01ec4317e19fda3b1abb8fcbbb..5c2fbeee5c7058142a256edaa077b13a2b60f022 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -regalloc=fast       | FileCheck %s
+; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
 ; RUN: llc < %s -march=x86 -regalloc=basic      | FileCheck %s
 ; RUN: llc < %s -march=x86 -regalloc=greedy     | FileCheck %s
 
index d6ed0c42230d404e8ca36dfdfb2a5cba334d5fe8..5f5bf06a2fb88a0f4b1cf2d6d8580beba9304197 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=fast -relocation-model=pic > %t2
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=fast -optimize-regalloc=0 -relocation-model=pic > %t2
 ; RUN: grep {leaq.*TLSGD} %t2
 ; RUN: grep {__tls_get_addr} %t2
 ; PR4004
index 90eb84d1dc40c862c663bf4976b09bc2847afafb..35f233952df0026e4044d2a03a0507110758c184 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -regalloc=fast %s -o %t
+; RUN: llc -regalloc=fast -optimize-regalloc=0 %s -o %t
 ; PR7066
 
 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"
index 36a99d6f90e743ec0ee5999d81421cfb6f9a50c9..eb0b150378d694dfa8a99becf2d575f69029cf6f 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -regalloc=fast -verify-machineinstrs < %s
+; RUN: llc -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs < %s
 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"
 target triple = "x86_64-apple-darwin"
 
index 4639866afc5ef8cc373c0a338642197d13699cbf..9b47bb75bf16e41a12ffdec5a2926d16cb51f7f9 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -regalloc=fast < %s | FileCheck %s
+; RUN: llc -regalloc=fast -optimize-regalloc=0 < %s | FileCheck %s
 ; PR7382
 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"
 target triple = "x86_64-unknown-linux-gnu"
index 134d6e9528336cedc3c8f79f2d88530681303f49..747a5891cf04677de9555d62fcfe6949f027c804 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: not llc -march x86 -regalloc=fast       < %s 2> %t1
+; RUN: not llc -march x86 -regalloc=fast -optimize-regalloc=0 < %s 2> %t1
 ; RUN: not llc -march x86 -regalloc=basic      < %s 2> %t2
 ; RUN: not llc -march x86 -regalloc=greedy     < %s 2> %t3
 ; RUN: FileCheck %s < %t1
index 52f6e5e28488757bf41e5944a08975a789b5c085..721f545985d7fb16731f1f1581638751cd6d995b 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -regalloc=fast -verify-machineinstrs -mtriple=x86_64-apple-darwin10
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
 ; <rdar://problem/7755473>
 ; PR12821
 
index 8b9ea17c4e2326ec30ce4a43217cb33a021b164f..c565684685e5f68793cbc51ed6a49091364e6a5a 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast | FileCheck %s
+; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
 ; RUN: llc -O0 < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast | FileCheck %s
 ; CHECKed instructions should be the same with or without -O0.
 
index e1fa0326b76213c4faa42660b40585f36b1a854a..6c32a2206a7eafd6596a0f87b10fee81b1543ae4 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast | FileCheck %s
+; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast -optimize-regalloc=0 | FileCheck %s
 
 ; We used to consider the early clobber in the second asm statement as
 ; defining %0 before it was read. This caused us to omit the