[llvm-commits] [llvm-gcc-4.2] r47571 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp

Dale Johannesen dalej at apple.com
Mon Feb 25 14:20:38 PST 2008


Author: johannes
Date: Mon Feb 25 16:20:38 2008
New Revision: 47571

URL: http://llvm.org/viewvc/llvm-project?rev=47571&view=rev
Log:
Don't pretend "all int" aggregates are not going to be
passed in memory on x86-32; they are.  (Note that
llvm_x86_is_all_integer_types accepts vectors, which
led to a problem here but is presumably right in
other contexts.)


Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=47571&r1=47570&r2=47571&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Mon Feb 25 16:20:38 2008
@@ -746,7 +746,8 @@
   if (Bytes == 0)
     return false;
 
-  if (Bytes == GET_MODE_SIZE(SImode) || Bytes == GET_MODE_SIZE(DImode)) {
+  if (TARGET_64BIT &&
+      (Bytes == GET_MODE_SIZE(SImode) || Bytes == GET_MODE_SIZE(DImode))) {
     // 32-bit or 64-bit and all elements are integers, not passed in memory.
     const Type *Ty = ConvertType(TreeType);
     if (llvm_x86_is_all_integer_types(Ty))





More information about the llvm-commits mailing list