This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Disable accumulate-outgoing-args for Generic and Buldozers
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Alexandre Oliva <aoliva at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 30 Jan 2014 10:28:25 +0100
- Subject: Re: Disable accumulate-outgoing-args for Generic and Buldozers
- Authentication-results: sourceware.org; auth=none
- References: <20140101143004 dot GD26209 at kam dot mff dot cuni dot cz> <20140124211119 dot GX892 at tucnak dot redhat dot com> <20140127221939 dot GH892 at tucnak dot redhat dot com> <20140127222546 dot GI892 at tucnak dot redhat dot com> <20140127235628 dot GC12944 at kam dot mff dot cuni dot cz> <20140128062647 dot GJ892 at tucnak dot redhat dot com> <20140129100205 dot GS892 at tucnak dot redhat dot com> <CAFiYyc3GcYtbuGZTcRdAJXc9u-wSbcVfixQrgLx1H-RWJaMkng at mail dot gmail dot com> <CAFiYyc0JY=WPPc=FUZT7kTNkpd=gZNqWScuHP1Dc=KGPDgzczw at mail dot gmail dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Jan 29, 2014 at 04:27:48PM +0100, Richard Biener wrote:
> Actually best would be to avoid generating so many useless values
> in the first place ... still, quadraticness is a complete no-go.
Filed as PR59992. Though, we have big issues in other parts of the compiler
too, before managing to write the PR59992 testcase that seems to be
expensive only in the remove_useless_value part, I've tried e.g.
#define A(n) if (p[n]) { extern void foo##n (int, int, double); foo##n (p[n], 5, 8.0); }
#define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
#define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
#define D(n) C(n##0) C(n##1) C(n##2) C(n##3) C(n##4) C(n##5) C(n##6) C(n##7) C(n##8) C(n##9)
#define E(n) D(n##0) D(n##1) D(n##2) D(n##3) D(n##4) D(n##5) D(n##6) D(n##7) D(n##8) D(n##9)
void
foo (int *p)
{
E(1) E(2)
}
where there is a memory hog and compile time hog in ud_dce pass (-m32 -O2 -g).
Jakub