------- Comment #3 from chrbr at gcc dot gnu dot org 2007-09-03 13:24 ------- this report is quite old, but worth to pop :
We found similar problems with implicit memory block copying when using struct copying by value. (frequent in C++ ) Softfloat architectures making a very extensive use of libcalls are also very sensitive to this lost optimisation (it is a performance regression since the optimisation was correctly done with a gcc 3.4.3). The rtl was then emitted both for normal calls and sibling calls and stored in a "placeholder". The placeholder was decided to be emitted after all the stmts were expanded. Since gcc 4.0 the placeholders have disapeared so we lost the ability to optimise libcalls in the backend. I will try to make use of the cfg information available in expand to decide if we can pass BLOCK_OP_TAILCALL to emit_block_move. I expect that libcalls can share the same interface. -- chrbr at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |chrbr at gcc dot gnu dot org Last reconfirmed|2006-03-01 02:40:48 |2007-09-03 13:24:57 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15473