diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-02-21 19:35:21 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-02-21 19:35:21 +0000 |
| commit | 2ff4dc0ff2e9b72d70ccd54e9552d869f33d4b4b (patch) | |
| tree | 8af6b54c5d7b50318f1717a6aea9172b75993ef8 /llvm/test/CodeGen | |
| parent | 9ddfa89bed12420bfd3f64cf703327d374a3b57e (diff) | |
| download | bcm5719-llvm-2ff4dc0ff2e9b72d70ccd54e9552d869f33d4b4b.tar.gz bcm5719-llvm-2ff4dc0ff2e9b72d70ccd54e9552d869f33d4b4b.zip | |
Make RAFast::UsedInInstr indexed by register units.
This fixes some problems with too conservative checking where we were
marking all aliases of a register as used, and then also checking all
aliases when allocating a register.
<rdar://problem/13249625>
llvm-svn: 175782
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/Thumb2/crash.ll | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Thumb2/crash.ll b/llvm/test/CodeGen/Thumb2/crash.ll index cb4d08058f4..6ce0b82b94d 100644 --- a/llvm/test/CodeGen/Thumb2/crash.ll +++ b/llvm/test/CodeGen/Thumb2/crash.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=cortex-a8 -verify-machineinstrs +; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=cortex-a8 -verify-machineinstrs -O0 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32-n32" target triple = "thumbv7-apple-darwin10" @@ -76,3 +77,11 @@ entry: store i32 %num, i32* %p2, align 4 ret void } + +; Check RAFast handling of inline assembly with many dense clobbers. +; The large tuple aliases of the vector registers can cause problems. +define void @rdar13249625(double* nocapture %p) nounwind { + %1 = tail call double asm sideeffect "@ $0", "=w,~{d0},~{q1},~{q2},~{q3},~{q4},~{q5},~{q6},~{q7},~{q8},~{q9},~{q10},~{q11},~{q12},~{q13},~{q14},~{q15}"() nounwind + store double %1, double* %p, align 4 + ret void +} |

