[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