This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Dec 2007 12:01:23 -0000
- Subject: [Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions
- References: <bug-34400-286@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #28 from steven at gcc dot gnu dot org 2007-12-16 12:01 -------
Created an attachment (id=14778)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14778&action=view)
Change worklist solver to double queue algorithm
I re-read Cooper, Harvey and Kennedy, who wrote a nice paper about various work
list based dataflow solvers.
The attached patch modifies df_worklist_dataflow to a double queue algorithm,
while retaining the property that basic blocks are added to the queue in RPO
order. This approach gives me a speedup comparable to (but slightly less than)
the hybrid search algorithm. This is not really surprising because the double
queue work list algorithm also completes full iterations over the CFG before
considering the second queue.
Seongbae, what are your ideas about the double queue approach (or maybe other
algorithms suggested by Harvey)?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400