[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2021-08-16 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 Andrew Pinski changed: What|Removed |Added Severity|major |enhancement Keywords|

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2011-02-21 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 --- Comment #16 from Peter A. Bigot 2011-02-21 09:50:00 UTC --- I've now taken over the msp430 back end and created the attached patch and test case. This is relative to the gcc trunk as of a couple weeks ago; still present in all releases up to

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2011-02-21 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 --- Comment #15 from Peter A. Bigot 2011-02-21 09:48:23 UTC --- Created attachment 23421 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23421 Fixes problem

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2011-02-21 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 --- Comment #14 from Peter A. Bigot 2011-02-21 09:46:30 UTC --- Created attachment 23420 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23420 Generated code after patch applied

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2011-02-21 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 --- Comment #13 from Peter A. Bigot 2011-02-21 09:45:52 UTC --- Created attachment 23419 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23419 Generated code before patch applied

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2011-02-21 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722 --- Comment #12 from Peter A. Bigot 2011-02-21 09:45:15 UTC --- Created attachment 23418 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23418 Test case (requires msp430 back end) Sorry, I don't speak dejagnu well enough yet to put target te

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-02-10 Thread shcherbakov at daad-alumni dot de
--- Comment #11 from shcherbakov at daad-alumni dot de 2010-02-10 12:44 --- Ok, m32c uses "memcpy" for all block moves (4 ints is a DImode, not BLKmode). Additionally, it supports pre-decrement addressing mode, that enables a mutually exclusive case to the one showing the bug. To reprod

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-02-09 Thread mikpe at it dot uu dot se
--- Comment #10 from mikpe at it dot uu dot se 2010-02-09 08:58 --- (In reply to comment #9) > Finally, the m32c port defines both PUSH_ARGS and HAVE_POST_INCREMENT, so it > can be possible to reproduce the bug on this port. > cat pr42722.c struct test { int a, b, c, d; }; void func

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread shcherbakov at daad-alumni dot de
--- Comment #9 from shcherbakov at daad-alumni dot de 2010-01-30 22:48 --- In general 'black box' case - yes. However, here there are 2 factors: 1) It is clear from the sources that 2 similar situations (pre-decrement and post-increment) are handled in a different way, an additional che

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread mikpe at it dot uu dot se
--- Comment #8 from mikpe at it dot uu dot se 2010-01-30 21:57 --- (In reply to comment #7) > (In reply to comment #6) > > Doesn't work, an ARM gcc built with that modification ICEs while trying to > > compile __muldi3() in libgcc2.c. > You don't need libgcc to reproduce the problem. If

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread shcherbakov at daad-alumni dot de
--- Comment #7 from shcherbakov at daad-alumni dot de 2010-01-30 21:30 --- (In reply to comment #6) > Doesn't work, an ARM gcc built with that modification ICEs while trying to > compile __muldi3() in libgcc2.c. You don't need libgcc to reproduce the problem. If gcc build has gone to th

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread mikpe at it dot uu dot se
--- Comment #6 from mikpe at it dot uu dot se 2010-01-30 21:24 --- (In reply to comment #5) > ARM uses ACCUMULATE_OUTGOING_ARGS instead of PUSH_ARGS. To reproduce the > problem on ARM, you need to comment out "#define ACCUMULATE_OUTGOING_ARGS 1" > and add "#define PUSH_ARGS 1" in "gcc/co

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread shcherbakov at daad-alumni dot de
--- Comment #5 from shcherbakov at daad-alumni dot de 2010-01-30 20:08 --- Oops, missed a semicolon in the first line of "test case" (compile it with g++). ARM uses ACCUMULATE_OUTGOING_ARGS instead of PUSH_ARGS. To reproduce the problem on ARM, you need to comment out "#define ACCUMULAT

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread mikpe at it dot uu dot se
--- Comment #4 from mikpe at it dot uu dot se 2010-01-30 19:54 --- (In reply to comment #2) > However, as shown in the patch, the discovered problem is general to GCC4 > (will > cause problems on all targets having USE_LOAD_PRE_DECREMENT) The "test case" is syntactically invalid and do

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread rguenth at gcc dot gnu dot org
--- Comment #3 from rguenth at gcc dot gnu dot org 2010-01-30 16:01 --- Patches should be sent to gcc-patc...@gcc.gu.org with a ChangeLog entry and a note how you tested the patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread shcherbakov at daad-alumni dot de
--- Comment #2 from shcherbakov at daad-alumni dot de 2010-01-30 15:37 --- (In reply to comment #1) > What is msp430-gcc? > msp430-gcc is a port of GCC on TI MSP430 platform, that revealed the bug. However, as shown in the patch, the discovered problem is general to GCC4 (will cause p

[Bug middle-end/42722] move_by_pieces() incorrectly pushes structures to stack

2010-01-30 Thread steven at gcc dot gnu dot org
--- Comment #1 from steven at gcc dot gnu dot org 2010-01-30 15:33 --- What is msp430-gcc? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42722