[llvm-commits] [llvm-gcc-4.2] r46271 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.c toplev.c

Evan Cheng evan.cheng at apple.com
Tue Jan 22 18:49:25 PST 2008


Author: evancheng
Date: Tue Jan 22 20:49:24 2008
New Revision: 46271

URL: http://llvm.org/viewvc/llvm-project?rev=46271&view=rev
Log:
Need to call init_regs() from backend_init() to ensure TYPE_MODE for user-defined vector types are set up correctly; remove the workaround from i386.c.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/i386.c
    llvm-gcc-4.2/trunk/gcc/toplev.c

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

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.c Tue Jan 22 20:49:24 2008
@@ -3270,16 +3270,9 @@
 		   int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8;
 		   tree type = BINFO_TYPE (base_binfo);
 
-/* LLVM local */
-#ifdef ENABLE_LLVM
-		   num = classify_argument (type_natural_mode (type),
-					    type, subclasses,
-					    (offset + bit_offset) % 256);
-#else                   
 		   num = classify_argument (TYPE_MODE (type),
 					    type, subclasses,
 					    (offset + bit_offset) % 256);
-#endif
 		   if (!num)
 		     return 0;
 		   for (i = 0; i < num; i++)
@@ -3315,18 +3308,10 @@
 		    }
 		  else
 		    {
-/* LLVM local */
-#ifdef ENABLE_LLVM
-		      num = classify_argument (type_natural_mode (TREE_TYPE (field)),
-					       TREE_TYPE (field), subclasses,
-					       (int_bit_position (field)
-						+ bit_offset) % 256);
-#else
 		      num = classify_argument (TYPE_MODE (TREE_TYPE (field)),
 					       TREE_TYPE (field), subclasses,
 					       (int_bit_position (field)
 						+ bit_offset) % 256);
-#endif
 		      if (!num)
 			return 0;
 		      for (i = 0; i < num; i++)
@@ -3345,14 +3330,8 @@
 	  /* Arrays are handled as small records.  */
 	  {
 	    int num;
-/* LLVM local */
-#ifdef ENABLE_LLVM
-	    num = classify_argument (type_natural_mode (TREE_TYPE (type)),
-				     TREE_TYPE (type), subclasses, bit_offset);
-#else
 	    num = classify_argument (TYPE_MODE (TREE_TYPE (type)),
 				     TREE_TYPE (type), subclasses, bit_offset);
-#endif
 	    if (!num)
 	      return 0;
 
@@ -3384,16 +3363,9 @@
 		  if (TREE_TYPE (field) == error_mark_node)
 		    continue;
 
-/* LLVM local */
-#ifdef ENABLE_LLVM
-		  num = classify_argument (type_natural_mode (TREE_TYPE (field)),
-					   TREE_TYPE (field), subclasses,
-					   bit_offset);
-#else
 		  num = classify_argument (TYPE_MODE (TREE_TYPE (field)),
 					   TREE_TYPE (field), subclasses,
 					   bit_offset);
-#endif
 		  if (!num)
 		    return 0;
 		  for (i = 0; i < num; i++)

Modified: llvm-gcc-4.2/trunk/gcc/toplev.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/toplev.c?rev=46271&r1=46270&r2=46271&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/toplev.c (original)
+++ llvm-gcc-4.2/trunk/gcc/toplev.c Tue Jan 22 20:49:24 2008
@@ -2052,6 +2052,9 @@
 
   /* LLVM LOCAL begin */
 #ifdef ENABLE_LLVM
+  /* note: stor-layout.c:layout_type() uses have_regs_of_mode[] to initialize
+     TYPE_MODE field for user specified vector types. */
+  init_regs ();
   /* note: we need init_emit_once above to initialize ptr_mode and friends. */
   llvm_initialize_backend();
   return;





More information about the llvm-commits mailing list