--
Bug 18499 depends on bug 17340, which changed state.
Bug 17340 Summary: [4.0 Regression] Internal error compiling with -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17340
What|Old Value |New Value
---
--- Additional Comments From steven at gcc dot gnu dot org 2004-12-07
09:15 ---
Fixed:
Counted GLOBAL_POWER_EVENTS events (time during which processor is not
stopped) with a unit mask of 0x01 (mandatory) count 10
samples %symbol name
63499 4.4898 replace_goto_queu
--- Additional Comments From steven at gcc dot gnu dot org 2004-11-24
11:12 ---
(From update of attachment 7547)
The problem was searching edges the edge->dest block in remove_edge,
but we now have dest_idx on for edge (thanks to Kazu's O(1) PHI arg
lookup patches) so we don't have to se
--- Additional Comments From stevenb at suse dot de 2004-11-15 19:31
---
Subject: Re: [4.0 Regression] quadratic behavior in cfgexpand
The complexity is O(N) with vectors and with lists. How on earth
do you get to O(N*M)?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18499
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-15
19:30 ---
No they come from that fact remove_edge is O(number of edges in succ of
BB)+O(number of edges in
pred of BB) and then you are doing O(number of edges) with calling remove_edge
the whole thing now
becomes
--- Additional Comments From giovannibajo at libero dot it 2004-11-15
19:25 ---
Doesn't the quadraticy come from VEC_unordered_remove? If you have M total
edges and you want to remove N of them, the complexity is O(N*M) with vectors,
but used to be O(N) with lists.
--
http://gcc.gn
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-15
18:12 ---
confirmed.
--
What|Removed |Added
Status|UNCONFIRMED |NEW
E
--- Additional Comments From steven at gcc dot gnu dot org 2004-11-15
11:38 ---
Created an attachment (id=7547)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7547&action=view)
Suggestion for removing many edges at once
Something like this might help. There are still a few other p
--- Additional Comments From stevenb at suse dot de 2004-11-15 10:41
---
Subject: Re: [4.0 Regression] quadratic behavior in cfgexpand
Actually this has always been there, independent of the edge vector
work. The old code has exactly the same problem.
There is *no* canonical way to r
--- Additional Comments From jh at suse dot cz 2004-11-15 10:37 ---
Subject: Re: New: [4.0 Regression] quadratic behavior in cfgexpand
> The test case for 17340 exposes quadratic behavior caused by
> abnormal edges in the CFG:
>
>
> % cumulative self self to
--- Additional Comments From steven at gcc dot gnu dot org 2004-11-15
10:34 ---
Perhaps we should have an edge flag to mark edges dead, then walk the
entire CFG visiting all succ edges once (marking the dead ones) and
have a function remove_many_edges() in cfg.c to kill marked edges...
11 matches
Mail list logo