[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 t

[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

[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 b

[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 ou

[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

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

2010-01-13 Thread shcherbakov at daad-alumni dot de
mp; CONSTANT_P (from_addr)) -- Summary: move_by_pieces() incorrectly pushes structures to stack Product: gcc Version: 4.4.2 Status: UNCONFIRMED Severity: major Priority: P3 Component: middle-end AssignedTo: unassigned a

[Bug c++/17920] add __attribute__((reimpl)) as a replacement for the (optional) virtual keyword for reimplementations of virtual functions

2010-01-05 Thread shcherbakov at daad-alumni dot de
--- Comment #12 from shcherbakov at daad-alumni dot de 2010-01-05 16:27 --- I would also appreciate if an attribute like this is supported by gcc due to several reasons: 1. Developers that want to ensure that a virtual method actually overrides another virtual method of a base class

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-09-02 Thread shcherbakov at daad-alumni dot de
--- Comment #9 from shcherbakov at daad-alumni dot de 2009-09-02 16:12 --- > This change is incorrect because a register ceases to be a loop invariant > if it is clobbered. Agreed. Tested your patch. Works fine for me. Is there any way to know, from which version will the pa

[Bug regression/41189] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #1 from shcherbakov at daad-alumni dot de 2009-08-30 10:14 --- *** This bug has been marked as a duplicate of 41188 *** -- shcherbakov at daad-alumni dot de changed: What|Removed |Added

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #4 from shcherbakov at daad-alumni dot de 2009-08-30 10:14 --- *** Bug 41189 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41188

[Bug rtl-optimization/41190] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #1 from shcherbakov at daad-alumni dot de 2009-08-30 10:14 --- *** This bug has been marked as a duplicate of 41188 *** -- shcherbakov at daad-alumni dot de changed: What|Removed |Added

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #3 from shcherbakov at daad-alumni dot de 2009-08-30 10:14 --- *** Bug 41190 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41188

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #2 from shcherbakov at daad-alumni dot de 2009-08-30 10:13 --- *** Bug 41191 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41188

[Bug rtl-optimization/41191] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #1 from shcherbakov at daad-alumni dot de 2009-08-30 10:13 --- *** This bug has been marked as a duplicate of 41188 *** -- shcherbakov at daad-alumni dot de changed: What|Removed |Added

[Bug regression/41191] New: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
SN and an operand to detect such cases in a uniform way. -- Summary: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: major Priority: P3

[Bug regression/41190] New: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
SN and an operand to detect such cases in a uniform way. -- Summary: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: major Priority: P3

[Bug regression/41189] New: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
SN and an operand to detect such cases in a uniform way. -- Summary: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: major Priority: P3

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
--- Comment #1 from shcherbakov at daad-alumni dot de 2009-08-30 10:10 --- A misprint in the description: After move_invariant_reg() the insn_invalid_p(insn) returns 1 meaning that the INSN is no longer valid. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41188

[Bug regression/41188] New: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute

2009-08-30 Thread shcherbakov at daad-alumni dot de
SN and an operand to detect such cases in a uniform way. -- Summary: move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: major Priority: P3