Bug 18851 - IMA is slow and could be sped up
Summary: IMA is slow and could be sped up
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 4.0.0
: P2 minor
Target Milestone: 4.1.0
Assignee: Andrew Pinski
URL:
Keywords: compile-time-hog, patch
Depends on:
Blocks: 17652
  Show dependency treegraph
 
Reported: 2004-12-05 21:35 UTC by Andrew Pinski
Modified: 2005-10-02 19:15 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-06-15 03:12:51


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Pinski 2004-12-05 21:35:12 UTC
C IMA slows down the compile way down.
Comment 1 Andrew Pinski 2004-12-05 21:36:49 UTC
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01479.html>.

I posted it too late for including it into 4.0.0.
Comment 2 Steven Bosscher 2004-12-23 11:23:03 UTC
Any movement here?
Comment 3 Andrew Pinski 2005-03-24 15:08:30 UTC
Updated patch here: <http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02251.html>.
Comment 4 andreasmeier80 2005-08-20 18:39:15 UTC
Under http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02316.html the patch was 
okayed with small changes. Can it be in 4.1.0?
Comment 5 Andrew Pinski 2005-09-17 21:40:04 UTC
I will be committing this in the next couple of hours.
Comment 6 Andrew Pinski 2005-10-02 19:15:54 UTC
Fixed.
Comment 7 GCC Commits 2005-10-02 19:16:04 UTC
Subject: Bug 18851

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	pinskia@gcc.gnu.org	2005-10-02 19:15:59

Modified files:
	gcc            : ChangeLog c-typeck.c 

Log message:
	2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
	
	PR c/18851
	* c-typeck.c (tagged_tu_seen): Rename to ...
	(tagged_tu_seen_cache): this and add val field.
	(comptypes): Move functional to comptypes_internal
	and free tagged_tu_seen.
	(comptypes_internal): New function and call comptypes_internal
	instead of comptypes. Speed up by sibcalling
	tagged_types_tu_compatible_p.
	(alloc_tagged_tu_seen): New function
	(free_all_tagged_tu_seen_up_to): New function.
	(tagged_types_tu_compatible_p): Return the val of the seen two
	types.
	Add that the two types are the same to tagged_tu_seen_base
	if they are and call comptypes_internal instead of comptypes.
	<case UNION_TYPE>: Speed up common type where the fields are
	in the same order.
	(function_types_compatible_p): Call comptypes_internal instead of
	comptypes.
	(type_lists_compatible_p): Likewise.
	(all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.10066&r2=2.10067
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-typeck.c.diff?cvsroot=gcc&r1=1.479&r2=1.480