This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49781] [x32] Unnecessary lea in x32 mode
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 3 Aug 2011 16:19:08 +0000
- Subject: [Bug target/49781] [x32] Unnecessary lea in x32 mode
- Auto-submitted: auto-generated
- References: <bug-49781-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49781
--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-03 16:18:45 UTC ---
(In reply to comment #10)
>
> This additional patch prevents zero_extend when we deal with
> wider-than-word-size moves. These moves need offsetable_operand, which
> zero_extend (...) isn't.
>
> Index: i386.c
> ===================================================================
> --- i386.c (revision 177281)
> +++ i386.c (working copy)
> @@ -11681,6 +11689,10 @@ ix86_legitimate_address_p (enum machine_
> rtx base, index, disp;
> HOST_WIDE_INT scale;
>
> + if (GET_CODE (addr) == ZERO_EXTEND
> + && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
> + return false;
> +
> if (ix86_decompose_address (addr, &parts) <= 0)
> /* Decomposition failed. */
> return false;
Doesn't work. I got
FAIL: gcc.dg/graphite/pr35356-2.c (internal compiler error)
FAIL: gcc.dg/graphite/pr35356-2.c (test for excess errors)
FAIL: libgomp.fortran/omp_parse4.f90 -Os (internal compiler error)
FAIL: libgomp.fortran/omp_parse4.f90 -Os (test for excess errors)
FAIL: gfortran.dg/gomp/crayptr5.f90 -O (internal compiler error)
FAIL: gfortran.dg/gomp/crayptr5.f90 -O (test for excess errors)
so far:
spawn -ignore SIGHUP /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c -O2
-fgraphite-identity -fdump-tree-graphite-all -S -mx32 -o pr35356-2.s^M
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c: In
function 'foo':^M
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c:17:1:
internal compiler error: Segmentation fault^M
Please submit a full bug report,^M
with preprocessed source if appropriate.^M
See <http://gcc.gnu.org/bugs.html> for instructions.^M
compiler exited with status 1