This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Disable accumulate-outgoing-args for Generic and Buldozers


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]