This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, i386]: Revert "Align DImode to 32 bits" patch.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Sun, 23 Mar 2008 13:07:38 +0100
- Subject: [PATCH, i386]: Revert "Align DImode to 32 bits" patch.
Hello!
There are numerous problems w.r.t. to alignment of DImode to 32 bits:
- it is not clear if this new alignment violates store layout ABI
requirements
- it violates MS bitfields spec (testsuite failures)
- can misalign SSE and MMX DImode loads
- can stall store forwarding when DImode crosses 16byte boundary on stack
Due to above problems, I have revert DImode alignment patch, so DImode
is now aligned back to its natural alignment (8bytes). It is simply too
much pain for too low gain.
OTOH, the patch uncovered misaligned SSE constants in constant pool.
2008-03-23 Uros Bizjak <ubizjak@gmail.com>
Revert:
2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-modes.def: Use 4 byte alignment on DI for
32bit host.
2008-03-19 Uros Bizjak <ubizjak@gmail.com>
PR target/35496
* stor-layout.c (update_alignment_for_field): Set minimum alignment
of the underlying type of a MS bitfield layout to the natural
alignment of the type.
2008-03-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (assign_386_stack_local): Align DImode slots
to their natural alignment to avoid store forwarding stalls.
Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu
{,-m32}, committed to mainline.
Uros.