This is the mail archive of the 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: PATCH [mainline] speed up comparing enums declared in multiple translation units

On Mar 9, 2004, at 12:27 PM, Andrew Pinski wrote:

On Mar 9, 2004, at 12:13, Fariborz Jahanian wrote:

This is a performance bug fix which prevents mesa (SPEC program) to compile with IMA in a
reasonable amount of time. Performance hit is comparing two enumerated types declared in
different translation unit. Fix is in routine tagged_types_tu_compatible_p and uses
the infrastructure already there to prevent recursion when comparing composite types.
Essentially it remembers previous comparison results of the two enum types and uses the
saved result. bootstrapped, dejagnu tested on ppc-darwin. Furthermore, tested against
SPEC benchmark with IMA. mesa now takes minutes to compile, instead of days (on my
particular G5 machine anyway).

OK for mainline?

Why are you getting rid of the code which I put in there to speed it up in the first place?
"Speed up the case where the type values are in the same order".

What code? I am working off the tree-ssa branch. This patch works regardless of any
assumption of type values.

Now I know with my patch it takes only about an hour on my laptop to compile with my patch
(this is a 800MHz G4).
Also it looks like your patch can make a huge memory problem with many different enums.
As you can produce n^2 mallocs which can cause even worse problems, there has to be a better
way than both of our solutions.

All mallocs are freed, after the structs in which enums are used are themselves compared. I don't
see n is being that large.

Can you try again mesa with my patch already applied as it looks like you did not?

Again, I don't know what patch you are referring to?

- thanks, fariborz

Thanks, Andrew Pinski

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