Bug 26804 - Alias Time explosion
Summary: Alias Time explosion
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.2.0
: P3 major
Target Milestone: ---
Assignee: Daniel Berlin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-22 14:12 UTC by Andrew Macleod
Modified: 2006-03-25 19:19 UTC (History)
1 user (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2006-03-22 14:58:36


Attachments
large c++ include file. (193.63 KB, application/octet-stream)
2006-03-22 14:17 UTC, Andrew Macleod
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Macleod 2006-03-22 14:12:17 UTC
Alias analysis is taking a long time now.

I seem to  have narrowed it down to this patch:

http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00908.html



        
running cpgram.ii shows a regression:

before patch:

 tree alias analysis   :   2.49 ( 7%) usr   0.25 ( 5%) sys   6.13 ( 5%) wall    4971 kB ( 1%) ggc
 TOTAL                 :  36.90             4.72           130.34             467341 kB

after patch:

 tree alias analysis   :  59.00 (63%) usr   0.40 ( 7%) sys  70.43 (36%) wall    4957 kB ( 1%) ggc
 TOTAL                 :  94.13             5.43           193.85             468339 kB


on a 386 linux machine bootstrapped with checking disabled.

cpgram.ii needs to be compiled with -fpermissive -O2
Comment 1 Andrew Macleod 2006-03-22 14:17:17 UTC
Created attachment 11095 [details]
large c++ include file.

cpgram.ii which compiles with -fpermissive
Comment 2 Daniel Berlin 2006-03-22 14:58:36 UTC
Mine
Comment 3 Daniel Berlin 2006-03-25 19:17:30 UTC
Subject: Bug 26804

Author: dberlin
Date: Sat Mar 25 19:17:26 2006
New Revision: 112380

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112380
Log:
2006-03-25  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/26804
	* tree.h (DECL_CALL_CLOBBERED): New macro.
	(tree_decl_common): Add call_clobbered_flag.
	* tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
	(mark_call_clobbered): Set DECL_CALL_CLOBBERED.
	(clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
	(mark_non_addressable): Ditto.
	* tree-ssa.c (verify_call_clobbered): New function.
	(verify_alias_info): Use it.
	* tree-pass.h (pass_reset_cc_flags): New prototype.
	* tree-ssa-alias.c (pass_reset_cc_flags): New structure.
	(reset_cc_flags): New function.
	* passes.c (init_optimization_passes): Call reset_cc_flags after
	initializing referenced_vars.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/passes.c
    trunk/gcc/tree-flow-inline.h
    trunk/gcc/tree-pass.h
    trunk/gcc/tree-ssa-alias.c
    trunk/gcc/tree-ssa.c
    trunk/gcc/tree.h

Comment 4 Daniel Berlin 2006-03-25 19:19:18 UTC
Fixed