[llvm-commits] [llvm] r157699 - in /llvm/trunk: lib/Target/X86/X86CallingConv.td test/CodeGen/X86/pass-four.ll test/CodeGen/X86/pass-three.ll

Chris Lattner sabre at nondot.org
Wed May 30 11:08:03 PDT 2012


Author: lattner
Date: Wed May 30 13:08:02 2012
New Revision: 157699

URL: http://llvm.org/viewvc/llvm-project?rev=157699&view=rev
Log:
it's pointed out that R11 can be used for magic things, and doing things just for 64-bit registers is silly.  Just optimize 3 more.

Added:
    llvm/trunk/test/CodeGen/X86/pass-three.ll
      - copied, changed from r157698, llvm/trunk/test/CodeGen/X86/pass-four.ll
Removed:
    llvm/trunk/test/CodeGen/X86/pass-four.ll
Modified:
    llvm/trunk/lib/Target/X86/X86CallingConv.td

Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=157699&r1=157698&r2=157699&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86CallingConv.td (original)
+++ llvm/trunk/lib/Target/X86/X86CallingConv.td Wed May 30 13:08:02 2012
@@ -35,7 +35,7 @@
   CCIfType<[i8] , CCAssignToReg<[AL, DL, CL]>>,
   CCIfType<[i16], CCAssignToReg<[AX, DX, CX]>>,
   CCIfType<[i32], CCAssignToReg<[EAX, EDX, ECX]>>,
-  CCIfType<[i64], CCAssignToReg<[RAX, RDX, RCX, R11]>>,
+  CCIfType<[i64], CCAssignToReg<[RAX, RDX, RCX]>>,
 
   // Vector types are returned in XMM0 and XMM1, when they fit.  XMM2 and XMM3
   // can only be used by ABI non-compliant code. If the target doesn't have XMM

Removed: llvm/trunk/test/CodeGen/X86/pass-four.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pass-four.ll?rev=157698&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pass-four.ll (original)
+++ llvm/trunk/test/CodeGen/X86/pass-four.ll (removed)
@@ -1,17 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-darwin11.3.0"
-
-
-define { i8*, i64, i64*, i64 } @copy_4(i8* %a, i64 %b, i64* %c, i64 %d) nounwind {
-entry:
-  %0 = insertvalue { i8*, i64, i64*, i64 } undef, i8* %a, 0
-  %1 = insertvalue { i8*, i64, i64*, i64 } %0, i64 %b, 1
-  %2 = insertvalue { i8*, i64, i64*, i64 } %1, i64* %c, 2
-  %3 = insertvalue { i8*, i64, i64*, i64 } %2, i64 %d, 3
-  ret { i8*, i64, i64*, i64 } %3
-}
-
-; CHECK: copy_4:
-; CHECK-NOT: (%rdi)
-; CHECK: ret

Copied: llvm/trunk/test/CodeGen/X86/pass-three.ll (from r157698, llvm/trunk/test/CodeGen/X86/pass-four.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pass-three.ll?p2=llvm/trunk/test/CodeGen/X86/pass-three.ll&p1=llvm/trunk/test/CodeGen/X86/pass-four.ll&r1=157698&r2=157699&rev=157699&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pass-four.ll (original)
+++ llvm/trunk/test/CodeGen/X86/pass-three.ll Wed May 30 13:08:02 2012
@@ -3,15 +3,14 @@
 target triple = "x86_64-apple-darwin11.3.0"
 
 
-define { i8*, i64, i64*, i64 } @copy_4(i8* %a, i64 %b, i64* %c, i64 %d) nounwind {
+define { i8*, i64, i64* } @copy_3(i8* %a, i64 %b, i64* %c) nounwind {
 entry:
-  %0 = insertvalue { i8*, i64, i64*, i64 } undef, i8* %a, 0
-  %1 = insertvalue { i8*, i64, i64*, i64 } %0, i64 %b, 1
-  %2 = insertvalue { i8*, i64, i64*, i64 } %1, i64* %c, 2
-  %3 = insertvalue { i8*, i64, i64*, i64 } %2, i64 %d, 3
-  ret { i8*, i64, i64*, i64 } %3
+  %0 = insertvalue { i8*, i64, i64* } undef, i8* %a, 0
+  %1 = insertvalue { i8*, i64, i64* } %0, i64 %b, 1
+  %2 = insertvalue { i8*, i64, i64* } %1, i64* %c, 2
+  ret { i8*, i64, i64* } %2
 }
 
-; CHECK: copy_4:
+; CHECK: copy_3:
 ; CHECK-NOT: (%rdi)
 ; CHECK: ret





More information about the llvm-commits mailing list